### Courses of Study

### Sections

## Department of Computer Science

Last updated: November 10, 2009 at 09:43 a.m.

**Undergraduate Major and Minor**

The undergraduate program in computer science teaches the theoretical fundamentals and practical aspects of computing, preparing students for creative jobs in the computer industry and/or for graduate school. In addition, our curriculum is a stimulating and useful preparation for a number of indirectly related professions, such as law, medicine, and economics.

**Postbaccalaureate Program in Computer Science**

The computer science department offers a postbaccalaureate certificate program for students with a bachelor's degree in a different field who wish to prepare for graduate school or a career in computer science. Students who complete the program may apply to the combined postbaccalaureate/MA program.

**Graduate Program in Computer Science
** The graduate program in computer science is concerned with the fundamental concepts arising in the development and use of computing systems, including the study of computational complexity and information theory, the design and analysis of serial and parallel algorithms, the design of programming languages, systems, and artificial intelligence.

**Graduate Program in Computational Linguistics
** The graduate program in computational linguistics is concerned with the scientific study of language from a computational perspective. It is an interdisciplinary field, which draws on linguistic theory (phonology, syntax, semantics, and pragmatics) and computer science (artificial intelligence, theory of computation, and programming methods).

**Graduate Program in Computer Science and Information Technology Entrepreneurship**

The graduate program in computer science and IT entrepreneurship extends the rigorous training of the standard MA program with an additional course work sequence that prepares students to either start their own IT companies or to work in an entrepreneurial unit inside a larger company.

*Bulletin*, apply here. Applicants for admission to the computer science program must submit three letters of recommendation and are encouraged to take the Graduate Record Examination and the advanced test in computer science. Funds from research grants and fellowships are available to provide financial support for well-qualified students.

**Timothy Hickey, Chair and Undergraduate Advising Head**

Scientific visualization. Groupware. Interval arithmetic and constraints. Programming languages.

**Richard Alterman, Graduate Advising Head
** Computer-supported cooperation. Learning and technology. Cognitive engineering and modeling. Communication and discourse. Intelligent user interfaces.

**Mitch Cherniack
** Databases. Software engineering. Programming languages.

**Jacques Cohen
** Compiler design. Analysis of parallel algorithms. Logic programming. Data structures. Bioinformatics.

**Antonella DiLillo**

Image analysis. Scientific computing.

**Ira Gessel
** Combinatorics.

**Pengyu Hong
** Computational biology. Image processing. Statistical machine learning.

**Harry Mairson**

Logic in computer science. Lambda calculus, type theory, and functional programming. Algorithms and complexity.

**Sophia Malamud**

Linguistics.

**Fernando C. Colon Osorio**

Wireless security. IT Entrepreneurism. Software engineering.

**Olga Papaemmanouil**

Distributed data management. Databases. Large-scale networked systems.

**Jordan Pollack
** Artificial intelligence. Evolutionary computation. Artificial life.

**James Pustejovsky, Graduate Advising Head for Computational Linguistics
** Artificial intelligence. Computational linguistics. Qualitative spatiotemporal reasoning. Lexical semantics. Corpus linguistics.

**Liuba Shrira
** Operating systems. Distributed systems. Long-lived storage systems.

**James Storer
** Data compression and image processing. Computational geometry. Parallel computing. Algorithms.

**Nianwen Xue**

Linguistic structures. Language processing. Natural computational linguistics.

**A.** COSI 11a, 12b, and 21a.

**B.** Three additional computer science courses, one of which may be a cross-listed course or another course approved by the undergraduate advising head.

**Degree of Bachelor of Arts**

The minimum requirements for the computer science major are nine courses:

**A.** Five core courses: COSI 11a, 12b, 21a , 29a, and 31a.

**B.** Electives: At least four additional COSI courses, excluding 99d. At least one elective must be from the breadth and depth requirements group A courses and one from breadth and depth requirements group B, and one may be cross-listed.

**Degree of Bachelor of Science
** The minimum requirement for the computer science major are fourteen courses:

**A.** Seven core courses: COSI 11a, 12b, 21a , 21b , 29a, 30a, and 31a.

**B.** Mathematics courses: Math 8a and 10a.

**C.** Five elective courses, at least one from the breadth and depth requirements group A and at least one from breadth and depth requirements group B. Up to two courses can be cross-listed (consult the individual course entries for prerequisites, corequisites, and special notes).

**Honors
** Graduation with honors in computer science requires completion and defense of a senior honors thesis; students considering this option should take note of the prerequisites for enrollment in COSI 99d (Senior Research).

