Boston UniversityWebsiteAcademic Catalog
Department of Computer ScienceDepartment Website
Majors
Courses
source 1CS 111: Introduction to Computer Science 1 (4) intro
The first course for computer science majors and anyone seeking a rigorous introduction. Develops computational problem-solving skills by programming in the Python language, and exposes students to variety of other topics from computer science and its applications. Carries MCS divisional credit in CAS.
CS 112: Introduction to Computer Science 2 (4) intro
Covers advanced programming techniques and data structures. Topics include recursion, algorithm analysis, linked lists, stacks, queues, trees, graphs, tables, searching, and sorting. Carries MCS divisional credit in CAS.
CS 115: Academic Writing in Computer Science (2) communication
Pre-req: WR 120 or equivalent, CS 111. This 2-credit course offers a Writing Intensive unit through the topic of computer science. Students engage with readings and discussions in current computer science issues. The course focuses on teaching critical reading, creating a strong argument, and engaging with a variety of sources.
CS 131: Combinatoric Structures (4) math
Representation, analysis, techniques, and principles for manipulation of basic combinatoric structures used in computer science. Rigorous reasoning is emphasized.
CS 132: Geometric Algorithms (4) algs
Basic concepts, data structures, and algorithms for geometric objects. Examples of topics: Cartesian geometry, transformations and their representation, queries and sampling, triangulations. Emphasis on rigorous reasoning and analysis, advancing algorithmic maturity and expertise in its application.
CS 210: Computer Systems (4) sys
Fundamental concepts of computer systems and systems programming. Hardware fundamentals including digital logic, memory systems, processor design, buses, I/O subsystems, data representations, computer arithmetic, and instruction-set architecture. Software concepts including assembly language programming, operating systems, assemblers, linkers, and systems programming in C.
CS 235: Algebraic Algorithms (4) math
Basic concepts and algorithms for manipulation of algebraic objects, such as residues, matrices, polynomials; and applications to various CS areas, such as cryptography and fault-tolerance. Emphasis on rigorous reasoning and analysis.
CS 237: Probability in Computing (4) math
Introduction to basic probabilistic concepts and methods used in computer science. Develops an understanding of the crucial role played by randomness in computing, both as a powerful tool and as a challenge to confront and analyze. Emphasis on rigorous reasoning, analysis, and algorithmic thinking.
CS 320: Concepts of Programming Languages (4) pls
Concepts involved in the design of programming languages. Bindings, argument transmission, and control structures. Environments: compile-time, load-time, and run-time. Interpreters.
CS 330: Introduction to Analysis of Algorithms (4) algs
Examines the basic principles of algorithm design and analysis; graph algorithms; greedy algorithms; dynamic programming; network flows; polynomial-time reductions; NP-hard and NP-complete problems; approximation algorithms; randomized algorithms.
CS 332: Elements of the Theory of Computation (4) theory
The basic concepts of the theory of computation are studied. Topics include models of computation, polynomial time, Church's thesis; universal algorithms, undecidability and intractability; time and space complexity, nondeterminism, probabilistic computation and reductions of computational problems.
CS 350: Fundamentals of Computing Systems (4) sys
Programming-centric introduction to computer systems. The course discusses system design principles, performance analysis, communication and synchronization primitives, concurrency control, database transactions, data consistency, task and data parallelism, replication, fault tolerance, and distributed consensus. Part of the discussion includes case studies of real systems from industry. All programming assignments will be in Go.
CS 357: Introduction to Information Security (4) sys
Provides basic concepts needed for understanding information security. Discusses vulnerabilities, design principles, basic algorithms, security definitions, and analytical methods. Covers system security, network security, web security, cryptography, and data privacy. Also addresses social, ethical, and policy aspects of security.
CS 365: Foundations of Data Science (4) ai
Lays the foundation towards more advanced data-intensive classes, such as Data Science, Machine Learning, Data Mining. The course provides an understanding of the fundamentals and the practical implications of concepts. It covers both theoretical skills as well as working/practical knowledge.
CS 400: Topics in Computer Science (4) special
Topics vary.
CS 401: Senior Independent Work (1) capstone
CS 402: Senior Independent Work (1) capstone
CS 410: Advanced Software Systems (4) sys
Systems programming including such topics as project management, tools, I/O networking, multiprocessing, exception handling, and system services. Other topics are explored using C and Perl under the UNIX operating system. Requires a working knowledge of the C programming language and experience with UNIX as a user, or equivalent.
CS 411: Software Engineering (4) softeng
Introduction to the construction of reliable software. Topics may include software tools, software testing methodologies, retrofitting, regression testing, structured design and structured programming, software characteristics and quality, complexity, entropy, deadlock, fault tolerance, formal proofs of program correctness, chief program teams, and structured walk-throughs.
CS 412: Full-Stack Application Design and Development (4) sys
Introduction to design and development of full-stack web applications. Topics include asynchronous programming; non-relational data stores; use of APIs; serverless (cloudbased) applications; decoupled client/server architectures; performance; testing; packaging; and deployment. Examines current and proposed technology stacks.
CS 440: Introduction to Artificial Intelligence (4) ai
Introduction to computer systems that exhibit intelligent behavior, in particular, perceptual and robotic systems. Topics include human computer interfaces, computer vision, robotics, game playing, pattern recognition, knowledge representation, planning.
CS 451: Distributed Systems (4) sys
Programming-centric introduction to how networks of computers are structured to operate as coherent single systems. Introducing principles of architecture, processes, communications, naming, synchronization, consistency and replication, fault tolerance and security, and paradigms such as web-based, object-based, file system, and consistency-based.
CS 454: Embedded Systems Development (4) sys
Lab-based course exploring concepts, techniques, best practices, and tools for the development of connected embedded systems, including: signal processing; sensing, control and actuation; programming and debugging on microprocessors; I/O interfacing and development of device drivers; and time-critical data handling.
CS 455: Computer Networks (4) sys
Concepts underlying the design of high-performance computer networks and scalable protocols. Topics include Internet design principles and methodology, TCP/IP implementation, packet switching and routing algorithms, multicast, quality of service considerations, error detection and correction, and performance evaluation.
CS 460: Introduction to Database Systems (4) sys
Introduction to database management systems. Examines entity-relationship, relational, and object-oriented data models; commercial query languages: SQL, relational algebra, relational calculus, and QBE; file organization, indexing and hashing, query optimization, transaction processing, concurrency control and recovery, integrity, and security.
CS 480: Introduction to Computer Graphics (4) graphics
Introduction to computer graphics algorithms, programming methods, and applications. Focus on fundamentals of two- and three-dimensional raster graphics: scan-conversion, clipping, geometric transformations, and camera modeling. Introduces concepts in computational geometry, computer-human interfaces, animation, and visual realism.
CS 491: Directed Study (4) special
Independent study in Computer Science under the guidance of a faculty member. Student and supervising faculty member arrange and document expectations and requirements. Examples include internship opportunities for academic credit, in-depth study of a special topic, or independent research project.
CS 492: Directed Study (4) special
Independent study in Computer Science under the guidance of a faculty member. Student and supervising faculty member arrange and document expectations and requirements. Examples include internship opportunities for academic credit, in-depth study of a special topic, or independent research project.
CS 501: Computer Science Practicum (4) special
Various applications of computer science that vary semester to semester. Please contact the CAS Computer Science Department for detailed descriptions.
CS 505: Introduction to Natural Language Processing (4) ai
Natural language processing (NLP) is a field of AI which aims to equip computers with the ability to intelligently process natural (human) language. This course explores statistical and machine learning techniques for the automatic analysis of natural language data.
CS 506: Data Science Tools and Applications (4) ai
Covers practical skills in working with data and introduces a wide range of techniques that are commonly used in the analysis of data, such as clustering, classification, regression, and network analysis. Emphasizes hands-on application of methods via programming.
CS 511: Formal Methods 1 (4) softeng
Introduction to formal specification, analysis, and verification of computer system behavior. Topics include formal logical reasoning about computer programs and systems, automated and semi-automated verification, and algorithmic methodologies for ascertaining that a software system satisfies its formally specified properties.
CS 516: Software Foundations via Formal Languages (4) pls
Study of the hierarchy of formal languages with a focus on algorithms on the formalisms. Experimentation with these algorithms using a computer toolset. Applications of these algorithms to compiler construction, implementation of finite-state control devices, and formal methods.
CS 519: Spark! Software Engineering X-Lab Practicum (4) softeng
Consent provided upon successful completion of pass/fail diagnostic test that assesses student readiness to take the course. This course offers students in computing disciplines the opportunity to apply their programming and system development skills by working on real-world projects provided from partnering organizations within and outside of BU, which are curated by Spark! The course offers a range of project options where students can improve their technical skills, while also gaining the soft skills necessary to deliver projects aligned to the partner's goals. These include teamwork and communications skills and software development processes.
CS 523: Deep Learning (4) ai
Mathematical and machine learning background for deep learning. Feed-forward networks., Backpropagation. Training strategies for deep networks. Architectures such as convolutional, recurrent, transformer networks. Deep reinforcement learning. Deep unsupervised learning. Exposure to modern programming tools and libraries. Other recent topics, time permitting.
CS 525: Compiler Design Theory (4) pls
Covers the basic mathematical theory underlying the design of compilers and other language processors and shows how to use that theory in practical design situations. Topics may include lexical analysis, parsing, syntax-directed translation, code optimization, and code generation.
CS 528: Cloud Computing (4) sys
Fundamentals of cloud computing covering IaaS platforms, OpenStack, key Big Data platforms, and data center scale systems. Examines influential publications in cloud computing. Culminates in a group project supervised by a mentor from industry or academia.
CS 530: Advanced Algorithms (4) algs
Studies the design and efficiency of algorithms in several areas of computer science. Topics are chosen from graph algorithms, sorting and searching, NP-complete problems, pattern matching, parallel algorithms, and dynamic programming.
CS 531: Advanced Optimization Algorithms (4) math
Optimization algorithms, highlighting the fruitful interactions between discrete and continuous. Intended audience is advanced master students and doctoral students. Topics include gradient descent algorithms, online optimization, linear and semidefinite programming, duality, network optimization, submodular optimization, approximation algorithms via continuous relaxations.
CS 535: Complexity Theory (4) theory
Covers topics of current interest in the theory of computation chosen from computational models, games and hierarchies of problems, abstract complexity theory, informational complexity theory, time-space trade-offs, probabilistic computation, and recent work on particular combinatorial problems.
CS 536: Quantum Computing (4) theory
Quantum physics as a powerful computational paradigm. Quantum bits (qubits), qubit operations and quantum gates, computation, and algorithms. Computational complexity classes, and efficiency of classical vs. quantum computers. Quantum Fourier transform and Shor's factorization algorithm. Physical implementation of quantum computation.
CS 537: Randomness in Computing (4) theory
Survey of probabilistic ideas of the theory of computation. Topics may include Monte Carlo and Las Vegas probabilistic computations; average case complexity and analysis; random and pseudorandom strings; games and cryptographic protocol; information; inductive inference; reliability;others. (Offered alternate years.)
CS 538: Fundamentals of Cryptography (4) theory
Basic Algorithms to guarantee confidentiality and authenticity of data. Definitions and proofs of security for practical constructions. Topics include perfectly secure encryption, pseudorandom generators, RSA and Elgamal encryption, Diffie-Hellman key agreement, RSA signatures, secret sharing, block and stream ciphers.
CS 541: Applied Machine Learning (4) ai
Covers practical skills in machine learning including techniques for clustering, classification, regression, feature selection, and model compression. Emphasizes hands-on application of methods via programming on real-world datasets.
CS 542: Principles of Machine Learning (4) ai
Introduction to modern machine learning concepts, techniques, and algorithms. Topics include regression, kernels, support vector machines, feature selection, boosting, clustering, hidden Markov models, and Bayesian networks. Programming assignments emphasize taking theory into practice, through applications on real-world data sets.
CS 543: Algorithmic Techniques for Taming Big Data (4) algs
Growing amounts of available data lead to significant challenges in processing them efficiently. In many cases, it is no longer possible to design feasible algorithms that can freely access the entire data set. Instead of that we often have to resort to techniques that allow for reducing the amount of data such as sampling, sketching, dimensionality reduction, and core sets. Also explores scenarios in which large data sets are distributed across several machines or even geographical locations and the goal is to design efficient communication protocols or MapReduce algorithms. Includes a final project and programming assignments in which we explore the performance of our techniques when applied to publicly available data sets.
CS 548: Advanced Cryptography (4) theory
Continuation of CS 538. Advanced techniques to preserve confidentiality and authenticity against active attacks, zero-knowledge proofs; Fiat-Shamir signature schemes; non-malleable public-key encryption; authenticated symmetric encryption; secure multiparty protocols for tasks ranging from Byzantine agreement to mental poker to threshold cryptography.
CS 549: Spark! Machine Learning X-Lab Practicum (4) ai
The Spark! Practicum offers students in computing disciplines the opportunity to apply their knowledge in algorithms, inferential analytics, and software development by working on real-world projects provided from partnering organizations within BU and from outside. The course offers a range of project options where students can improve their technical skills, while also gaining the soft skills necessary to deliver projects aligned to the partner's goals. These include teamwork and communications skills and software development processes. All students participating in the course are expected to complete a project focused on an application of inferential analytics or machine learning, including a final presentation to the partner organization.
CS 551: Streaming and Event-driven Systems (4) sys
Fundamentals of stream processing and event-driven systems. Topics include Pub/Sub systems; Distributed streaming systems; Dataflow programming; Fault-tolerance and processing guarantees; State management; Windowing semantics; Complex event processing; Microservice architectures; Serverless functions; Examines current and emerging architectures and use-cases.
CS 558: Computer Networks Security (4) sys
This course covers securing core internet infrastructure protocols and constructing secure, private, and censorship-free communications on the modern internet. Topics include BGP, ARP, DNS, TLS, censorship-resistant systems like Tor, end-to-end secure messaging, metadata protection, and trusted execution environments.
CS 561: Data Systems Architectures (4) sys
Discusses the design of data systems that can address the modern challenges of managing and accessing large, ever-growing, diverse sets of data, often streaming from heterogenous sources, in the context of continuously evolving hardware and software. We use examples from several data management areas including relational systems, distributed database systems, key value stores, newSQL and NoSQL systems, data systems for machine learning (and machine learning for data systems), interactive analytics, and data management as a service.
CS 565: Algorithmic Data Mining (4) ai
Introduction to data mining concepts and techniques. Topics include association and correlation discovery, classification and clustering of large datasets, outlier detection. Emphasis on the algorithmic aspects as well as the application of mining in real-world problems.
CS 581: Computational Fabrication (4) graphics
Introduces 3D printing technology and computational methods for creating physical prototypes from geometric models. Student-led paper presentations cover research from prominent Computer Graphics and Human Computer Interaction conferences. Culminates in a design project involving a computational component and physical prototyping.
CS 582: Geometry Processing (4) algs
Algorithms and data structures for digital processing of triangle meshes and point clouds. Topics include: surface smoothing, parametrization, and deformation; half-edge data structures; discretized curvature measures; and spectral analysis of surfaces. Numerical methods for linear algebra and optimization also discussed.
CS 583: Audio Computation (4) math
Introduction to algorithms, data structures, and applications in computer manipulation of audio signals. Topics include the physical properties of sound and of musical instruments, representation and synthesis of musical and environmental sounds, analysis of audio signals using the Fourier Transform, and topics of current interest in research, including the use of deep learning for analysis of audio signals.
MA 123: Calculus I (4) math
Limits; derivatives; differentiation of algebraic and transcendental functions. Applications to maxima, minima, and convexity of functions. The definite integral; the fundamental theorem of integral calculus. Carries MCS divisional credit in CAS.
MA 124: Calculus II (4) math
Logarithmic, exponential, and trigonometric functions. Sequences and series; Taylor's series with the remainder. Methods of integration. Calculus I and II together constitute an introduction to calculus of a function of a single real variable. Carries MCS divisional credit in CAS.
MA 213: Basic Statistics and Probability (4) math
Elementary treatment of probability densities, means, variances, correlation, independence, the central limit theorem, confidence intervals, and p-values. Students will be able to answer questions such as how can a pollster use a sample to predict the uncertainty of an election? Carries MCS divisional credit in CAS.
MA 214: Applied Statistics (4) math
Inference about proportions, goodness of fit, student's t-distribution, tests for normality; two-sample comparisons, regression and correlation, tests for linearity and outliers, residual analysis, contingency tables, analysis of variance. Carries MCS divisional credit in CAS.
MA 225: Multivariate Calculus (4) math
Vectors, lines, planes. Multiple integration, cylindrical and spherical coordinates. Partial derivatives, directional derivatives, scalar and vector fields, the gradient, potentials, approximation, multivariate minimization, Stokes's and related theorems. (Cannot be taken for credit in addition to MA 230.)
MA 242: Linear Algebra (4) math
Matrix algebra, solution of linear systems, determinants, Gaussian elimination, fundamental theory, row-echelon form. Vector spaces, bases, norms. Computer methods. Eigenvalues and eigenvectors, canonical decomposition. Applications.
MA 293: Discrete Mathematics (4) math
Propositional logic, set theory. Elementary probability theory. Number theory. Combinatorics with applications.
MA 294: Applied Abstract Algebra (4) math
Abstract algebra and its applications to combinatorics. A first exposure to groups, rings, and fields via significant combinatorial applications.
MA 531: Mathematical Logic (4) math
The investigation of logical reasoning with mathematical methods. The syntax and semantics of sentential logic and quantificational logic. The unifying Godel Completeness Theorem, and models of theories. A look at the Godel Incompleteness Theorem and its ramifications.
MA 532: Foundations of Mathematics (4) math
Axiomatic set theory as a foundation for mathematics and as a field of mathematics: Axiom of Choice, the Continuum Hypothesis, and consistency results. Also offered as CAS PH 461.
MA 541: Modern Algebra I (4) math
Basic properties of groups, Sylow theorems, basic properties of rings and ideals, Euclidean rings, polynomial rings.
MA 542: Modern Algebra II (4) math
Vector spaces and modules, Galois theory, linear transformations and matrices, canonical forms, bilinear and quadratic forms.
MA 555: Numerical Analysis I (4) math
Numerical solutions of equations, iterative methods, analysis of sequences. Theory of interpolation and functional approximation, divided differences. Numerical differentiation and integration. Polynomial theory. Ordinary differential equations.
MA 556: Numerical Analysis II (4) math
Numerical linear algebra; norms, elimination methods, error analysis, conditioning, eigenvalues, iterative methods, least squares and nonlinear functional minimization. Partial differentiation equation boundary value and initial value problems. Finite element methods. Legendre and Chebyshev polynomials. Treatment in greater depth of selected topics from MA 555.
MA 569: Optimization Methods of Operations Research (4) math
Optimization of linear functions: linear programming, simplex method; transportation, assignment, and network problems. Optimization of non-linear functions: unconstrained optima, constrained optima and Lagrange multipliers, Kuhn-Tucker conditions, calculus of variations, and Euler's equation.
MA 570: Stochastic Methods of Operations Research (4) math
Poisson processes, Markov chains, queuing theory. Matrix differential equations, differential-difference equations, probability-generating functions, single- and multiple-channel queues, steady-state and transient distributions.
MA 575: Linear Models (0) math
Post-introductory course on linear models. Topics to be covered include simple and multiple linear regression, regression with polynomials or factors, analysis of variance, weighted and generalized least squares, transformations, regression diagnostics, variable selection, and extensions of linear models.
MA 581: Probability (4) math
Basic probability, conditional probability, independence. Discrete and continuous random variables, mean and variance, functions of random variables, moment generating function. Jointly distributed random variables, conditional distributions, independent random variables. Methods of transformations, law of large numbers, central limit theorem. Cannot be taken for credit in addition to MA 381.
MA 582: Mathematical Statistics (4) math
Point estimation including unbiasedness, efficiency, consistency, sufficiency, minimum variance unbiased estimator, Rao-Blackwell theorem, and Rao-Cramer inequality. Maximum likelihood and method of moment estimations; interval estimation; tests of hypothesis, uniformly most powerful tests, uniformly most powerful unbiased tests, likelihood ratio test, and chi-square test.
MA 583: Introduction to Stochastic Processes (4) math
Basic concepts and techniques of stochastic process as they are most often used to construct models for a variety of problems of practical interest. Topics include Markov chains, Poisson process, birth and death processes, queuing theory, renewal processes, and reliability.
MA 589: Computational Statistics (4) math
Topics from computational statistics that are relevant to modern statistical applications: random number generation, sampling, Monte Carlo methods, computational inference, MCMC methods, graphical models, data partitioning, and bootstrapping. Emphasis on developing solid conceptual understanding of the methods through applications.
PY 211: General Physics I (4) sci
Calculus-based introduction to basic principles of physics, emphasizing Newtonian mechanics, conservation laws, and thermodynamics. For science majors and engineers, and for premedical students who seek a more analytical course than PY 105/106. Interactive, student-centered lectures, discussion, and laboratory. Carries natural science divisional credit in CAS.
PY 212: General Physics 2 (4) sci
Calculus-based introduction to basic principles of physics, emphasizing electromagnetism, circuits, and optics. For science majors and engineers, and for premedical students who seek a more analytical course than PY 105/106. Interactive, student-centered lectures, discussion, and laboratory. Carries natural science divisional credit in CAS.
PY 251: Principles of Physics 1 (4) sci
Introduction to mechanics, conservation laws, rotation, waves, and thermodynamics. Primarily for physics, mathematics, and astronomy majors, but open to other students with a strong background in mathematics. Carries natural science divisional credit (with lab) in CAS.
PY 252: Principles of Physics 2 (4) sci
Introduction to electric and magnetic fields, circuits, electromagnetic waves, and optics. Primarily for physics, mathematics, and astronomy majors, but open to other students with a strong background in mathematics. Carries natural science divisional credit (with lab) in CAS.
PY 313: Waves and Modern Physics (4) sci
Waves and physical optics, relativistic mechanics, experimental foundations of quantum mechanics, atomic structure, physics of molecules and solids, atomic nuclei and elementary particles. Along with PY 211, 212, PY 313 completes a three-semester introductory sequence primarily intended for students of engineering.
PY 351: Modern Physics 1 (4) sci
This course traces the historical and intellectual developments that led to the formulation of modern physics. It introduces students to special relativity, quantum mechanics, classical and quantum statistics, emphasizing scientific inquiry and critical thinking. Labs are a required course component.
PY 355: Methods of Theoretical Physics (4) sci
Survey of mathematical and computational methods used in modern theoretical physics. Vectors, fields, differential and integral vector calculus. Matrices, matrix transformations, rotations, eigenvalues and eigenvectors. Function spaces, orthonormal functions, Fourier analysis, bras and kets. Basics of ordinary and partial differential equations with solutions by series and numerical methods. Complex variables and analytic functions. Scientific programming in python, computational visualization and numerical methods complementing each of the analytic topics.
PY 371: Electronics for Scientists (4) sci
A survey of practical electronics for all College of Arts and Sciences science students wishing to gain a working knowledge of electronic instrumentation, and in particular, its construction. Two four-hour laboratory-lecture sessions per week.
PY 410: Statistical Thermodynamics (4) sci
The laws of thermodynamics, statistical and information basis of thermodynamics, ensemble theory, equilibrium statistical mechanics and its application to physical systems of interest, irreversibility.
PY 421: Introduction to Computational Physics (4) sci
Undergraduate-level introduction to computer programming and methods used to formulate and solve physics problems on the computer. Also touches on more advanced topics such as parallel computing and graphical visualization.
LX 496: Computational Linguistics (1)
Introduction to computational techniques to explore linguistic models and test empirical claims. Serves as an introduction to concepts, algorithms, data structures, and tool libraries. Topics include tagging and classification, parsing models, meaning representation, corpus creation, information extraction.