Facilities
Modified 7/12/2000 aileen

Computer Science

 

Professor:  Baird; Associate Professor:  Izmirli; Instructor:  Chung; Associate Professor Parker, chair

 

Courses provide students with computer science theory and skills, equipping them for research or practical application.

 

The Major in Computer Science

 

The major consists of Mathematics 210, Computer Science 110, 212, 219, 304, 315 or 326, 320, two semesters of computer science research (495 and 496) or Honors Study, 499, and four or more courses chosen from the following:  computer science courses at the 200 level or higher, Mathematics 226, Mathematics 313.  Students are strongly encouraged to complete a summer internship approved by the department.

                Advisers:  B. Baird, C. Chung, O. Izmirli, G. Parker

 

The Minor in Computer Science

 

The minor consists of Mathematics 210, Computer Science 110, 212, 219, and two or more courses chosen from the following:  computer science courses at the 200 level or higher (excluding 499), Mathematics 313.  Only one course may count toward both a major and a minor, but other approved courses at the same level or higher may be substituted.

Courses

 

COMPUTER SCIENCE  104  COMPUTERS, DIGITAL AUDIO AND PHYSICS  An introduction to the physics of musical sound, perception of sound, digital audio and basic programming related to sound.  Topics include acoustics, musical instruments, analyzing musical sound, sound perception, digital audio, audio compression, programming for sound manipulation and sound on the Internet.  Knowledge of basic algebra is the only prerequisite.

                Enrollment limited to 25 students.  Formerly Course 114; cannot receive credit for both courses.  This course satisfies General Education Area 2.  O. Izmirli

 

COMPUTER SCIENCE  107  INTRODUCTION TO PROBLEM SOLVING AND ROBOTICS  An introduction to problem solving and robotics through programming, robot construction, readings, and discussion.  Students will work in teams to solve a series of problems that are of increasing complexity by designing and constructing robots from kits and programming their controllers to perform the assigned tasks.  No previous computer knowledge is assumed.  This course is not intended for computer science majors.

                Enrollment limited to 24 students.  Formerly Course 117; cannot receive credit for both courses.  This course satisfies General Education Area 2.  G. Parker

 

COMPUTER SCIENCE  110  INTRODUCTION TO COMPUTER SCIENCE AND PROBLEM SOLVING  An introduction to programming and problem solving with computers.  Practical applications in a wide range of fields will be covered; the current programming language is Python.  Important topics in computer science will also be discussed.  No prior programming experience is assumed.

                Enrollment limited to 40 students.  This course satisfies General Education Area 2.  B. Baird, O. Izmirli

 

Computer science  120  Open Source Software for Humanity  An introduction to free and open source software (FOSS) and its applications to humanitarian issues.  Participants will learn to write web-based application software using FOSS tools while contributing to a real open source humanitarian project.

                Enrollment limited to 7 students.  This course satisfies General Education Area 2.  Staff

 

COMPUTER SCIENCE  205, 305  TOPICS IN SOFTWARE DEVELOPMENT  Principles of software development applied to real-world problems.  The problems addressed and computer languages used will vary depending on the available opportunities for application.  Students will be part of a team that develops a software system for a real-world customer.  Students in Course 305 will be team leaders.

                Prerequisite for Course 205:  Any 100-level course in computer science.  Prerequisite for Course 305:  Course 212.  Enrollment limited to 21 students in Course 205 and 7 students in Course 305.  Staff

 

COMPUTER SCIENCE  206  COMPUTATIONAL AND SYSTEMS BIOLOGY  An introduction to the use of genomics, systems biology, and computational biology in analyzing and synthesizing biological data.  Topics include DNA and protein sequences, interaction networks, gene expression, and computational techniques for retrieving, analyzing, and visualizing data.  Emphasis on projects involving interdisciplinary teams and medically related problems.  This is the same course as Biology 206.

                Prerequisite:  Course 110 or Biology 106.  Enrollment limited to 30 students.  M. Allen, R. Peitzsch, and D. Eastman

 

COMPUTER SCIENCE  209  GRAPHICS AND VIRTUAL ENVIRONMENTS  An introduction to the basics of graphics and the field of virtual reality, including applications and issues relating to three-dimensional graphics, sound, vision, and touch.  Students will program virtual reality worlds with appropriate hardware and software.

                Prerequisite:  Course 110 or permission of the instructor.  This course is not open to students who have received credit for Computer Science 309.  B. Baird

 

COMPUTER SCIENCE  212  DATA STRUCTURES  Abstract data structures such as lists, stacks, queues, and trees will be studied as well as programming techniques using recursion and pointers.  Principles of software design will be explored by constructing major programs.

                Prerequisite:  Course 110.  Staff

 