The five-year BA/MA degree program in computational linguistics is designed for outstanding undergraduate students who will have completed all requirements for the undergraduate BA degree within four years at Brandeis, with a major preferably in either language and linguistics or computer science. Eligibility for the program is normally limited to students who have maintained a minimum 3.500 GPA in all linguistics and computer science courses taken. Students complete the MA in computational linguistics by taking computational linguistics courses in the senior (fourth) year and in one additional (fifth) year of study. The MA degree provides a solid foundation for professional work in the field of computational linguistics or for additional graduate study in computational linguistics and theoretical linguistics. An application should be submitted no later than May 1 of the student's junior year.

**Program of Study
** Students admitted to the program must fulfill the following requirements, in addition to completing their BA: a schedule of course work designed in conjunction with and approved by the director of graduate studies consisting of nine courses, which includes: four to five core courses, three to four electives, and either an internship in computational linguistics or a master’s thesis. The specific course work will vary according to the student’s background in computer science and/or linguistics; however all students will be required to complete COSI 114b and 217a. Depending on the student’s preparation for the program, additional courses beyond the nine may be required.

**Residence Requirement
** The minimum residence requirement is one year after completing the BA degree.

The minimum requirement for postbaccalaureate certificate is eight courses:

**A.** Introductory courses: COSI 12b and 21a.

**B.** Core courses: COSI 29a and 31a.

**C.** Electives: At least four additional COSI courses, including at least one course from the breadth and depth requirements group A and at least one from the breadth and depth requirements group B.

### Requirements for the Degree of Master of Arts (including Computational Linguistics and IT Entrepreneurship)

#### Computer Science

**Program of Study
** Satisfactory completion of an approved schedule of nine courses numbered 100 or above, which must include at least three group A courses and three group B courses.

**Residence Requirement
** The minimum residency requirement is one and a half years.

#### Computational Linguistics

**Program of Study
** The two-year MA program in computational linguistics is designed for outstanding students, preferably with an undergraduate degree in either language and linguistics or computer science. The MA provides a solid foundation for professional work in the field of computational linguistics or pursuit of a PhD in computational linguistics and theoretical linguistics.

Students must complete a schedule of course work designed in conjunction with and approved by the director of graduate studies consisting of nine courses, which includes: four to five core courses, three to four electives, and either an internship in computational linguistics or a master’s thesis. The master’s thesis must be deposited electronically to the Robert D. Farber University Archives at Brandeis.

The specific course work will vary according to the student’s background in computer science and/or linguistics; however all students will be required to complete COSI 114b and 217a. Depending on the student’s preparation for the program, additional courses beyond the nine may be required.

**Residence Requirement
** The minimum residence requirement is two years.

#### Computer Science and Information Technology Entrepreneurship

**Program of Study**

The MA program in computer science and IT entrepreneurship provides both the solid training in computer science of the standard MA but includes an additional four course entrepreneurship sequence that culminates in a practicum in which the student creates a business plan for an IT startup in the second year.

Students must complete twelve COSI courses numbered 100 or higher, including two core courses in the first year: COSI 235a, 236b; a two course practicum in the second year (COSI 320d) and eight COSI electives numbered 100 or above, at least three of which must be in the breadth and depth requirements group A and at least three in the breadth and depth requirements group B.

**Residence Requirement**

The minimum residence requirement is two years.

**Adviser**

By the end of the first year, the student must obtain the consent of a computer science faculty member to serve as adviser and dissertation committee chair.

**Course Requirements
** The same as those for the Master of Arts.

**Teaching Requirement
** The mentoring, training, and evaluation of teaching fellows is an ongoing and important component of the graduate program. Students normally teach one course per year, beginning as graders of problem sets and assignments, and move progressively to higher levels of involvement with teaching in courses across the curriculum. They participate in the design and delivery of course lectures and each year, under the guidance of their faculty, they present several lectures. Whether students are preparing for an academic and research career or an industry position, the teaching fellow experience is valuable training in course preparation and technical communication.

**Thesis Committee and Proposal**

**1.**Establishment by the adviser and the director of graduate studies of a thesis committee consisting of the adviser, two other Brandeis faculty, and one appropriate external member from outside Brandeis.

**2.** An approved, written thesis proposal by the candidate that surveys the relevant literature and states the goals of the dissertation and topics to be investigated (including aspects already completed or underway), along with an oral presentation to the thesis committee that is open to computer science faculty who wish to attend.

