Computer Science

View courses in

  • CAS CS 523: Deep Learning
    Undergraduate Prerequisites: CAS CS 542.
    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.
  • CAS CS 525: Compiler Design Theory
    Undergraduate Prerequisites: CAS CS 320; , or consent of instructor.
    Graduate Prerequisites: CAS CS 320 or CAS CS 332.
    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
    Undergraduate Prerequisites: CAS CS 350 and CAS CS 460; or consent of instructor. CASCS455, CASCS552, and CASCS562 are recommended.
    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
    Undergraduate Prerequisites: CAS CS 330; or consent of instructor.
    Graduate Prerequisites: CAS CS 330; or consent of instructor.
    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
    Undergraduate Prerequisites: CAS MA 123 & 124, or equivalent and CAS CS 132 or equivalent; or consent of instructor.
    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
    Undergraduate Prerequisites: CAS CS 332; or consent of instructor.
    Graduate Prerequisites: CAS CS 332.
    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
    Undergraduate Prerequisites: CAS CS 330 or CAS CS 530; . CASCS535 is recommended or consent of instructor.
    Graduate Prerequisites: CASCS330 or CASCS530 is recommended.
    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
    Undergraduate Prerequisites: CAS CS 131 ; CAS CS 237 ; CAS CS 357; or consent of instructor.
    Graduate Prerequisites: CAS CS 332.
    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 541: Applied Machine Learning
    Undergraduate Prerequisites: CS111 (CS112 recommended); CS132 or MA242 (or EK103); CS237 or MA581 (or EK381.) CS365 is recommended.
    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.
  • CAS CS 542: Principles of Machine Learning
    Undergraduate Prerequisites: CAS CS 365.
    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
    Undergraduate Prerequisites: exposure to basic data structures and algorithms or consent of instructor.
    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.
    • Quantitative Reasoning II
    • Creativity/Innovation
  • CAS CS 548: Advanced Cryptography
    Undergraduate Prerequisites: CAS CS 538; or consent of instructor.
    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 549: Spark! Machine Learning X-Lab Practicum
    Undergraduate Prerequisites: CAS CS 505 or CAS CS 542 or CAS CS 585; or consent of instructor. Consent provided upon successful completionof pass/fail diagnostic test that will assess student readiness to take the course.
    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.
  • CAS CS 551: Streaming and Event-driven Systems
    Undergraduate Prerequisites: CAS CS 112 and CAS CS 210; CAS CS 451 and CAS CS 460 or consent of instructor.
    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 558: Computer Networks Security
    Undergraduate Prerequisites: CAS CS 357; or consent of instructor.
    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
    Undergraduate Prerequisites: CAS CS 210 or equivalent and CAS CS 460/660.
    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.
    • Oral and/or Signed Communication
    • Research and Information Literacy
  • CAS CS 565: Algorithmic Data Mining
    Undergraduate Prerequisites: CAS CS 112 ; CAS CS 330 ; CAS CS 365.
    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.
  • CAS CS 581: Computational Fabrication
    Undergraduate Prerequisites: CAS CS 112 and CAS CS 132 or CAS MA 242; CAS 480/GRS CS 680 recommended.
    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.
  • CAS CS 582: Geometry Processing
    Undergraduate Prerequisites: CAS CS 112 (or equivalent), CAS CS 132 or CAS MA 242 (or equivalent),CAS MA 225 (or equivalent).
    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.
  • CAS CS 583: Audio Computation
    Undergraduate Prerequisites: CAS CS 112; and understanding of physics equivalent to CAS PY 105.
    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. Effective Fall 2021, this course fulfills a single unit in each of the following BU Hub areas: Scientific Inquiry II, Creativity/Innovation.
    • Scientific Inquiry II
    • Creativity/Innovation