COMPUTER SCIENCE  215  DIGITAL DESIGN  Digital design, binary number systems and representation, boolean algebra and gate implementation, combinatorial and sequential circuits, and digital storage components used in computers.  Software simulation will be used.  This is the same course as Physics 225.

                Prerequisite:  Course 110 or permission of instructor.  O. Izmirli

 

COMPUTER SCIENCE  218  MULTIMEDIA  The representation, storage, processing and transmission of multimedia content, comprised of text, audio, still images, video, graphics, animation and other types of media are discussed.  Human perception of audio and video will be studied to be followed by concepts underlying compression algorithms of multimedia content.  Multimedia programming will be introduced and students will complete projects that involve design, implementation and evaluation.

                Prerequisite:  Course 110.  Enrollment limited to 20 students.  O. Izmirli

 

COMPUTER SCIENCE  219  COMPUTER ORGANIZATION  Processors, primary memory, secondary memory and input/output mechanisms of computers are discussed.  The computer structure is studied at a progression of levels:  digital logic level, microarchitecture level, instruction set architecture level, operating system machine level and assembly language level.

                Prerequisite:  Course 110.  Staff

 

COMPUTER SCIENCE  225  TOPICS IN APPLICATIONS PROGRAMMING  Programming principles are applied to real world problems.  Topics vary from year to year depending on the application opportunities available.  Programming techniques, along with standard software engineering practices and principles, are covered.  Students design and program software applicable to the problems being addressed.

                Prerequisite:  Course 110.  G. Parker

 

COMPUTER SCIENCE  250  DIMENSIONAL COLOR  This is the same course as Art 250.  Refer to the Art listing for a course description.

 

COMPUTER SCIENCE  303  DATABASE SYSTEMS  An examination of the fundamental concepts of database systems.  Database design, database languages, and database-system implementation.  Analysis of the role of databases in the decision making process and their use in strategic planning.  A project to develop a database management system is required.

                Prerequisite:  Course 212 or permission of the instructor.  Staff

 

COMPUTER SCIENCE  304  ALGORITHMS  Algorithms form the basis for problem solving in computer science.  This course examines different types of algorithms, including sorting, graph, divide-and-conquer, and greedy.  Computational complexity and analysis of algorithms are also studied.

                Prerequisite:  Course 212; Mathematics 210 is recommended.  B. Baird

 

COMPUTER SCIENCE  306  SOFTWARE ENGINEERING  An introduction to object-oriented software engineering using professional software engineering practices.  The course uses examples from real systems and examines the interaction between state-of-the art techniques such as UML (Unified Modeling Language), Java-based technologies, design patterns, design rationale, configuration management, and quality control.  Project management issues will be discussed.

                Prerequisite:  Course 212.  Staff

 

COMPUTER SCIENCE  307  MACHINE LEARNING AND DATA MINING  This course will cover the basic theory, concepts, and techniques of machine learning and data mining including decision trees, neural networks, logistic regression, and data preparation, modeling, and presentation.  Data mining techniques, such as clustering, classification, associations, deviation detection, and link analysis will be covered.  Applications in different domains, such as science, finance, crime detection, and genomics, will be examined.  Data mining tools will be introduced and used to complete a project on real-world data.

                Prerequisite:  Course 212.  G. Parker

 

COMPUTER SCIENCE  310  ROBOTICS  An introduction to the design and control of autonomous robots.  Design issues such as wheels verses legs, actuator placement, the use of sensors for perception, controller selection, and wiring will be covered.  Students will develop control schemes and use programming skills and machine learning to generate programs for controllers.

                Prerequisite:  Course 212, 215, or 219.  G. Parker

 

COMPUTER SCIENCE  312  DIGITAL SOUND PROCESSING  An introduction to digital processing of sound; the study of capturing, creating, storing and processing of audio.  Acoustics, digitization, representation, storage, filtering, effects, frequency analysis, programming for real-time and off-line sound processing, synthesis, spatialization, audio encoding and compression.  Students will complete programming projects.

                Prerequisite:  Course 212.  O. Izmirli

 

COMPUTER SCIENCE  315  COMPUTER NETWORKS  Characteristics and applications of various networking technologies will be studied.  Introduction to communication and network architectures, data communication concepts, local area network technologies, internetworking and performance issues in computer networks.  Devices and means of data communication, error detection and recovery mechanisms, data link protocols, routing and congestion control algorithms, transport and application protocols, and network level services are discussed.

                Prerequisite:  Courses 212 and 219.  Enrollment limited to 16 students.  O. Izmirli

 

