Tufts UniversityWebsiteAcademic Catalog
BS Degree in Computer Science (Eng)source 1ABET
CS Courses
- Introduction to Computer ScienceCS 11 (4)introCS 11: Introduction to Computer Science
The study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language -- namely C++-- and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. (Additional 2 hr weekly lab time scheduled at first class meeting.)
- Machine Structure & Assembly-Language ProgrammingCS 40 (4)sysCS 40: Machine Structure & Assembly-Language Programming
In CS 40, you will learn about both high-level programming design principles and the low-level structure of computing machines. Design strategies will focus on modularity, abstraction, and separation of interface from implementation. The following topics on machine structure are covered: memory, caches, registers, machine arithmetic, and bitwise operations. We will also investigate the structure of assembly code, relocatable object code, binary machine code, and the translations between them. You will gain a deep understanding of all of these concepts via large-scale, realistic programming projects.
- ororBridge to Higher MathematicsMATH 65 (4)mathMATH 65: Bridge to Higher Mathematics
Introduction to rigorous reasoning, applicable across all areas of mathematics, to prepare for proof-based courses at the 100 level. Writing proofs with precise reasoning and clear exposition. Topics may include induction, functions and relations, combinatorics, modular arithmetic, graph theory, and convergence of sequences and series of real numbers.
- Senior Capstone Project ICS 97 (4)capstoneCS 97: Senior Capstone Project I
Requirements analysis and design of a senior capstone project. Requirements analysis and elicitation methods, and prototyping. Design principles and methods, including designing for usability, security, testability, performance, and scaling. Project management and planning, including cost and effort estimation. Writing effective documentation.
- Senior Capstone Project IICS 98 (4)capstoneCS 98: Senior Capstone Project II
Implementation and testing of the project designed in CS 97. Implementation tools, strategies, and platforms. Testing and debugging methodologies. Maintenance and release management. Legal, ethical, and social impacts of computing.
- Programming LanguagesCS 105 (4)plsCS 105: Programming Languages
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.
- Computation TheoryCS 170 (4)theoryCS 170: Computation Theory
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.
- 2 × CS Elective
- 3 × CS Elective 100+
Math/Stat Courses
- Calculus IMATH 32 (4)mathMATH 32: Calculus I
Differential and integral calculus: limits and continuity, the derivative and techniques of differentiation, extremal problems, related rates, the definite integral, Fundamental Theorem of Calculus, derivatives and integrals of trigonometric functions, logarithmic and exponential functions.
- orHonors Calculus I-IIMATH 39 (8)mathMATH 39: Honors Calculus I-II
Intended for students who have had at least the AB syllabus of advanced placement mathematics in secondary school. Stresses the theoretical aspects of the subject, including proofs of basic results. Topics include: convergence of sequences and series; continuous functions, Intermediate Value and Extreme Value Theorems; definition of the derivative, formal differentiation, finding extrema, curve-sketching, Mean Value Theorems; basic theory of the Riemann integral, Fundamental Theorem of Calculus and formal integration, improper integrals; Taylor series, power series and analytic functions.
- Calculus IIIorMATH 42 (4)mathMATH 42: Calculus III
Vectors in two and three dimensions, applications of the derivative of vector-valued functions of a single variable. Functions of several variables, continuity, partial derivatives, the gradient, directional derivatives. Multiple integrals and their applications. Line integrals, Green's theorem, divergence theorem, Stokes’ theorem.
- Linear AlgebraMATH 70 (4)mathMATH 70: Linear Algebra
Introduction to the theory of vector spaces and linear transformations over the real or complex numbers, including linear independence, dimension, matrix multiplication, similarity and change of basis, inner products, eigenvalues and eigenvectors, and some applications.
- orProbabilistic Systems AnalysisorEE 24 (3)engrEE 24: Probabilistic Systems Analysis
Development of analytical tools for the modeling and analysis of random phenomena with application to problems across a range of engineering and applied science disciplines. Probability theory, sample and event spaces, discrete and continuous random variables, conditional probability, expectations and conditional expectations, and derived distributions. Sums of random variables, moment generating functions, central limit theorem, laws of large numbers. Statistical analysis methods including hypothesis testing, confidence intervals and nonparametric methods.
Probabilistic Systems AnalysisorEE 104 (3)engrEE 104: Probabilistic Systems AnalysisAdvanced analysis in probabilistic systems with strong emphasis on theoretical methods. Development of analytical tools for the modeling and analysis of random phenomena with application to problems across a range of engineering and applied science disciplines. Probability theory, sample and event spaces, discrete and continuous random variables, conditional probability, expectations and conditional expectations, and derived distributions. Sums of random variables, moment generating functions, central limit theorem, laws of large numbers. Statistical analysis methods including hypothesis testing, confidence intervals and nonparametric methods.
BiostatisticsorBIO 132 (4)sciBIO 132: BiostatisticsAn examination of statistical methods for designing, analyzing, and interpreting biological experiments and observations. Topics include probability, parameter estimation, inference, correlation, regression, analysis of variance, and nonparametric methods. (Group Q.)
Statistical MechanicsororPHY 153 (4)sciPHY 153: Statistical MechanicsPrinciples and applications of classical and quantum statistical mechanics; microcanonical, canonical, and grand canonical ensembles; Maxwell-Boltzmann, Bose-Einstein, and Fermi-Dirac distributions; statistical basis of thermodynamics; and applications.
- natural science or mathematics electivesci
Science Courses
- pick 2
Cells And OrganismsBIO 13 (4)sciBIO 13: Cells And OrganismsAn introductory course primarily for prospective biology majors. General biological principles and widely used methods related to current advances in cell and molecular biology, genetics, immunology, plant and biomedical sciences. A&S students, BSCHE, BSEvE, and BSE-EH majors enrolling in BIO 13 must concurrently enroll in BIO 15, Cells and Organisms Lab. SOE students who are planning a second major in Biology or to apply for medical school should concurrently enroll in BIO 15. Credit cannot be received for both BIO 13 and BME 33.
General Chemistry I with LabCHEM 1 (3)sciCHEM 1: General Chemistry I with LabAtomic and molecular structure, chemical nomenclature, intermolecular forces and states of matter, the relation of structure and bonding to PHYical and chemical properties of matter, patterns of chemical reactions, stoichiometry, thermochemistry, and properties of solutions.
Chemistry of MaterialsCHEM 16 (3)sciCHEM 16: Chemistry of MaterialsAn introductory course investigating the fundamentals and principles of chemistry through exploration of modern materials, e.g., thin films, superconductors, ultrasmall structures, modern electronics and photonics. Topics include atomic and molecular structure, intermolecular forces, ionic and covalent bonding.
Other Courses
Two to five years after graduation, graduates of the BSCS program will have:
- Success and advancement in professional careers in or related to computing or software.
- Admission to and advancement in graduate study in computer science.
Outcomes of the BSCS Program include:
- Ability to use computer science theory to analyze algorithms and to reason about properties of programs, including structure, behavior, and performance.
- Ability to solve problems by using principled methods to create, extend, and improve software.
- Practice applying knowledge and skills to open-ended problems with more than one good answer.
- Practice working in teams.
Additionally, the BSCS degree aims to empower our students with the ability to:
- Analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.