Computer Science
S = Objectives
Undergraduate Concentration
The undergraduate program in
computer science teaches the fundamentals of the theoretical and
practical aspects of computing, preparing students for creative
jobs in the computer industry, and for graduate school. In addition,
our curriculum is a stimulating and useful preparation for a number
of not directly-related professions, such as law, medicine, and
economics.
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.
A normal program of study in computer science at Brandeis starts with two years of basic graduate course work. At the completion of this course work, students are eligible for a master's degree. During this initial two-year period, candidates for the degree of Doctor of Philosophy complete the qualifying requirements and select a thesis topic and advisor. Dissertation research typically requires two to three additional years.
S = How to Become an Undergraduate Concentrator
Previous experience in computer programming is helpful, but not necessary (students lacking such knowledge should take COSI 11a in their first year). As a rule our course sequence should not be started later than the sophomore year.
G = How to Be Admitted to the Graduate Program
The general requirements for admission to the Graduate School, given in an earlier section of the Bulletin, apply here. Applicants for admission to the computer science program should submit three letters of recommendation, take the Graduate Record Examination, and take the advanced test in computer science. Funds from research grants and fellowships are available to provide financial support for well-qualified students.
S = Faculty
James Storer, Chair
Data compression and image
processing. Computational geometry. Parallel computing. Algorithms.
Richard Alterman
Artificial intelligence. Cognitive
modeling. Natural language processing. Memory-based reasoning
and everyday activity.
Jacques Cohen
Compiler design. Analysis of
parallel algorithms. Logic programming. Data structures.
Martin Cohn
Information theory. Codes.
Sequences. Data compression.
Ira Gessel
Combinatorics. Number theory.
Timothy Hickey, Undergraduate Advising Head
Analysis of algorithms. Logic
programming and parallel processing. Symbolic manipulation.
Harry Mairson
Logic in computer science.
Lambda calculus and functional programming. Type theory and constructive
mathematics. Complexity theory. Algorithmics.
Maja Mataric
Artificial intelligence. Autonomous
agents. Machine learning. Cognitive science. Computational neuroscience.
Jordan Pollack
Artificial intelligence. Neural
networks. Machine learning. Evolutionary computation. Dynamical
systems.
James Pustejovsky, Graduate Advising Head
Artificial intelligence. Computational
linguistics. Machine learning.
Liuba Shrira
Operating systems. Distributed systems. Multi-cache computing.
S = Requirements for the Undergraduate Concentration
The minimum requirements for
the computer science concentration are 12 full courses plus two
half-credit lab courses:
A.
Mathematics courses: MATH 10a, 10b.
B.
Core courses: COSI 21a and 22a, 21b and 22b, 30a, 31a, 31b, and
35a.
C.
Electives: At least 4 COSI or cross-listed courses numbered 40
or above excluding COSI 99d.
Honors
Graduation with honors in computer
completion of a Senior Honors Thesis; students considering this
option should take note of the prerequisites for enrollment in
COSI 99d (Senior Research).
Combined B.A./M.A. Program
Available only to Brandeis students who have completed all requirements for the undergraduate B.A. degree and have performed well in the computer science major. Students should apply in their senior year, at which time they should propose a course of study for the fifth year that typically includes course work, teaching assistantship, and independent study.
S = Requirements for the Minor in Computer Science
A.
Demonstrated ability to program in C, or COSI 11a.
B.
COSI 21a and 22a.
C.
COSI 21b and 22b.
D.
COSI 31a.
E. One elective in computer science numbered higher than 20.
S = Special Notes Relating to Undergraduates
Students may submit a written request to use a course from another department to satisfy one of the required computer science electives. Approval of such a request is based on the relationship of this course to the student's other computer science electives.
G = Requirements for the Degree of Master of Arts
Satisfactory completion of
an approved schedule of courses, and optionally, a research project.
A typical program of study consists of eight to 10 courses (which
may include some undergraduate courses and some courses offered
by other departments), a project (two semesters of COSI 300),
and a teaching assistantship.
Residence Requirement
The minimum residence requirement
is two years at full-time or the equivalent in part-time study.
Language Requirement
There is no foreign language requirement.
G = Requirements for the Degree of Doctor of Philosophy
Advisor
Upon entering the program,
each student is assigned a tentative advisor. By the end of the
first year the student should obtain the consent of a computer
science faculty member to serve as his or her advisor and dissertation
committee chair.
Course Requirements
Passage of nine courses approved
by the advisor and the director of graduate studies. In each of
the following three groups, at least one course must be passed
with a grade of A- or better.
A.
AI Group: COSI 110a, 111a, 112a, 114b, 117b.
B.
Languages and Systems Group: COSI 120a, 140a, 150a, 160a.
C.
Algorithms and Theory Group: COSI 170a, 171a, 175a, 180a, 190a.
Qualifying Examination
Passage with grades of B+ or
better of a four-and-one-half hour written examination testing
competence at the undergraduate level in Artificial Intelligence,
Languages and Systems, and Algorithms and Theory. The examination
is taken during the first semester of matriculation, if necessary,
any section may be retaken, or any section may be replaced by
earning grades of A- or better in two undergraduate courses as
follows: artificial intelligence (COSI 21b, 35a), languages and
systems (COSI 31a, 31b, 146a), algorithms and theory (COSI 30a,
180a). No more than two of such remedial courses will count towards
the course requirements. The process must be completed within
two years of matriculation.
Oral Presentation
Presentation to the faculty
of a one-hour talk on original work or on the state of art in
the candidate's proposed field of research. The oral presentation
normally takes place within two and one-half years of matriculation.
Establishment of Thesis Committee; Thesis Proposal
Establishment by the advisor
and the director of graduate studies of a thesis committee consisting
of the advisor, two other faculty members, and one outsider.
A written proposal by the candidate
of goals of the dissertation and topics to be investigated, including
aspects already completed or under way. The proposal normally
takes place within two and one-half years of matriculation.
Thesis Defense
Public defense to be announced
three weeks in advance. Copies of the complete thesis to be available
to the faculty during these three weeks.
Residence Requirement
The minimum residence requirement
is three years.
Language Requirement
There is no foreign language requirement for the doctoral degree.
S = Courses of Instruction
S = (1-99) Primarily for Undergraduate Students
COSI 2a Introduction to Computers
[ cl34 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, 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. Pustejovsky
COSI 11a Programming in Java and C
[ sn ]
A general introduction to structured programming and problem solving using C and Java, in the context of the World Wide Web. Students also learn CGI programming and advanced HTML authoring. There are weekly programming assignments. Computer science majors with adequate programming skills may wish to take COSI 21a directly. Usually offered every year.
Staff
COSI 21a Data Structures and the Fundamentals of Computing
[ qr sn ]
Prerequisite: COSI 11a or programming facility in C. Corequisite: COSI 22a. This course satisfies the quantitative reasoning requirement only when taken with the corresponding lab.
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). The associated laboratory course is COSI 22a. Usually offered every year.
Mr. Hickey
COSI 21b Structure and Interpretation of Computer Programs
[ qr sn ]
Prerequisite: COSI 21a, 22a. Corequisite: COSI 22b. This course satisfies the quantitative reasoning requirement only when taken with the corresponding lab.
An introduction to the fundamental models of computation: functional programming, abstract data types, imperative programming, object-oriented programming, data-driven programming, meta-linguistic abstraction, and logic programming. The associated laboratory course is COSI 22b. Usually offered every year.
Mr. Pollack
COSI 22a Fundamentals of Programming
Corequisite: COSI 21a. May yield half-course credit toward rate of work and graduation. Two semester hour credits.
An introduction to the tools and techniques needed to design, construct, verify, analyze, and maintain programs. One afternoon a week and one, one-hour lecture a week. Usually offered every year.
Mr. Hickey
COSI 22b Programming Paradigms
Prerequisites: COSI 21a, COSI 22a. Corequisite: COSI 21b. May yield half-course credit toward rate of work and graduation. 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. One afternoon a week and one, one-hour lecture a week. Usually offered every year.
Mr. Pollack
COSI 30a Introduction to the Theory of Computation
[ sn ]
Prerequisites: COSI 21a,b; COSI 22a,b.
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 Structures and Organization
[ sn ]
Prerequisite: COSI 21a,b; COSI 22a,b.
Processors, memories, and peripherals and their interactions. Fundamental structures of computers from logic gates and circuits, through machines and assembly language, to the overall structure of operating systems. Usually offered every year.
Staff
COSI 31b Languages and Compiler Design
[ sn ]
Prerequisites: COSI 21a,b; 22a,b.
Design, implementation, and evaluation criteria for programming languages. Usually offered every year.
Mr. Cohen
COSI 35a Fundamentals of Artificial Intelligence
[ cl19 sn ]
Prerequisite: COSI 21a,b; 22a,b or permission of the instructor.
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. Alterman
COSI 98a Independent Study
Signature of the instructor required.
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
Signature of the instructor required.
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: (A) Open only to seniors. (B) A grade point average of 3.50 or higher in the major after completing spring semester of the junior year. (C) 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
G = (100-199) For Both Undergraduate and Graduate Students
COSI 111a Topics in Computational Cognitive Science
[ cl19 sn ]
Prerequisite: COSI 35a.
Discusses computational, psychological, and sociological aspects of human computer interaction, beginning with the current models of activity. The emphasis will be on constructing intelligent interfaces that adhere to the principles extracted from the interdisciplinary literature on human usage of tools. Usually offered every year.
Mr. Alterman
COSI 112a Theory and Models of Agent Behavior
[ sn ]
Prerequisite: COSI 35a.
Topics include collective behavior, behavior-based control, action selection, sensor fusion, agent learning, world modeling, representation of goals and plans, routine behavior and activity, cultural adaptation, and instruction. Usually offered in odd years.
Ms. Mataric
COSI 113b Machine Learning
[ sn ]
Prerequisite: COSI 35a.
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 in even years.
Mr. Pollack
COSI 114b Topics in Computational Linguistics
[ sn ]
Prerequisite: COSI 35a, or 21b, or permission of the instructor. Signature of the instructor required.
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 120a Topics in Computer Systems
[ sn ]
Prerequisite: COSI 35a.
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 in even years.
Staff
COSI 140a Logic Programming
[ sn ]
Prerequisite: COSI 31a,b.
Studies the relationship of Prolog to predicate calculus, horn clauses, unification algorithms, intelligent backtracking, infinite trees, inequalities, implementation issues, and concurrent Prolog. Usually offered every year.
Mr. Cohen
COSI 146a Fundamentals of Operating Systems
(Formerly COSI 46a)
[ sn ]
Prerequisites: COSI 21a,b; 22a,b; 31a; MATH 10a (MATH 10b recommended). This course may not be repeated for credit by students who have taken COSI 46a in previous years.
Design of systems that share resources. Specific topics: naming, binding, protection, reliability, synchronization, scheduling, storage allocation, interprocess communication. Usually offered every year.
Staff
COSI 147a Networks and Distributed Computing
[ sn ]
Prerequisite: COSI 46a or the equivalent, C/C++/UNIX programming skills.
Introduces state-of-the-art networking technologies, architectures, and protocols, with an emphasis on the Internet and the World Wide Web. Specific topics include naming and RPC at the application level, TCP/IP and UDP/IP at the transport/network levels, and Ethernet, ATM, FDDI, and wireless technologies at the physical level. Usually offered in even years.
Mr. Krishnakumar
COSI 150a Compiler Design
[ sn ]
Prerequisite: COSI 31a,b.
Covered are advanced topics in parser and lexical scanner generation, data flow analysis, code generation, and parallel compilation. Usually offered every year.
Mr. Hickey
COSI 155b Computer Graphics
(Formerly COSI 55b)
[ sn ]
This course may not be repeated for credit by students who have taken COSI 55b in previous years.
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 in odd years.
Mr. Hickey
COSI 160a Parallel Computing and Programming
[ sn ]
Prerequisite: COSI 31a,b.
An introduction to parallel computation at the levels of architecture, communication, data structures, algorithms, analysis, programming models, and programming languages. Usually offered in odd years.
Staff
COSI 170a Information Theory and Coding
[ sn ]
Prerequisite: COSI 30a,b.
Information theory as applied to the problems of rewriting digital data to be more concise, more error-resistant, or more appropriate to physical environments. Usually offered in odd years.
Mr. Cohn
COSI 171a Cryptology: Cryptography and Cryptanalysis
[ sn ]
Prerequisite: COSI 30a,b.
The study of data secrecy, privacy, and security. How can information be encoded so that an adversary can neither alter it, forge it, nor gain any knowledge of it? Usually offered in even years.
Mr. Cohn
COSI 180a Algorithms
[ sn ]
Basic concepts in the theory of algorithm design and analysis, including advanced data structures and algorithms, parallel algorithms, and specialized topics. Usually offered in even years.
Mr. Storer
COSI 188a Introduction to Combinatorics
(Formerly COSI 88a)
[sn ]
Signature of the instructor required. This course may not be repeated for credit by students who have taken COSI 88a in previous years.
Topics include graph theory, network flow and matching algorithms, counting problems, generating functions, and NP-complete problems. Usually offered in odd years.
Mr. Gessel
COSI 190a Introduction to Programming Language Theory
[ sn ]
Prerequisite: COSI 21a or familiarity with a functional programming language, set theory, and logic. Signature of the instructor required.
Lambda calculus and combinatory logic: Church-Rosser theorem, continuity and computability, denotational semantics, model theory. Typed lambda calculi: strong normalization, representability, completeness of equational reasoning, Curry-Howard isomorphism. Introduction to ML: polymorphism and type inference, module system. Category theory: categorical combinators and compilation, continuations, monads. Usually offered in odd years.
Mr. Mairson
G = (200 and above) Primarily for Graduate Students
COSI 200a and b Readings
Specific sections for individual faculty members as requested.
Staff
COSI 210a Independent Study
Signature of the instructor required.
Usually offered every year.
Staff
COSI 215a Advanced Topics in Artificial Intelligence
Topics vary from year to year. The course may be repeated with the approval of the instructor. Usually offered every year.
Staff
COSI 215b Advanced Topics in Artificial Intelligence
See COSI 215a for description. Usually offered every year.
Staff
COSI 240b Computational Logic
Prerequisite: Some previous exposure to logic, computation theory, and functional programming.
An introduction to logic in computer science. Propositional and first-order logic: completeness, compactness, unification and resolution theorem proving, and circuit and query complexity. Intuitionistic logic: Curry-Howard isomorphism, normalization, Kripke models, and double-negation embeddings. Higher-order logic: Godel's "dialectica" theorem, program synthesis, and decision problems. Usually offered in odd years.
Mr. Mairson
COSI 285a Advanced Topics in Algorithms and Computational Complexity
Content of course varies from year to year. Usually offered in even years.
Staff
COSI 300a and b Master's Project
Offered every year.
Staff
COSI 310a Seminar in Artificial Intelligence
Usually offered in even years.
Staff
COSI 310b Seminar in Artificial Intelligence
Usually offered in even years.
Staff
COSI 315b Current Topics in Learning and Neural Nets
Usually offered in even years.
Staff
COSI 340a Seminar in Programming Languages
Usually offered in even years.
Staff
COSI 390a Seminar in Theory of Computation
Usually offered in odd years.
Staff
COSI 400d Dissertation Research
Specific sections for individual faculty members as requested.
Staff