**Thesis Defense
** Public defense of a completed dissertation will be announced three weeks in advance. Copies of the complete thesis will be available to the faculty during these three weeks.

**Residence Requirement
** The minimum residency requirement is three years.

Many of the computer science degrees listed above contain a breadth requirement with respect to a classification of the courses shown below. Group A consists of courses in artificial intelligence, human computer interaction, cognitive science, computational biology, computational linguistics, and IT entrepreneurship. Group B consists of courses in theoretical computer science, systems, networks, algorithms, and graphics.

Group A: COSI 101a, 111a, 112a, 113b, 114b, 118a, 125a, 133b, 134a, 178a, 215a, 216a, 217a, 217b, 230a, 235a, 236b.

Group B: COSI 120a, 123a, 127b, 128a, 135b, 146a, 147a, 155b, 160a, 175a, 180a, 190a, 220a, 227b, 228a.

Students may petition to have particular independent study courses (CS98ab, CS200ab, CS210ab) classified to be in one of these groups for the purposes of breadth or depth requirements.

### Courses of Instruction

#### (1-99) Primarily for Undergraduate Students

**
COSI
2a
Introduction to Computers
**

[
sn
]

An introduction to the basic principles underlying computer hardware and software and to the implications of the wider use of computers in society. Topics will include hardware, software, Web page design, applet and servlet programming, the Internet, privacy and security issues, as well as a survey of current research directions, including artificial intelligence and parallel computing. Usually offered every year.

Mr. Hickey

**
COSI
11a
Programming in Java and C
**

[
sn
]

*Open only to students with no previous programing background.*

A general introduction to structured programming and problem solving using C and Java in the context of the World Wide Web. Students also learn GUI programming and advanced HTML authoring. There are weekly programming assignments. Usually offered every year.

Staff

**
COSI
12b
Advanced Programming Techniques
**

[
sn
]

*Prerequisite: COSI 11a or programming facility in C.*

An introduction to fundamental programming techniques covering basic software engineering, object oriented programming, interfaces, API¿s and abstract classes, with applications to Graphical User Interfaces, web programming, graphics, and other topics. Usually offered every year.

Staff

**
COSI
21a
Data Structures and the Fundamentals of Computing
**

[
sn
]

*Prerequisite: COSI 11a or programming facility in C.**An introduction to the fundamental concepts of computation: discrete structures (sets, relations, functions, sequences, graphs), the fundamental data structures and algorithms for sorting and searching (lists, queues, dequeues, heaps, hashing, binary trees, tries), and the analysis of algorithms (predicate logic,*

termination and correctness proofs, computational complexity). Usually offered every year.

Mr. Storer

**
COSI
21b
Structure and Interpretation of Computer Programs
**

[
sn
]

*Prerequisites: COSI 11a or programming facility in C.*

An introduction to idioms of programming methodology, and to how programming languages work. Principles of functional programming, data structures and data abstraction; state, imperative and object-oriented programming; lazy data structures; how an interpreter works; metalinguistic abstraction and programming language design; syntax analysis, lexical addressing, continuations and explicit control; continuation-passing style, metacircular and register-machine compilers. Usually offered every year.

Mr. Mairson

**
COSI
22b
Programming Paradigms
**

*Prerequisites: COSI 21a, COSI 22a. Corequisite: COSI 21b. Yields half-course credit (two semester-hour credits).*

A practical introduction to the use of appropriate computational paradigms and programming methodologies to solve complex problems. Problem domains vary from year to year but typically include numerical programming, symbolic computation, natural language processing, simulation of physical systems, interpretation and compilation of programming languages. Usually offered every year.

Mr. Mairson

**
COSI
29a
Discrete Structures
**

[
sn
]

Covers topics in discrete mathematics with applications within computer science. Some of the topics to be covered include graphs and matrices; principles of logic and induction; number theory; counting, summation, and recurrence relations; discrete probability. Usually offered every year.

Mr. Gessel

**
COSI
30a
Introduction to the Theory of Computation
**

[
sn
]

*Prerequisite: COSI 29a.*

Formal treatment of models of computation: finite automata and regular languages, pushdown automata and context-free languages, Turing machines, and recursive enumerability. Church's thesis and the invariance thesis. Halting problem and undecidability, Rice's theorem, recursion theorem. Usually offered every year.

Mr. Mairson

**
COSI
31a
Computer System Structures and Organization
**

[
sn
]

*Prerequisites: COSI 21a. *

