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
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