COMPUTER SCIENCE  316  ARTIFICIAL INTELLIGENCE  Introduces a breadth of concepts used by researchers in their attempt to develop an artificial mind.  General areas covered include search techniques, propositional and first order logic, representation, production systems, planning, learning and connectionist systems (neutral networks).

                Prerequisite:  Course 212 or permission of the instructor.  G. Parker

 

COMPUTER SCIENCE  317  ARTIFICIAL INTELLIGENCE AND UNCERTAINTY  Artificial Intelligence techniques and models for reasoning in uncertain environments.  Topics include basic probability, decision and utility theory, Bayesian networks, and Markov models.  Extensions of the latter to multi-agent problems will be discussed.  Learning and planning techniques will be explored, with some small hands-on programming projects.

                Prerequisite:  Course 212.  Enrollment limited to 30 students.  M. Allen

 

COMPUTER SCIENCE  318  NATURAL LANGUAGE PROCESSING  This course will present concepts and techniques for semantic natural language processing, including knowledge representation, understanding, generation, and inference.  Focusing on story-understanding and conversation, it will explore techniques for understanding increasingly complex language involving routine events, plans, goals, and goal failures.  A series of programming projects will be assigned.

                Prerequisite:  Course 212.  Staff

 

COMPUTER SCIENCE  320  PROGRAMMING LANGUAGES  An introduction to the theory of programming languages, formal syntax, input and output, recursion, branching and looping, parameter binding and passing, data typing and subprograms.  Several languages will be studied.

                Prerequisite:  Course 212 or 219.  Staff

 

COMPUTER SCIENCE  322  NETWORK PROGRAMMING, TOOLS AND TECHNOLOGIES  A hands-on course with three foci:  network programming using sockets; networking tools; transport layer technologies.  It is equally beneficial to students who have had Computer Science 315 and to those who have not.  Students will complete assignments using newly learned languages (such as C, tcl, awk, etc.).

                Prerequisite:  Course 212.  Enrollment limited to 16 students.  Staff

 

COMPUTER SCIENCE  325  INTRODUCTION TO NETWORK AND COMPUTER SECURITY  An introduction to the principles and practices of computer and network security.  Course organized around the three principles of security:  prevention, detection, and response.  Topics include basic cryptography, concepts of secure protocol design, security policy and risk evaluation, types of and defense against real-world attacks, and forensic techniques.

Prerequisite:  Course 212.  Staff

 

COMPUTER SCIENCE  326  OPERATING SYSTEMS  An introduction to computer operating systems.  The primary functions of an operating system, such as process management, memory management, and device management, will be covered.  Other relevant issues, such as security, networking, and distributed systems, will be discussed.

                Prerequisite:  Courses 212 and 219.  Staff

 

COMPUTER SCIENCE  407  COMPUTATIONAL INTELLIGENCE  Computational methods that display aspects of intelligent behavior observed in humans.  Topics may include fuzzy logic, an alternative to traditional formal logic; artificial neural networks, networks of simple arithmetic computing elements that abstractly simulate neurons; and genetic algorithms, based on the laws of survival of the fittest and heredity.  How these methods deal with vague, imprecise, and uncertain knowledge; learn from experience; self-organize; and adapt their behavior in response to changing conditions to solve real world problems.  Utilization of projects and the discussion of technical papers to cover methods of computational intelligence and their use.

                Prerequisite:  Course 304, 310, 316, or 320.  Enrollment limited to 12 students.  G. Parker

 

COMPUTER SCIENCE  495, 496  RESEARCH SEMINAR  Practicum in computer science research.  An introduction to research methods followed by a major project.  Students will read, present, and discuss technical papers; write a research proposal; make weekly reports; raise issues for class discussion; complete their research; write a technical paper; and do a public presentation.  May be repeated for credit.

                Prerequisite:  A 300-level course in the specific area of research.  Enrollment limited to 15 students.  Staff

 

COMPUTER SCIENCE  499  COMPUTER SCIENCE COLLOQUIUM  Technical presentations of computer science research.  One hour of credit, marked as pass/not passed.  For restrictions on the number of one-credit courses that can be applied toward the minimum degree requirements, see page 332 of the undergraduate catalog.

                Enrollment limited to 40 students.  Staff

 

COMPUTER SCIENCE  291, 292  INDIVIDUAL STUDY

 

COMPUTER SCIENCE  391, 392  INDIVIDUAL STUDY

 

COMPUTER SCIENCE  491, 492  INDIVIDUAL STUDY

 

COMPUTER SCIENCE  497-498  HONORS STUDY

 

 

 

Last Modified: Monday, November 16, 2009 9:39 AM