Fundamental structures of a computer system from hardware abstractions through machine and assembly language, to the overall structure of an operating system and key resource management abstractions. Usually offered every year.

Ms. Shrira

**
COSI
65a
Introduction to 3-D Animation
**

[
sn
]

Covers the fundamental concepts of 3-D animation and teaches both the theory underlying 3-D animation as well as the skills needed to create 3-D movies. Students demonstrate their understanding of the concepts by creating several short animated movies. Usually offered every third year.

Mr. Hickey

**
COSI
93a
Research Internship and Analysis
**

Provides students with an opportunity to work in a computer science research lab for one semester, pursuing a project that has the potential to produce new scientific results. Students and the faculty member mutually design a project for the semester that supports the research agenda of the group. Students must attend all research group meetings and present their findings in oral and written form at the end of the semester. The project typically includes background research, some lab work, and collaboration with other group members. Course requires signature of the instructor, is subject to the availability of undergraduate research positions, and is typically open only to juniors and seniors.

Staff

**
COSI
98a
Independent Study
**

Open to exceptional students who wish to study an area of computer science not covered in the standard curriculum. Usually offered every year.

Staff

**
COSI
98b
Independent Study
**

Open to exceptional students who wish to study an area of computer science not covered in the standard curriculum. Usually offered every year.

Staff

**
COSI
99d
Senior Research
**

*Prerequisites: Open only to seniors. Submission of a thesis proposal during the spring semester of the junior year. This proposal must be signed by a faculty member who has agreed to supervise the thesis.*

Research assignments and preparation of a report under the direction of an instructor. Usually offered every year.

Staff

#### (100-199) For Both Undergraduate and Graduate Students

**
COSI
101a
Fundamentals of Artificial Intelligence
**

[
sn
]

*Prerequisites: COSI 21a and COSI 29a. This course may not be repeated for credit by students who have taken COSI 35a in previous years.*

Survey course in artificial intelligence. Introduction to Lisp and heuristic programming techniques. Topics include problem solving, planning natural language processing, knowledge representation, and computer vision. Usually offered every year.

Mr. Pollack

**
COSI
111a
Topics in Computational Cognitive Science
**

[
sn
]

*Prerequisite: COSI 101a or 125a, or permission of the instructor.**Focuses on cognitive and social theories of activity that underlie human computer interaction and computer mediated collaboration. Topics include problem solving and skill acquisition, planning and situated activity, distributed cognition, activity theory, collaboration, communication, discourse, and interaction analysis. The laboratory work is designed to give the student practice with the ideas and*

techniques under discussion. The content and work of the course are specifically designed for an interdisciplinary class of students from computer science and the social sciences. Usually offered every second year.

Mr. Alterman

**
COSI
112a
Modal, Temporal, and Spacial Logic for Language
**

[
sn
]

*Prerequisites: COSI 21b or 29a and COSI 101a. *

Examines the formal and computational properties of logical systems that are used in AI and linguistics. This includes (briefly) propositional logic and first order logic, and then an in-depth study of modal logic, temporal logic, spatial logic, and dynamic logic. Throughout the analyses of these systems, focuses on how they are used in the modeling of linguistic data. Usually offered every second year.

Mr. Pustejovsky

**
COSI
113b
Artificial Life
**

[
sn
]

*Prerequisite: COSI 101a.*

A seminar on genetic algorithms, genetic programming, evolutionary programming, blind watchmaking, and related topics, ultimately focusing on co-evolutionary spirals and the automatic construction of agents with complex strategies for games. Usually offered every second year.

Mr. Pollack

**
COSI
114b
Topics in Computational Linguistics
**

[
sn
]

*Prerequisites: COSI 21b or 29a; COSI 101a.*

Provides a fundamental understanding of the problems in natural language understanding by computers, and the theory and practice of current computational linguistic systems. Of interest to students of artificial intelligence, algorithms, and the computational processes of comprehension and understanding. Usually offered every year.

Mr. Pustejovsky

**
COSI
118a
Computer-Supported Cooperation
**

[
sn
]

*Prerequisite: COSI 125a or the permission of the instructor.*

Covers basic theory and concepts of computer-supported collaborative work and learning. Laboratory work enables the student to practice a set of basic techniques as they apply to the development of computer-mediated collaboration. The content and work of the course are specifically designed for an interdisciplinary class of students from computer science and the social sciences. Usually offered every second year.

Mr. Alterman

**
COSI
120a
Topics in Computer Systems
**

[
sn
]

*Prerequisite: COSI 21a.*

