Computer Science
View courses in
- Computer Science
- All Departments
- African American Studies
- African Studies: Culture (in English)
- African Studies: East African Languages: Kiswahili (Swahili)
- African Studies: East, West & South African Languages: Amharic, Igbo, Mandinka, isiZulu
- African Studies: South African Languages: isiXhosa
- African Studies: West African Languages: Akan Twi, Wolof
- American Studies
- Anthropology
- Arabic: Language, Literature, Culture (including courses in English)
- Archaeology
- Astronomy
- Biochemistry & Molecular Biology
- Biology
- Chemistry
- Chinese: Language, Literature, Culture (including courses in English)
- Cinema & Media Studies
- Classical Studies: incl. Classical Civilization and Tradition (in English), Ancient Greek, and Latin
- Classical Studies: Modern Greek
- Comparative Literature
- Computer Science
- Core Curriculum
- Earth & Environment
- Economics
- Editorial Studies
- English
- First Year Experience
- French: Language, Literature, Linguistics, Culture (including courses in English)
- German: Language, Literature, Culture (including courses in English)
- Hebrew: Language, Literature, Culture (including courses in English)
- Hindi-Urdu: Language, Literature, Culture (including courses in English)
- History
- History of Art & Architecture
- Interdisciplinary Studies
- International Relations
- Internships
- Italian: Language, Literature, Culture (including courses in English)
- Japanese: Language, Literature, Culture (including courses in English)
- Jewish Studies
- Korean: Language, Literature, Culture (including courses in English)
- Linguistics
- Literary Translation
- Marine Science
- Mathematics & Statistics
- Natural Sciences
- Neuroscience
- Persian (Farsi): Language, Literature, Culture (including courses in English)
- Philosophy
- Physics
- Political Science
- Portuguese: Language, Literature, Culture (including courses in English)
- Psychological & Brain Sciences
- Religion
- Russian: Language, Literature, Culture (including courses in English)
- SEA Semester
- Senior Year Development
- Sociology
- Spanish: Language, Literature, Culture (including courses in English)
- Turkish: Language, Literature, Culture (including courses in English)
- Women’s, Gender & Sexuality Studies
- Writing
-
CAS CS 512: Formal Methods 2
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 computing system satisfies its formally specified properties. -
CAS CS 518: Formal Tools for Cybersecurity
This course introduces various methodologies for formal specification, testing and verification, to understand and eliminate bugs undermining system security. Two general methodologies are considered: dynamic methodologies using property-based testing and symbolic execution, and static methodologies involving program-based formal verification techniques. -
CAS CS 520: Programming Languages
Concepts of programming languages: data, storage, control, and definition structures; concurrent and distributed programming; functional and logic programming. -
CAS CS 523: Deep Learning
Mathematical and machine learning background for deep learning. Feed-forward networks., Backpropagation. Training strategies for deep networks. Convolutional networks. Recurrent neural networks. Deep reinforcement learning. Deep unsupervised learning. Exposure to Tensorflow and other modern programming tools. Other recent topics, time permitting. -
CAS CS 525: Compiler Design Theory
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. -
CAS CS 528: Cloud Computing
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. -
CAS CS 530: Advanced Algorithms
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. -
CAS CS 531: Advanced Optimization Algorithms
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. -
CAS CS 535: Complexity 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. -
CAS CS 537: Randomness in Computing
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.) -
CAS CS 538: Fundamentals of Cryptography
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. -
CAS CS 542: Machine Learning
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. -
CAS CS 543: Algorithmic Techniques for Taming Big Data
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. Effective Fall 2021, this course fulfills a single unit in each of the following BU Hub areas: Quantitative Reasoning II, Creativity/Innovation. -
CAS CS 548: Advanced Cryptography
Continuation of CAS 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. -
CAS CS 551: Streaming and Event-driven Systems
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. -
CAS CS 552: Introduction to Operating Systems
Examines process synchronization; I/O techniques, buffering, file systems; processor scheduling; memory management; virtual memory; job scheduling, resource allocation; system modeling; and performance measurement and evaluation. -
CAS CS 558: Computer Networks Security
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. -
CAS CS 561: Data Systems Architectures
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. Effective Spring 2021, this course fulfills a single unit in each of the following BU Hub areas: Oral and/or Signed Communication, Research and Information Literacy. -
CAS CS 562: Advanced Database Applications
Research issues in the design and implementation of modern database systems. Spatial, temporal, and spatiotemporal index structures. Indexing methods for image and multimedia databases and data warehouses. New data analysis techniques for large databases, clustering and rule discovery for very large datasets. -
CAS CS 565: Algorithmic Data Mining
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.

