Boston UniversityWebsiteAcademic Catalog
Department of Computer ScienceDepartment Website
BA Degree in Computer Sciencesource 1
CS Courses
- Introduction to Computer Science 1CS 111 (4)introCS 111: Introduction to Computer Science 1
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.
- Introduction to Computer Science 2CS 112 (4)introCS 112: Introduction to Computer Science 2
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.
- pick 2
Geometric AlgorithmsCS 132 (4)algsCS 132: Geometric AlgorithmsBasic 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.
Probability in ComputingCS 237 (4)mathCS 237: Probability in ComputingIntroduction 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.
- Computer SystemsCS 210 (4)sysCS 210: Computer Systems
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.
- pick 2
Elements of the Theory of ComputationCS 332 (4)theoryCS 332: Elements of the Theory of ComputationThe 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.
Fundamentals of Computing SystemsCS 350 (4)sysCS 350: Fundamentals of Computing SystemsProgramming-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.
- Introduction to Analysis of AlgorithmsCS 330 (4)algsCS 330: Introduction to Analysis of Algorithms
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.
- 6 × CS course 300+
Math/Stat Courses
Other Courses
- 3 × Free Elective
Learning Outcomes
- Understand and evaluate the organization, design, and construction of hardware and software systems for computing.
- Attain a level of mathematical ability allowing the student to formally abstract and analyze computational processes.
- Analyze problems that require computation to answer, and design and implement appropriate problem solutions that are efficient and effective.
History of the Major
2024 | |
2023 | |
2022 | |
2021 | |
2020 | |
2019 | Add a few courses as upper-level CS Electives. |
2018 | |
2017 |