Content will vary from year to year. May be repeated for credit. Prerequisites may vary with the topic area; check with instructor for details. Usually offered every third year.

Staff

**
COSI
123a
Statistical Machine Learning
**

[
qr
sn
]

*Prerequisite: MATH 8a, 10a, 15a or familiarity with basic concepts in probability and statistics and differential calculus.*

Focuses on learning from data using statistical analysis tools and deals with the issues of designing algorithms and systems that automatically improve with experience. This course is designed to give students a thorough grounding in the methodologies, technologies, mathematics, and algorithms currently needed by research in learning with data. Usually offered every year.

Mr. Hong

**
COSI
125a
Human-Computer Interaction
**

[
sn
]

*Prerequisite: sophomore standing. **Covers the basic theory and concepts of human-computer interaction. Topics include methodology for designing and testing user interfaces, interaction styles and techniques, design guidelines, and adaptive systems. The laboratory work is designed to give the student practice in a set of basic techniques used in*

the area of human-computer interaction. Usually offered every second year.

Mr. Alterman

**
COSI
127b
Database Management Systems
**

[
sn
]

*Prerequisites: COSI 21a and 29a.*

Introduces database structure, organization, and languages. Studies relational and object-oriented models, query languages, optimization, normalization, file structures and indexes, concurrency control and recovery algorithms, and distributed databases. Usually offered every second year.

Mr. Cherniack

**
COSI
128a
Modern Database Systems
**

[
sn
]

Covers advanced topics in database systems such as concurrency control, recovery, security, and data mining. Usually offered every fourth year.

Mr. Cherniack

**
COSI
133b
Internet and Society
**

[
sn
]

*Prerequisite: sophomore standing. This course may not be repeated for credit by students who have taken COSI 33b in previous years.*

An interdisciplinary survey of the Internet. Taught by a team of professors from several different departments, the course content will vary from year to year. Some particular topics to be covered are the architecture of the Internet (and the implications this has on its regulation), intellectual property, privacy, censorship, e-commerce, online education, and research. Usually offered every year.

Mr. Hickey

**
COSI
134a
Statistical Approaches to Natural Language Processing
**

[
sn
]

*Prerequisite: COSI 114b. May be taken concurrently with COSI 114b.*

An introductory graduate-level course covering fundamental concepts in statistical Natural Language Processing (NLP). Provides an in-depth view of the statistical models and machine-learning methods used in NLP, including methods used in morphological, syntactic, and semantic analysis. Usually offered every year.

Staff

**
COSI
135b
Computational Semantics
**

[
sn
]

*Prerequisites: COSI 11a or permission of the instructor. Open to advanced undergraduate students and first-year graduate students.*

A study of the computational treatment of core semantic phenomena in language. After a review of first-order logic and the lambda calculus, the course focuses on three core topics: interrogative structures, including semantics of questions, question-answering systems, dialogue, entailment, commonsense knowledge; meaning update and revision; and computational lexical semantics. Usually offered every year.

Mr. Pustejovsky

**
COSI
146a
Principles of Computer System Design
**

[
sn
]

*Prerequisites: COSI 31a; MATH 10a (MATH 10b recommended).**Topics on the design and engineering of computer systems: techniques for controlling complexity; strong modularity using client-server design; layering; naming; networks; security and privacy; fault-tolerant systems, atomicity and and recovery; performance; impact of computer systems on society. Case studies*

of working systems and readings from the current literature provide comparisons and contrast. Usually offered every second year.

Ms. Shrira

**
COSI
147a
Distributed Systems
**

[
sn
]

*Prerequisite: COSI 31a and C/C++/UNIX programming skills.*

This course covers abstractions and implementation techniques for the design of distributed systems. Topics include: distributed state sharing, coherence, storage systems, naming systems, security, faulttolerance and replication, scalability and performance. The assigned readings for the course are from current literature. Usually offered every second year.

Ms. Shrira

**
COSI
155b
Computer Graphics
**

[
sn
]

*Prerequisite: COSI 11a. *

An introduction to the art of displaying computer-generated images and to the design of graphical user interfaces. Topics include graphic primitives; representations of curves, surfaces, and solids; and the mathematics of two- and three-dimensional transformations. Usually offered every third year.

Mr. Hickey

**
COSI
160a
Parallel Computing and Programming
**

[
sn
]

*Prerequisites: COSI 29a and 31a.*

An introduction to parallel computation at the levels of architecture, communication, data structures, algorithms, analysis, programming models, and programming languages. Usually offered every second year.

Staff

