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.
View courses in
- All Departments
- All Departments
- African American & Black Diaspora Studies
- African Studies: African Languages: Akan Twi, Amharic, Igbo, Kiswahili (Swahili), Wolof, isiXhosa, Yoruba, isiZulu
- African Studies: Culture (in English)
- 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 & Experiential Learning
- 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)
- 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 237: Probability in Computing
Undergraduate Prerequisites: (CASCS131) - 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. Effective Fall 2018, this course fulfills a single unit in each of the following BU Hub areas: Quantitative Reasoning II, Critical Thinking. -
CAS CS 312: Competitive Programming
Prerequisites: CASCS 112 and CASCS 131. - This course covers algorithms and programming techniques for contests, including data structures, sorting, bit manipulation, divide and conquer, dynamic programming, graph algorithms, and number theory. Participation in weekly contests is mandatory to apply and reinforce these skills. Effective Fall 2026, this course fulfills a single requirement in each of the following BU Hub areas: Critical Thinking, Quantitative Reasoning 2. -
CAS CS 320: Concepts of Programming Languages
Undergraduate Prerequisites: (CASCS131 & CASCS210) - Concepts involved in the design of programming languages. Bindings, argument transmission, and control structures. Environments: compile-time, load-time, and run-time. Interpreters. Effective Fall 2019, this course fulfills a single unit in the following BU Hub area: Creativity/Innovation. -
CAS CS 330: Introduction to Analysis of Algorithms
Prerequisites: CASCS 112 and CASCS 131 and one of the following: CASCS 132/MA242 or CASCS 235/MA294 or CASCS 237/MA581. - Examines the basic principles of algorithm design and analysis; asymptotic analysis; graph algorithms; greedy algorithms; dynamic programming; network flows; polynomial- time reductions; NP-hard and NP-complete problems. Effective Fall 2018, this course fulfills a single unit in each of the following BU Hub areas: Quantitative Reasoning II, Critical Thinking. -
CAS CS 332: Elements of the Theory of Computation
Undergraduate Prerequisites: (CASCS330) - 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. -
CAS CS 350: Fundamentals of Computing Systems
Undergraduate Prerequisites: CASCS 210 - 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. NOTE: CASCS 350 and CASCS 351 fulfill the same major requirement (“take two of the 3 courses in CS 320, CS 332, CS 350”). Students are allowed to take both CS 350 and CS 351 for credit. In this case one of the two will be applied towards electives in the major. -
CAS CS 351: Distributed Systems
Prerequisites: CASCS 210. - Covers fundamental concepts of distributed computing (logical clocks, causal order, snapshots, consensus, atomic commit), communication and synchronization primitives, concurrency control, task and data parallelism, data consistency, replication, and fault tolerance. NOTE: CASCS 350 and CASCS 351 fulfill the same major requirement (“take two of the 3 courses in CS 320, CS 332, CS 350”). Students are allowed to take both CS 350 and CS 351 for credit. In this case one of the two will be applied towards electives in the major. -
CAS CS 357: Introduction to Information Security
Undergraduate Prerequisites: (CASCS210) or consent of instructor. - 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. -
CAS CS 365: Foundations of Data Science
Undergraduate Prerequisites: CAS CS112 and CAS CS131 and CAS CS132 and CAS CS237 (or equivalent). O r consent of instructor. Recommended: CAS CS330. - 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. -
CAS CS 391: Topics in Computer Science
Topics vary, course descriptions for each semester can be found at https://www.bu.edu/cs/undergraduate/courses/topics/. Different sections of the course may be taken for credit as topics vary. -
CAS CS 392: Topics in Computer Science
Topics vary, course descriptions for each semester can be found at https://www.bu.edu/cs/undergraduate/courses/topics/. Different sections of the course may be taken for credit as topics vary. -
CAS CS 401: Senior Independent Work
Undergraduate Prerequisites: approval of the Honors Committee. - Effective Fall 2022, this course fulfills a single unit in the following BU Hub area: Research and Information Literacy. -
CAS CS 402: Senior Independent Work
Undergraduate Prerequisites: approval of the Honors Committee. - Effective Spring 2023, this course fulfills a single unit in the following BU Hub area: Oral and/or Signed Communication. -
CAS CS 410: Advanced Software Systems
Undergraduate Prerequisites: (CASCS210) - 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. -
CAS CS 412: Full-Stack Application Design and Development
Undergraduate Prerequisites: CASCS 111 & CASCS 112 or consent of instructor. - The course is an immersive practical programming experience to extend and enhance students' programming and debugging skills in the context of a complex and large-scale application. Students will learn and use a web application framework to implement full-stack applications with a web-based user interface and persistent data management, as well as an introduction to mobile applications. -
CAS CS 413: Software Engineering
Undergraduate Prerequisites: CASCS 112. - 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. Effective Fall 2026, this course fulfills a single unit in each of the following BU Hub area: Teamwork/Collaboration. -
CAS CS 440: Introduction to Artificial Intelligence
Undergraduate Prerequisites: (CASCS112 & CASCS132) - 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. -
CAS CS 451: Distributed Systems
Undergraduate Prerequisites: (CASCS210) - 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. -
CAS CS 454: Embedded Systems Development
Undergraduate Prerequisites: (CASCS210) - 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; 1/0 interfacing and development of device drivers; and time-critical data handling. -
CAS CS 455: Computer Networks
Undergraduate Prerequisites: (CASCS210) - 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.

