Bachelor of Science in Computer Science (School of Engineering)

Three students code on laptops in a classroom.

Computer science that delivers the problem solving skills to meet a fast-paced world.

Tufts Department of Computer Science gives you the theory to think deeply, the engineering skills to build confidently, and the research community to tackle problems that matter — starting from day one, wherever your experience level begins.

Program Highlights:

  • Faculty-led research from Year One
  • Three entry points into the major
  • Two-semester senior capstone
  • Interdisciplinary depth across Tufts
A student works at a laptop in the classroom.

Program Overview

The BSCS requires 120 semester hours. Beyond your 14 CS courses, the School of Engineering asks for a broad foundation in math, science, humanities, and engineering fundamentals. Here's the big picture:
 

AreaWhat's RequiredCourses
MathematicsCalculus sequence (Math 32, 34, 42), Linear Algebra (Math 70), and a probability or statistics course  5
Natural ScienceTwo Engineering-appropriate sciences, plus one science/math elective, covering at least two of the following three departments: Physics, Chemistry, or Biology.  3
Engineering CoreEN 1, EN 3 (starting for class of 2030), and CS 10 or equivalent.  4
Humanities, Arts & Social SciencesEnglish 1 or 3, EM 52, one Humanities course, one Social Sciences course, one Ethics course (Phil 24, EM 54, or Phil 57), plus additional Humanities, Arts, and Social Sciences courses (24 SHU total).~8


View B.S. in Computer Science Degree Sheets

 

Computer Science Curriculum

15 courses take you from foundational programming through algorithms, theory, and systems — culminating in a two-semester capstone where you build something real. Here's how the pieces fit together.

A professor with a laptop instructs three students.

15 CS courses required

A student codes at a computer with a robot in the background.

7+ electives you choose

A professor teaches students at the dry erase board.

2 semesters of capstone

Introductory Sequence

Three ways in — depending on your experience, you start at a different point:

An information graphic explaining the three entry points for CS majors. Those new to coding start with CS10 Programming Fundamentals, advancing to CS11 Intro to Computer Science, and then CS15 Data Structures. Those with some experience take a placement exam before advancing to CS11 and CS15. Those with a strong background take a placement exam and then advance to CS15.

CS 10 covers the fundamentals that CS 11 moves through quickly. Students with prior programming experience can skip it by passing a placement exam offered each summer and during the academic year. Students with strong C++ backgrounds (including pointers and classes) may begin directly with CS 15 with instructor consent. Engineering students can also use ES 2 to satisfy the CS 11 prerequisite.

Core Courses

After the introductory sequence, every BSCS student takes these required courses:

  • Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs.

  • Structure of machine-level data and code, including memory, cache, registers, machine arithmetic, and bitwise operations. Encapsulating machine functionality through interfaces and abstract data types. Structure of assembly code, relocatable object code, and binary machine code, and the translations between them. Applications of machine-level operations and code translations in programming projects.

  • Principles and application of computer programming languages. Emphasizes ideas and techniques most relevant to practitioners, but includes foundations crucial for intellectual rigor: abstract syntax, lambda calculus, type systems, dynamic semantics. Case studies, reinforced by programming exercises. Grounding sufficient to read professional literature.

  • Introduction to the study of algorithms. Strategies such as divide-and-conquer, greedy methods, and dynamic programming. Graph algorithms, sorting, searching, integer arithmetic, hashing, and NP-complete problems.

  • Models of computation: Turing machines, pushdown automata, and finite automata. Grammars and formal languages, including context-free languages and regular sets. Important problems, including the halting problem and language equivalence theorems.

Choose 7+ CS Electives

At least two must be numbered above 100. At least 2 credit hours must cover the social context of computing. At least 2 courses must cover computer systems. One CS elective can optionally be fulfilled with an approved upper-level Math course. Specific elective course options can be found on the degree sheet.

This is where you specialize: AI, security, graphics, systems, HCI — explore what excites you.

Browse Courses

Two students discuss their work in the lobby of Joyce Cummings Center.

Senior Capstone Project — CS 97 + CS 98

A two-semester, team-based project where you design and build a substantial piece of software. This is where everything comes together. 

*Under select circumstances, and with approval from faculty and/or the Capstone coordinator, the Senior Capstone requirement can be completed with a large-scale, team-based project outside of CS 97 and CS 98.

Senior Capstone Project — CS 97 + CS 98

A two-semester, team-based project where you design and build a substantial piece of software. This is where everything comes together. 

*Under select circumstances, and with approval from faculty and/or the Capstone coordinator, the Senior Capstone requirement can be completed with a large-scale, team-based project outside of CS 97 and CS 98.

    • Visit the Policies and Documentation webpage for official program requirements.
    • Any course (or category of courses) marked with a * on the degree sheet must be taken for letter grade.
    • Any course marked with a ** on the degree sheet must be completed with a C− or better.
    • At most 3 SHU of independent study/research or 4 SHU of senior thesis may count as a CS elective.
    • Internship credit (CS 99) cannot be used as a CS elective.

Ready to dig deeper?

Explore current course offerings, download your degree sheet, or get in touch with the department.

Program Coordinator: Associate Teaching Professor Dave Lillethun