**
COSI
175a
Data Compression and Multimedia Processing
**

[
sn
]

*Prerequisites: COSI 21a, 29a, and 31a.*

Selected topics in data compression and image and video processing, including adaptive lossless compression, lossy image and video compression, transformations on image and video, multimedia retrieval problems, parallel algorithms. Usually offered every second year.

Mr. Storer

**
COSI
178a
Computational Molecular Biology
**

[
sn
]

*Open to advanced undergraduate students and graduate students. **Information and computing technologies are becoming indispensable to modern biological research due to the significant advances of high-throughput experimental technologies in recent years. This course presents an overview of the systematic development and application of computing systems and computational algorithms/techniques to the analysis of biological data, such as sequences, gene*

expression, protein expression, and biological networks. Hand-on training will be provided. Usually offered every other year.

Mr. Hong

**
COSI
180a
Algorithms
**

[
sn
]

*Prerequisites: COSI 21a,b, and 29a. This course may not be repeated for credit by students who have taken COSI 30b in previous years.*

Basic concepts in the theory of algorithm design and analysis, including advanced data structures and algorithms, parallel algorithms, and specialized topics. Usually offered every second year.

Staff

**
COSI
190a
Introduction to Programming Language Theory
**

[
sn
]

*Prerequisite: COSI 21a or familiarity with a functional programming language, set theory, and logic.**An introduction to the mathematical semantics of functional programming languages. Principles of denotational semantics; lambda calculus and its programming idiom; Church-Rosser theorem and Böhm's theorem; simply typed lambda calculus and its model theory: completeness for the full type frame,*

Statman's 1-section theorem and completeness of beta-eta reasoning; PCF and full abstraction with parallel operations; linear logic, proofnets, context semantics and geometry of interaction, game semantics, and full abstraction. Usually offered every second year.

Mr. Mairson

#### (200 and above) Primarily for Graduate Students

**
COSI
200a
Readings
**

Specific sections for individual faculty members as requested.

Staff

**
COSI
200b
Readings
**

Specific sections for individual faculty members as requested.

Staff

**
COSI
210a
Independent Study
**

Usually offered every year.

Staff

**
COSI
215a
Advanced Topics in Computer Supported Cooperation
**

Topics vary from year to year. The course may be repeated with the approval of the instructor. Usually offered every second year.

Staff

**
COSI
216a
Topics in Natural Language Processing
**

*Prerequisite: COSI 101a.*

Reviews recent trends in computational approaches to linguistics, semantics, knowledge representation for language, and issues in parsing and inferences. Usually offered every fourth year.

Mr. Pustejovksy

**
COSI
217a
Topics in Adaptive Systems
**

*Prerequisite: COSI 101a.*

In nature, systems with greater complexity than any designed by humans arise without a designer. The central question explored is: How can complex modular organization arise without an intelligent designer? The class reads about theories of organization in different settings and scales (cells, brains, minds, behavior, society, economies), and studies papers, models, and algorithms from a variety of fields that might shed light on the issue. Usually offered every third year.

Mr. Pollack

**
COSI
217b
Natural Language Processing Systems
**

*Prerequisite: COSI 114b or permission of the instructor.*

This course looks at building coherent systems designed to tackle real applications in computational linguistics. Particular topics will vary from year to year, but each call will consider some of the following: machine (aided) translation, speech interfaces, information retrieval/extraction, natural language question answering systems, dialogue systems, summarization, computer-assisted language learning, language documentation/linguistics hypothesis testing, and handwriting recognition. Usually offered every year.

Staff

**
COSI
220a
Advanced Topics in Systems
**

*Prerequisite: COSI 31a.*

Covers selected areas in advanced computer systems and engages students in top-flight systems research. The class is based on a discussion of important research papers and a research project. Usually offered every second year.

Ms. Shrira

**
COSI
227b
Advanced Topics in Database Systems
**

*Prerequisite: COSI 127b.*

An in-depth treatment of advanced topics in database management systems. Topics vary from year to year and may include distributed databases, query processing, transaction processing, and Web-based data management. Usually offered every second year.

Mr. Cherniack

**
COSI
228a
Topics in Distributed Systems
**

Advanced topics in networked information systems and internet-scale data management. Usually offered every third year.

Ms. Papaemmauouil

**
COSI
230a
Topics in Computational Biology
**

This course aims to transcend traditional departmental boundaries and facilitate communications between experimental biologists and computational scientists. Through reading literature and small research projects, students will be introduced to problems in computational biology and learn the methods for studying them.

