Computer Science Course Listing

CS 100: Introduction to Internet Research and Resources

CS 110: Computer Science and the Internet

CS 111: Computer Programming and Problem Solving

CS/PHYS 115: Robotic Design Studio

CS/ARTS 215: The Art and Science of Multmedia

CS 230: Data Structures

CS 231: Fundamental Algorithms

CS 232: Artificial Intelligence

CS 235: Languages and Automata

CS 240: Introduction to Machine Organization with Laboratory

CS 249: Topics in Computer Science

CS 250 Research or Individual Study

CS 250H Research or Individual Study

CS 251: Theory of Programming Languages

CS 301: Compiler Design

CS 305: Theory of Algorithms

CS 307: Introduction to Computer Graphics

CS 310: Mathematical Foundations of Computer Science

CS 331: Parallel Machines and Their Algorithms

CS 332: Visual Processing by Computer and Biological Vision Systems

CS 340: Computer Architecture with Laboratory

CS 341: Operating Systems

CS 349: Topics in Computer Science

CS 350: Research or Individual Study

CS 350H: Research or Individual Study

CS 360: Senior Thesis Research

CS 370: Senior Thesis

PHYS 219 Modern Electronics Laboratory (Cross-listed with Physics Department)

Students may also elect to take courses at MIT. Click here for more information.


CS 100 Introduction to Internet Research and Resources

Taught by: Pattie Orr

This course will use the Internet as a domain to explore fundamental concepts in computer science. Topics include: design and analysis of algorithms; computational complexity; network security and reliability; decidability; and the impact of computers on society. Students learn the science and art of computer programming by building applications for the Internet using HTML, JavaScript, and Java applets.

Prerequisite: None. No prior background with computers is expected.

Distribution: None

Semester: Fall: Open to entering students or by permission of instructor; Spring: Open to all students.

Unit: 0.5

Next course in series: CS 110

Back to course listing


CS 110 Computer Science and the Internet

Taught by: Pangiotis Metaxas, Randy Shull, and Constance Royden

This course will use the Internet as a domain to explore fundamental concepts in computer science. Topics include: design and analysis of algorithms; computational complexity; network security and reliability; decidability; and the impact of computers on society. Students learn the science and art of computer programming by building applications for the Internet using HTML, JavaScript, and Java applets.

Students are required to attend an additional discussion section each week.

See the CS 110 Home Page for course syllabus and additonal information.

Prerequisite: None. No prior background with computers is expected. Beginning in the Fall, 1999, the prerequisite will be CS 100 or by permission of the instructor.

Distribution: Mathematical Modeling. NOTE: students cannot receive MM distribution credit for both CS 110 and CS 111.

Semester: Fall, Spring

Unit: 1.0

Next course in series: None. Students considering additional computer science courses should take CS 111, rather than CS 110.

Back to course listing


CS 111 Computer Programming and Problem Solving

Taught by: Franklyn Turbak, Constance Royden, and Jennifer Stephan

An introduction to problem solving through computer programming. Using the Java programming language, students learn how to read, modify, design, debug, and test algorithms that satisfy problem specifications. Programming concepts include control structures, data structures, abstraction, recursion, modularity, and object-oriented design. Students explore these concepts in the context of interactive programs involving graphics, music, text games, data analysis, user interfaces, and web pages.

Students must attend an additional 2-hour laboratory section each week.

NOTE: This course is required for students who wish to major or minor in computer science or elect more advanced courses in the field.

See the CS 111 Home Page for course syllabus and additional information.

Prerequisite: None. NOTE: Beginning in the Fall, 1999, CS 100 will be recommended for students with no prior computer background.

Distribution: Mathematical Modeling. NOTE: students cannot receive MM distribution credit for both CS 110 CS 110 and CS 111.

Semester: Fall, Spring

Unit: 1.0

Next course in series: CS 230

Back to course listing


CS/PHYS 115 Robotic Design Studio

Taught by: Franklyn Turbak, Robert Berg

In this intensive course, students will gain technological fluency as they design, constrct and program their own robotic creations using tiny on-board computers, LEGO construction pieces, and a variety of motors and sensors. The approach is multidisciplinary, introducing students to important ideas from the fields of computer science, mechanics, electronics, and engineering in the context of design projects that also offer ample opportunity for creative expression. Moreover, students may choose to explore biological ideas by building "behaviors" into their creatures, or artistic ideas by constructing "kinetic sculptures". The course will culminate in a robot exhibition presented to the College community.

NOTE: Students may register for either CS 115 or PHYS 115. Credit will be given in the department in which the student is registered.

Prerequisite: None.

Distribution Natural and Physical Science

Semester: Wintersession.

Unit: 0.5

 

Back to course listing


CS/ARTS 215 The Art and Science of Multimedia

Taught by: Pangiotis Metaxas,Naomi Ribner (Art Department)

With the growth of multimedia, the boundaries between traditionally unrelated disciplines have blurred, facilitating the collaboration of fields that had been unrelated until recently. This course, team-taught by faculty of both the Art and Computer Science Departments, provides the students with a unique opportunity of being exposed to the knowledge and expertise of an exciting synthesis of disciplines. The course will cover a wide list of topics from: history and philosophy of hypermedia; designing user interfaces; programming; art and design for multimedia CD-ROMs and the WWW; media selection; editing. In addition to scheduled assignments and homework, students are expected to produce a professional-level multimedia project that will be published on CD-ROM.

