Computer Science

Professor Carla Brodley, Acting chair; Artificial intelligence, machine learning, computer security
Professor Sarah Frisken, Computer graphics and modeling
Professor Diane L. Souvaine, Computational geometry, algorithm design and analysis
Associate Professor Anselm C. Blumer, Artificial intelligence, machine learning, computational biology
Associate Professor Alva Couch, Network administration, parallel and distributed computing, scientific computing and visualization
Associate Professor Lenore J. Cowen,Computational biology, theory of computation, algorithm design and analysis
Associate Professor Soha Hassoun, CAD, VLSI design
Associate Professor Robert J. K. Jacob
, Human-computer interaction, multimedia studies
Emeritus Associate Professor David Krumme, Parallel and grid computing
Associate Professor Donna Slonim, Computational biology, artificial intelligence, machine learning
Assistant Professor Samuel Z. Guyer, Compilers, programming languages/*
Assistant Professor Roni Khardon, Machine learning, artificial intelligence, computational learning theory
Assistant Professor A. Kofi Laing, Parallel and distributed computing, theory of computation, algorithm design and analysis
Senior Lecturer Judith A. Stafford, Software engineering
Lecturer Ray Kozlowski, Natural language generation
Lecturer Bruce Molay, Software design
Lecturer Kris Powers
, Computer science education

Secondary Appointments
Professor Bruce Boghosian, Mathematics, Quantum computing, scientific and distributed computing
Professor Christoph Börgers, Mathematics, Applied mathematics and computing
Professor Misha Kilmer, Mathematics, Numerical linear algebra, linear algebra, scientific computing and visualization
Professor Douglas Preis, Electrical & Computer Engineering, Scientific computing, visualization
Associate Professor
Karen Panetta, Electrical & Computer Engineering,
Human-computer interaction, multimedia studies
Assistant Professor Marina Bers, Child Development, Human-computer interaction, collaborative learning systems, virtual communities

The department offers undergraduate programs in computer science for both liberal arts and engineering students, and several degree and non-degree graduate programs.

Undergraduate Concentration Requirements - College of Liberal Arts
 

Major in Computer Science
Ten courses: eight courses in computer science and two courses in related fields. The computer science courses must be more advanced than Computer Science 11 and must include Computer Science 15, 40, 80, 160, and 170. The related fields’ courses are Mathematics 12 or 17 and Mathematics 22. The introductory courses Computer Science 10 and 11 as well as Mathematics 4, 5, 6, and 11, do not count toward the major. No more than one Directed Study (193, 194) may be counted toward the major. All ten courses must be completed with a grade of C- or better.

The above are minimal requirements for the concentration. For students who desire a stronger program, the following courses are recommended: Computer Science 180, Mathematics 46, 145, 161.

The Major in Computer Science in the College of Liberal Arts is not accredited by the Computing Accreditation Commission (CAC) of the Accreditation Board for Engineering and Technology (ABET). For an ABET/CAC accredited program, see the BSCS in the School of Engineering described below.
 

Undergraduate Concentration Requirements - School of Engineering
 

Bachelor of Science in Computer Science
The mission of the Computer Science in Engineering (BSCS) program is to provide graduates with the durable knowledge necessary to become future leaders in the rapidly evolving discipline of Computer Science as well as in other computer-related fields. We aim to give each graduate a solid foundation in both Computer Science theory and programming practice, and to prepare each graduate for further advanced study in Computer Science and related fields. We aim to expose each graduate to the challenges and research problems involved in creating new kinds of computer software. We aim to give graduates the skills and commitment to lifelong learning necessary to prepare them to be effective employees or graduate students in computer-related fields.  The faculty is dedicated to accomplishing this mission through integration of teaching and research.

The Bachelor of Science in Computer Science (BSCS) offered through the School of Engineering is accredited by the Computing Accreditation Commission(CAC) of the Accreditation Board for Engineering and Technology (ABET).

Objectives of the BSCS program

  1. Graduates should be prepared to pursue a professional career in or related to computing or software.

  2. Top graduates should be prepared to succeed in graduate study in computer science.

  3. Graduates should be prepared to become technology leaders in industry and academia.

Outcomes of the BSCS program

  1. Graduates should be able to utilize theoretical computer science to analyze algorithms and predict performance.

  2. Graduates should have the ability to apply computer science and software engineering principles to solve real-world problems.

  3. Graduates should be proficient in interacting with interdisciplinary teams. 

The Bachelor of Science in Computer Science (BSCS) requires thirty-eight courses including introductory, foundation, breadth, and concentration courses. Introductory courses (11 credits) include En1 and 2; two half-credit EN courses from different departments; Math 11,12,13, and 22; and Physics 11, Chemistry 1, Physics 12 or Chemistry 2, and a fourth science elective. The science elective may be one of  Astronomy 21 or 22; Biology 1 or 13; Chemistry 2; Geology 1, 2, or 5; Physics 12, 13, or 31; or any course in any of these departments with one of these courses as a prerequisite. The foundation requirement (5 courses) includes Computer Science 11 and 15, Engineering Science 3 and 4, and a statistics course chosen from Civil Engineering 102, Mathematics 162, Biology 132, or Physics 153. The breadth requirement (10 courses) includes English 1; one course in ethics and social context chosen from Civil and Environmental Engineering 84 and Philosophy 24; five courses in Humanities, Arts, or Social Sciences, and three courses chosen either from Humanities, Arts, and Social Sciences, or from selected courses covering the broader context of engineering.  Allowable courses in Humanities, Arts, and Social Sciences are those listed as fulfilling the distribution requirement in those categories in the School of Liberal Arts. A list of selected courses appropriate for the last three credits of the breadth requirement is available from the department, and includes courses in Humanities, Arts, Social Science, Engineering Science, Engineering Management, Engineering Psychology, and introductory courses in selected School of Engineering departments. The concentration requirement (11 courses) includes Computer Science 40, 80, 160, 170, and 180; five elective courses in computer science, three of which must be numbered above 100; and a one-credit senior project approved by the department. Normally the senior project is completed by enrollment in Comp190 (Software Engineering Project).

The following sample program is one way of satisfying the above requirements; further information regarding options and procedures is available from the department. 

First Year
FALL TERM
Mathematics 11
Physics 11
English 1
Engineering 1 (half credit)
Half-credit (EN) course in engineering

SPRING TERM
Mathematics 12
Computer Science 11 (Introduction to Computer Science)
Chemistry 1 or 16
Engineering 2 (half credit)
Half-credit (EN) course in engineering

Sophomore Year
FALL TERM
Mathematics 13 (Calculus III)
Computer Science 15 (Data Structures)
Engineering Science 3 (Introduction to Electrical Engineering)
Science elective
Physics 12 or Chemistry 2
Breadth elective (humanities, social sciences, arts, or engineering)

SPRING TERM
Mathematics 22 (Discrete Mathematics)
Computer Science 80 (Programming Languages)
Engineering Science 4 (Introduction to Digital Logic Circuits)
Science elective
Breadth elective (humanities, social sciences, arts, or engineering)

Junior Year
FALL TERM
Computer Science 40 (Computer Architecture)
Computer Science 160 (Algorithms)
Civil Engineering 102 (Statistics)
Humanities, social sciences, or arts elective
Breadth elective (humanities, social sciences, arts, or engineering)

SPRING TERM
Computer Science 170 (Theory of Computation)
Computer science elective
Computer science elective
Humanities, social sciences, or arts elective
Philosophy 24 (Ethics)

Senior Year
FALL TERM
Computer Science 180 (Software Engineering)
Computer science elective
Computer science elective
Humanities, social sciences, or arts elective
Free elective

SPRING TERM
Computer Science 190 (Senior Design Project)
Computer science elective
Humanities, social sciences, or arts elective
Humanities, social sciences, or arts elective
Free elective

Undergraduate Minor Program
Minor in Computer Science

The undergraduate minor in Computer Science consists of five courses, including Computer Science 15; two courses chosen from Computer Science 40, 80, 160, and 170; one course in computer science numbered 100 or above; and either Mathematics 22 or one additional course in computer science numbered above 11.

Post baccalaureate Program in Computer Science
The post baccalaureate program in computer science offers the student with a bachelor's degree, but few computer science courses, the opportunity to earn the equivalent of an undergraduate minor in computer science by completing the requirements for the minor. It is designed to give the student with a non-technical, liberal arts degree the introductory knowledge base to enter the technology field or continue on for graduate study in computer science. For more information, contact the Office of Graduate and Professional Studies at 617-627-3395 or visit http://ase.tufts.edu/gradstudy.

Certificate Programs Certificate in Computer Science
The four-course, graduate-level certificate program in computer science is for the student with a bachelor's degree in computer science or a closely related field with approved work experience. The program is designed for those who wish to update their skills and broaden their knowledge to meet the challenges of and opportunities available in today's rapid-pace technology field. For more information, contact the Office of Graduate and Professional Studies at 617-627-3395 or visit http://ase.tufts.edu/gradstudy.

Certificate in Human-Computer Interaction
In an interdisciplinary collaboration between the Department of Psychology, the Department of Computer Science, and the Boston School of Occupational Therapy at Tufts, this four-course, graduate-level certificate is designed to train the next generation of computer professionals for tomorrow's complex challenges. The program is open to individuals with a bachelor's degree, and is designed to be pursued on a part-time basis by computer programmers, Web designers, human factors professionals, software engineers, and user-interface designers who wish to develop or enhance their user-interface design and implementation skills. For more information, see Human-Computer Interaction, or contact the Office of Graduate and Professional Studies at 617-627-3395. or visit http://ase.tufts.edu/gradstudy.

Graduate Programs

Master of Science
The Master of Science degree requires ten courses at the 100 level or above. At least eight credits must be from approved courses. At least four of the courses must be in computer science, and at least two of the courses must include a serious programming component. To use courses offered outside the Department of Computer Science, the student must obtain the approval of the department. Students must also demonstrate competency in the material covered in Mathematics 22 and Computer Science 40, 80, 160, and 170. The last two courses, 160 and 170, can be taken as part of the master's degree program. The project requirement includes a written report which must be approved by a member of the faculty. Substantial projects, typically involving research, can count as one credit through the courses Computer Science 293 and 294. The project requirement can also be satisfied by a written master's thesis, defended orally, counted as equivalent to two courses, through the courses Computer Science 295 and 296.

Doctor of Philosophy
Students must have a master's degree in computer science or a related field to be admitted to the Ph.D. program. Applicants to the Ph.D. program who do not have a master's degree will instead be considered for admission to the M.S. program, and on completion of that program will automatically be considered for admission to the Ph.D. program. Doctoral study consists or preliminary coursework and study, qualifying exams, and creative research culminating in a written dissertation. Areas available for dissertations in computer science include artificial intelligence/machine learning, CAD and VLSI design, compilers, computational biology, computational geometry, computer graphics and modeling, computer security, human-computer interaction and multimedia studies, network administration, parallel computing-architectures and algorithms, software engineering, theory of computation, algorithm design and analysis, and visualization. Detailed requirements and procedures for the Ph.D. program are outlined on the department Web pages at http://www.cs.tufts.edu.

For more detailed information, please visit the website http://www.cs.tufts.edu.

To view Course Descriptions, please go to:  http://webcenter.studentservices.tufts.edu/courses/main.asp.