Mr. Hong

**
COSI
235a
IT Entrepreneurship
**

Covers the fundamental concepts needed to transform an idea for a software application into a viable IT business. The focus of the course is on software-based IT enterprises and the specific challenges and opportunities they present. Usually offered every year.

Mr. Colon Osorio

**
COSI
236b
Software Development for IT Entrepreneurship
**

*Prerequisite: COSI 235a or permission of the instructor.*

This course teaches the fundamentals of software engineering and emphasizes rapid prototyping, unit testing, usability testing, and collaborative software development principles. Students apply these concepts by building a complex software system in small teams of programmers/developers. Usually offered every year.

Mr. Colon Osorio

**
COSI
240b
Computational Logic
**

*Prerequisite: Some previous exposure to logic, computation theory, and functional programming.**An introduction to logic and computation from a syntactic perspective. Lambda calculus: programming idiom, Church-Rosser and Böhm's theorems, standardization theorem, Krivine machine and head reduction; sequent calculus and Gentzen's cut-elimination theorem; simply-typed lambda calculus:*

intuitionistic logic, Curry-Howard correspondence, normalization theorems, complexity of deciding equality; polymorphic lambda calculus: programming idiom, strong normalization, realizability of total functions, "Dialectica" interpretation, incompleteness; linear logic: proofnets, correctness criteria and complexity, complexity of normalization, geometry of interaction and translation of lambda calculus, optimal reduction; computational classical logic: double-negation translations and continuations; games and provability; differential lambda calculus and reinterpretation of Taylor's theorem. Usually offered every second year.

Mr. Mairson

**
COSI
293a
Graduate Research Internship
**

*Permission of the graduate advising head required. Yields half-course credit; may be repeated for credit.*

Offers graduate students a opportunity to engage in industrial research in computer science by completing a paid or unpaid internship of at least ten weeks duration approved and monitored by a faculty member.

Staff

**
COSI
300a
Master's Project
**

Usually offered every year.

Staff

**
COSI
300b
Master's Project
**

Usually offered every year.

Staff

**
COSI
310a
Seminar in Artificial Intelligence
**

Usually offered every second year.

Staff

**
COSI
315b
Current Topics in Learning and Neural Nets
**

Usually offered every second year.

Staff

**
COSI
320a
IT Entrepreneurship Practicum I
**

*Prerequisites: COSI 235a, 236b, and permission of the faculty advisor.*

This course guides students through the process of developing a marketable prototype of an original software application and helps them prepare a business plan for that application. Usually offered every year.

Staff

**
COSI
320b
IT Entrepreneurship Practicum II
**

Prerequisite: COSI 320a.

Staff

**
COSI
340a
Seminar in Programming Languages
**

Usually offered every second year.

Staff

**
COSI
390a
Seminar in Theory of Computation
**

Usually offered every second year.

Staff

**
COSI
400d
Dissertation Research
**

Specific sections for individual faculty members as requested.

Staff

#### Cross-Listed in Computer Science

**
ANTH
138a
Social Relations in Cyberspace
**

[
ss
]

Provides an introduction to various forms of computer-mediated communication (e.g., instant messaging, blogging, social networking, online dating) and the ways in which people interact in these different contexts of cyberspace. Students are expected to do online research. Usually offered every year.

Mr. Jacobson

**
ANTH
174b
Virtual Communities
**

[
ss
]

*Prerequisite: ANTH 138a or permission of the instructor. *

A research seminar dealing with a selected problem in the social organization of online communities. Possible topics include impression formation in cyberspace, social control in virtual communities, the concept of presence in computer-mediated communication, and the transition between online and offline relationships. Students will do online fieldwork. Usually offered every third year.

Mr. Jacobson

**
BCHM
170b
Bioinformatics
**

[
sn
]

*Prerequisites: Familiarity with computing is necessary and a basic biochemistry course is recommended. A joint offering between Brandeis University and Wellesley College.*

Familiarizes students with the basic tools of bioinformatics and provides a practical guide to biological sequence analysis. Topics covered include an introduction to probability and statistics; sequence alignments; database searches; alignments and phylogenetic trees; sequence pattern discovery; structure determination by secondary structure prediction; and three-dimensional structure prediction by homology modeling. In all cases, the strengths and limitations of the methods will be discussed. Usually offered every third year.

Ms. Ringe

**
BIOL
135b
The Principles of Biological Modeling
**

[
qr
sn
]

*Prerequisite: MATH 10a or 10b.*

