Courses

The listing of a course description here does not guarantee a course’s being offered in a particular term. Please refer to the published schedule of classes on the MyBU Student Portal for confirmation a class is actually being taught and for specific course meeting dates and times.

  • CAS CS 519: Spark! Software Engineering X-Lab Practicum
    Undergraduate Prerequisites: (CASCS411 OR CDSDS310) or equiv. experience in software development and consent of instructor . - 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. Effective Spring 2022, this course fulfills a single unit in each of the following BU Hub areas: Ethical Reasoning, Oral and/or Signed Communication, Teamwork/Collaboration.
    • Ethical Reasoning
    • Oral and/or Signed Communication
    • Teamwork/Collaboration
  • CAS CS 523: Deep Learning
    Undergraduate Prerequisites: (CASCS542) - 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: (CASCS320) , or consent of instructor. - Graduate Prerequisites: (CASCS320 OR CASCS332) - 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: (CASCS350 & CASCS460) or consent of instructor. CASCS455, CASCS552, and CASCS562 are recomme nded. - 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: (CASCS330) or consent of instructor. - Graduate Prerequisites: (CASCS330) 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 conse nt 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: (CASCS332) or consent of instructor. - Graduate Prerequisites: (CASCS332) - 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: (CASCS330 OR CASCS530) . 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: (CASCS131 & CASCS237 & CASCS357) or consent of instructor. - Graduate Prerequisites: (CASCS332) - 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: (CASCS365) - 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 instruc tor. - 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.
    • Creativity/Innovation
    • Quantitative Reasoning II
  • CAS CS 548: Advanced Cryptography
    Undergraduate Prerequisites: (CASCS538) 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: (CASCS505 OR CASCS542 OR CASCS585) or consent of instructor. Consent provided upon successful completion of pass/fail diagnostic test that will assess student readiness to tak e 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. Effective Spring 2022, this course fulfills a single unit in each of the following BU Hub areas: Ethical Reasoning, Research and Information Literacy, Teamwork/Collaboration.
    • Ethical Reasoning
    • Research and Information Literacy
    • Teamwork/Collaboration
  • 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 ins tructor. - 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: (CASCS357) 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: (CASCS112 & CASCS330 & CASCS365) - 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 recommende d. - 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.