Courses
COMPUTER SCIENCE COURSES
COMP 105 Introduction to Computer Science with Lab
An overview of the field of computer science. Typical topics may include the history of computers, what computers can and cannot do, the basic concepts of computer programming, program and user interface design, how computers represent information internally, an introduction to artificial intelligence, and the ethical and societal issues raised by the widespread use of computers. QR AOS (CS)
Link to course home page
COMP 107 Pictures and Sounds: Programming with Multimedia with Lab
This course provides an introduction to multimedia programming: developing programs that create and manipulate text, pictures, sound, and movies. Topics include creating negative and gray-scale images, reversing and splicing sounds, creating sound visualizations, and creating animations. Students will learn some of the concepts and techniques underlying software applications like Photoshop or SoundEdit as well as fundamental concepts underlying all of computing, such as algorithms, abstractions, and how computers represent numbers, text, images, and sound. Hands-on programming is a central component of the course, embodied in weekly labs and frequent programming assignments. QR AOS (CS)
COMP 110 Introduction to Programming with Lab
An introduction to programming and design concepts using a modern programming language. Topics include the basic features of the language, modular programming techniques, and appropriate design methods. Students will have ample opportunity to revise existing programs and develop new software. QR
Prerequisite: Familiarity with some programming language, e. g. BASIC, PASCAL, HyperTalk. Can be satisfied by taking COMP 105.
Link to course home page
COMP 210 Data Structures
Provides students an opportunity to refine programming and design skills. Emphasis is on techniques of data abstraction, including encapsulation and inheritance; implementation and appropriate use of common data structures (such as lists, stacks, queues, trees, and graphs); recursion; and the close relationship between data structures and algorithms. AOS (CS)
Prerequisites: COMP 105 and COMP 110 or permission.
Link to course home page
COMP 215 Computer Algorithms
Introduction to a variety of algorithms and algorithm design techniques that recur in computer science literature and applications. These include common sorting and searching algorithms, divideandconquer and dynamic programming algorithms, and algorithms in the areas of string processing, geometry, and graph theory. This course also provides an introduction to the mathematical analysis of the complexity and performance of algorithms. AOS (CS)
Prerequisites: COMP 210 and MATH 250.
Link to course home page
COMP 230 Computer Architecture
Introduction to computer organization; gates, truth tables, and logic design; number representation and arithmetic; assemblylanguage programming and the assembly process; and current techniques for improving computer performance. AOS (CS)
Prerequisite: COMP 210.
Link to course home page
COMP 255 Computer Programming and Simulation
Computer modeling of physical phenomena. Programming skills will be developed in the context of doing physics. Topics include numerical integration of Newton's equations, cellular automata, and random walks including Monte Carlo methods. (Also listed as PHYS 255 .) AOS (CS)
Prerequisite: PHYS 150.COMP 260 Digital Electronics with Lab
Introductory electronics, elementary logic and arithmetic circuit components, sequential circuit analysis and design; applications to computer circuit design. (Also listed as PHYS 260.) AOS (CS)
Prerequisite: permission.COMP 265/PSYCH 265 Cognitive Science
Cognitive science is the interdisciplinary study of mind and the nature of intelligence. It is a rapidly evolving field that deals with information processing, intelligent systems, complex cognition, and large-scale computation. The scientific discipline lies in the overlapping area of neuroscience psychology, computer science, linguistics and philosophy. Students will learn the basic physiological and psychological mechanisms and computational algorithms underlying different cognitive phenomena. The course is designed mostly for psychology and computer science students, but other students interested in interdisciplinary thinking might take the class.
COMP 300 Automata, Formal Languages, and Computability
Study of automata as mathematical models of computation; of formal languages, which play a central role in the specification and translation of programming languages; and of the fundamental capabilities and limitations of computers. (Also listed as MATH 300.) AOS (CS) Prerequisite: MATH 250 or 330 and one computer science course.
Link to course home page
COMP 320 Principles of Programming Languages
Study of programming language concepts and comparative evaluation of several programming languages. Typical topics include imperative, functional, and objectoriented programming paradigms, programming language syntax, type theory, static and dynamic binding of variables, and scope rules. AOS (CS)
Prerequisite: COMP 210.
Link to course home page
COMP 415/PSYCH 415 Computational Neuroscience
Study of mathematical models, computational algorithms, and simulation methods that contribute to our understanding of neural mechanisms. Brief introduction to neurobiological concepts and mathematical techniques. Both normal and pathological behaviors will be analyzed by using neural models.
Prerequisite: PSYCH 101COMP 430 Operating Systems
Study of the internal operation of modern operating systems, including processes and threads, mutual exclusion, CPU scheduling, deadlock, memory management, file systems, and networked and distributed computing. AOS (CS)
Prerequisite: COMP 230.
Link to course home page
COMP 491 495 Special Topics
Each offering focuses on a computer science topic not regularly addressed in the core curriculum. Topics come from areas such as artificial intelligence, computer graphics, databases, networking, and software engineering. AOS (CS)
Prerequisite: permission.
Networking (Spring 2002)
Artificial Intelligence (Winter 2003)
Software Engineering (Spring 2003)