See the CS/ARTS 215 Home Page for course syllabus and additional information.

NOTE: Students may register for either CS 215 or ARTS 215. Credit will be given in the department in which the student is registered.

Prerequisite: Instructors' permission (through application ) and at least one CS course (preferably CS111) and one ARTS course (preferably CS214), from the following: CS 110, CS 111, ARTS109, ARTS105, ARTS108, ARTS214, or equivalent experience.

Distribution: Mathematical Modeling or Arts, Music, Theatre, Film, Video

Semester: Spring

Unit: 1.0

Back to course listing


CS 230 Data Structures

Taught by: Franklyn Turbak and Ellen Hildreth

An introduction to techniques and building blocks for organizing large programs. Topics include: modules, abstract data types, recursion, procedural parameters, algorithmic efficiency, and the use and implementation of standard data structures and algorithms such as lists, trees, graphs, stacks, queues, priority queues, tables, sorting, and searching. Students become familiar with these concepts through weekly programming assignments using the Java programming language.

See the CS 230 Home Page for course syllabus and additonal information.

Prerequisite: CS 111 or permission of the instructor.

Distribution: Mathematical Modeling

Semester: Fall, Spring

Unit: 1.0

Next course in series: CS231, CS232, CS235, CS240, CS249, CS251, and CS349.

Back to course listing


CS 231 Fundamental Algorithms

Taught by: Randy Shull

An introduction to the design and implementation of fundamental algorithms. Divide-and-conquer, greedy, dynamic programming and backtracking algorithms are covered. Topics include: soring and searching, graph algorithm, and NP-completeness.

Prerequisite: CS 230

Distribution: Mathematical Modeling

Semester: Fall

Unit: 1.0

Next course in series: CS 305, CS 331

Back to course listing


CS 232 Artificial Intelligence

Taught by: Ellen Hildreth

An introduction to Artificial Intelligence (AI), the design of computer systems that possess and acquire knowledge and can reason with that knowledge. Topics include knowledge representation, problem solving and search, planning, vision, language comprehension and production, learning, and expert systems. To attain a realistic and concrete understanding of these problems, CommonLisp, an AI language, will be taught and used to implement the algorithms of the course.

Prerequisite: CS 230, or by permission of the instructor

Distribution: Mathematical Modeling

Semester: Fall. Not offered in 1999-2000

Unit: 1.0

Back to course listing


CS 235 Languages and Automata

Taught by: Randy Shull

An introduction to the concepts of languages and automata. Topics include languages, regular expressions, finite automata, grammars, pushdown automata and Turing machines.

Prerequisite: CS 230, MATH 225 or MATH 305 recommended

Distribution: Mathematical Modeling

Semester: Spring

Unit: 1.0

Next course in series: CS 310

Back to course listing


CS 240 Introduction to Machine Organization with Laboratory

Taught by: Jennifer Stephan and Jean Herbst

An introduction to machine organization and assembly language programming. Topics include an overview of computer organization, introduction to digital logic and microprogramming, the conventional machine level and assembly language programming, and introduction to operating systems.

Students are required to attend one 3-hour laboratory appointment weekly.

Prerequisite: CS 230

Distribution: Mathematical Modeling

Semester: Fall

Unit: 1.25

Next course in series: CS 340, CS 341

Back to course listing


CS 249 Topics in Computer Science

Prerequisite:CS 230, or by permission of instructor.

Distribution: Mathematical Modeling

Semester: Not offered

Unit: 1.0

Back to course listing


CS 250 Research or Individual Study

Prerequisite:CS 230, or by permission of instructor.

Distribution: Mathematical Modeling

Semester: Fall, Spring

Unit: 1.0

Back to course listing


CS 250H Research or Individual Study

Prerequisite:CS 230, or by permission of instructor.

Distribution: Mathematical Modeling

Semester: Fall, Spring

Unit: 0.5

Back to course listing


CS 251 Theory of Programming Languages

Taught by: Franklyn Turbak

An introduction to the dimensions of modern programming languages. Covers major programming paradigms: functional, imperative, object-oriented, and logic-oriented. Topics include syntax, naming, state, data, control, concurrency, non-determinism, and types.

See the CS251 Home Page for course syllabus and additional information.

Prerequisite:CS 230

Distribution: Mathematical Modeling

Semester: Spring

Unit: 1.0

Back to course listing


CS 301 Compiler Design

Taught by: Pangiotis Metaxas

A survey of the techniques used in the implementation of programming language translators. Topics include lexical analysis, the theory of parsing and automatic parser generators, semantic analysis, code generation, and optimization techniques.

See the CS301 Home Page for course syllabus and additional information.

Prerequisite: CS 240 and CS 251

Distribution: Mathematical Modeling

Semester: Fall. Not offered in 1999-2000

Unit: 1.0

Back to course listing


CS 305 Theory of Algorithms