With examples from neuroscience, cell biology, ecology, evolution, and physiology, dynamical concepts of significance throughout the biological world are discusses. Simple computational and mathematical models are used to demonstrate important roles of the exponential function, feedback, stability, oscillations, and randomness. Usually offered every second year.

Mr. Miller

**
CHEM
144a
Computational Chemistry
**

[
sn
]

*Prerequisites: A satisfactory grade in CHEM 11a, 15a and CHEM 11b, 15b or equivalent; MATH 10a,b or equivalent; PHYS 11a,b or 15a,b or equivalent. Organic chemistry is also recommended. *

Topics in computational chemistry: applications of quantum mechanics to structural and spectroscopic analysis of small molecules; molecular dynamics and Monte Carlo simulations of biomacromolecules. Standard computational programs are used by students to perform homework exercises. Usually offered every other year.

Mr. Jordan

**
LING
130a
Formal Semantics: Truth, Meaning, and Language
**

[
hum
ss
]

*Prerequisite: LING 100a or permission of the instructor. LING 8b or LING 120b recommended.*

Explores the semantic structure of language in terms of the current linguistic theory of model-theoretic semantics. Topics include the nature of word meanings, categorization, compositionality, and plurals and mass terms. Usually offered every year.

Ms. Malamud

**
MATH
30a
Introduction to Algebra, Part I
**

[
sn
]

*Prerequisite: MATH 23b and MATH 22a, or permission of the instructor.*

An introduction to the basic notions of modern algebra-rings, fields, and linear algebra. Usually offered every year.

Mr. Igusa (fall)

**
MATH
30b
Introduction to Algebra, Part II
**

[
sn
]

*Prerequisite: MATH 30a or permission of the instructor.*

A continuation of MATH 30a, culminating in Galois theory. Usually offered every second year.

Staff (spring)

**
MATH
36a
Probability
**

[
qr
sn
]

*Prerequisite: MATH 20a or 22b.*

Sample spaces and probability measures, elementary combinatorial examples. Random variables, expectations, variance, characteristic, and distribution functions. Independence and correlation. Chebychev's inequality and the weak law of large numbers. Central limit theorem. Markov and Poisson processes. Usually offered every year.

Mr. Adler (fall)

**
MATH
38b
Number Theory
**

[
sn
]

*Prerequisites: MATH 23b and either MATH 22a or permission of the instructor.*

Congruences, finite fields, the Gaussian integers, and other rings of numbers. Quadratic reciprocity. Such topics as quadratic forms or elliptic curves will be covered as time permits. Usually offered every second year.

Mr. Bellaiche (spring)

**
MATH
39a
Introduction to Combinatorics
**

[
sn
]

*Prerequisites: COSI 29a or MATH 23b.*

Topics include graph theory (trees, planarity, coloring, Eulerian and Hamiltonian cycles), combinatorial optimization (network flows, matching theory), enumeration (permutations and combinations, generating functions, inclusion-exclusion), and extremal combinatorics (pigeonhole principle, Ramsey's theorem). Usually offered every second year.

Staff (fall)

**
PHIL
106b
Mathematical Logic
**

[
hum
sn
]

*Prerequisite: One course in logic or permission of the instructor. *

Covers in detail several of the following proofs: the Gödel Incompleteness Results, Tarski's Undefinability of Truth Theorem, Church's Theorem on the Undecidability of Predicate Logic, and Elementary Recursive Function Theory. Usually offered every year.

Staff

**
PHYS
29a
Electronics Laboratory I
**

[
sn
]

*Prerequisites: PHYS 10a and 10b or PHYS 15a and 15b; and PHYS 18a and 18b or PHYS 19a and 19b. *

Introductory laboratory in analog electronics. Topics to be covered are DC circuits, AC circuits, complex impedance analysis, diodes, transistors, and amplifiers. Usually offered every year.

Mr. Kirsch

**
PHYS
29b
Electronics Laboratory II
**

[
sn
]

*Prerequisite: PHYS 29a. *

Introductory laboratory in digital electronics. Topics to be covered are Boolean algebra, combinational logic, sequential logic, state machines, digital-analog conversion, and microprocessors. The last part of the semester is spent on individual design projects. Usually offered every year.

Mr. Kirsch

**
PHYS
32b
Microprocessor Laboratory
**

[
sn
]

*Prerequisite: PHYS 29a or b.*

Study of microprocessor design and use as controller for other devices. Topics include architecture of microcomputers, interfacing, digital control, analog control, and software development. Usually offered every second year.

Mr. Kirsch