Taught by: Randy Shull

A survey of topics in the analysis of algorithms and in theoretical computer science. Emphasis is placed on asymptotic analysis of the time and space complexity of algorithms. Topics will include fast algorithms for combinatorial problems, introduction to complexity theory and the theory of NP-complete problems.

Prerequisites: CS 231 and MATH 225 or MATH 305

Distribution: Mathematical Modeling

Semester: Fall. Not offered in 1999-2000

Unit: 1.0

Back to course listing


CS 307 Introduction to Computer Graphics

Taught by: Constance Royden

A survey of topics in computer graphics with an emphasis on fundamental techniques. Topics include: graphics hardward, fundamentals of two and three dimensional graphics, such as clipping, windowing, and coordinate transformations, raster graphics techniques such as line drawing and filling algorithms, hidden surface removal, shading and color models. Students learn how to design graphics displays using a computer graphics software package.

See the CS 307 Home Page for course syllabus and additonal information.

Prerequisite: CS 230

Distribution: Mathematical Modeling

Semester: Fall. Not offered in 2000-2001

Unit: 1.0

Back to course listing


CS 310 Mathematical Foundations of Computer Science

Taught by: Randy Shull

A survey of topics in the mathematical theory of computation. Topics include: Turing machines (including nondeterministic and universal machines), recursive function theory, Church's thesis, the halting problem and propositional calculus.

Prerequisite: CS 235 and MATH 225 or MATH 305

Distribution: Mathematical Modeling

Semester: Fall. Not offered in 2000-2001

Unit: 1.0

Back to course listing


CS 331 Parallel Machines and Their Algorithms

Taught by: Pangiotis Metaxas

This course is a broad introduction to parallelism that studies problem solving using a large number of cooperating processing elemnets. It is divided into four parts. First, it introduces the need for parallel computation and describes some of the fundamental algorithmic techniques. The second part surveys some of the most popular interconnection networks employed in today's parallel computers. In the third part, several parallel algorithms are being designed and implemented on a computer containing 1,000 processors. A short project composes the last part.

See the CS331 Home Page for course syllabus and additional information.

Prerequisite: CS 231 or by permission of the instructor

Distribution: Mathematical Modeling

Semester: Spring. Not offered in 1999-2000

Unit: 1.0

Back to course listing


CS 332 Visual Processing by Computer and Biological Vision Systems

Taught by: Ellen Hildreth

Visual Processing by computer and biological vision systems. An introduction to algorithms for deriving symbolic information about the three-dimensional environment from visual images. Aspects of models for computer vision systems will be related to perpetual and physiological observations on biological vision systems. Assignments will use computer vision software written in Common Lisp or Pascal. Topics include: edge detection, stereopsis, motion analysis, shape form shading, color, visual reasoning, and object recognition.

Prerequisite: CS 230 or by permission of the instructor

Distribution: Mathematical Modeling

Semester: Spring. Not offered in 2000-2001

Unit: 1.0

Back to course listing


CS 340 Computer Architecture with Laboratory

Taught by: Jennifer Stephan

An examination of computer hardware organization. Topics include: architecture of digital systems (gates, register, combinatorial and sequetial networks), fundamental building blocks of digital computers, control logic, microprogramming, microprocessor, pipelined and multiprocessor systems, and new technologies.

Students are required to attend one three-hour laboratory meeting each week.

Prerequisite: CS 240

Distribution: Mathematical Modeling

Semester: Spring. Not offered in 1999-2000

Unit: 1.25

Back to course listing


CS 341 Operating Systems

Taught by: Jennifer Stephan

An examination of the software systems which manage computer hardware. Topics include processes, interprocess communication, process coordination, deadlock, memory management, swapping, paging, virtual memory, input/output management, file systems, protection, security, networks, distributed systems, multiprocessors, and massively parallel machines.

Prerequisite: CS 240

Distribution: Mathematical Modeling

Semester: Spring. Not offered in 2000-2001

Unit: 1.0

Back to course listing


CS 349 Topics in Computer Science

Prerequisite: CS 230, or by permission of instructor.

Distribution: Mathematical Modeling

Semester: Not offered

Unit: 1.0

Back to course listing


CS 350 Research or Individual Study

Click here for more information on independent study projects.

Prerequisite: Open by permission to juniors and seniors.

Distribution: Mathematical Modeling

Semester: Fall, Spring

Unit: 1.0

Back to course listing


CS 350H Research or Individual Study

Click here for more information on independent study projects.

Prerequisite: Open by permission to juniors and seniors.

Distribution: Mathematical Modeling

Semester: Fall, Spring

Unit: 0.5

Back to course listing


CS 360 Senior Thesis Research

Click here for more information on independent study projects.

Prerequisite: By permission of the department

Distribution: Mathematical Modeling

Semester: Fall, Spring

Unit: 1.0

Next course in series: CS 370

Click here for more information on honors.

Back to course listing


CS 370 Senior Thesis

Click here for more information on independent study projects.

Prerequisite: CS 360

Click here for more information on honors.

Distribution: Mathematical Modeling

Semester: Fall, Spring

Unit: 0.5

Back to course listing

Back to the CS Home Page