General Information
The Computer Science Department offers a variety of course types to support students’ learning, skill development, and exploration of the field. Below is an overview of the main course formats and a list of all the courses offered within the department.
Note: CS majors and joint majors have specific course requirements for their degree programs. Students should refer to the detailed course requirements and sample plans of study on the Academic Programs page to ensure they are staying on track.
Types of CS Courses
- CS Lecture courses provide foundational knowledge in computer science and typically include a combination of lectures and discussion sections. These 4-credit courses form the core of the CS curriculum and cover essential topics in programming, algorithms, systems, theory, and more.
- CS Topic (e.g., CS 391, 392, 501, 599) are non-regular offerings that cover specialized or advanced areas of computer science. Topics vary by semester and instructor. These 4-credit courses must be taken for a letter grade and can often be used to fulfill Group D requirements, MS requirements (if CS 500+), or advanced elective requirements for the CS minor. Students may take multiple topic courses, though they cannot repeat the same section.
CS Bulletin Topics Courses
Courses for Non-Majors
If you’re interested in exploring computer science or fulfilling general requirements, we offer several introductory courses with no prerequisites. Most of these can be taken in any order—except for the CS 111/112 sequence, which should be taken consecutively.
CS 101: Introduction to Computing
Computers are taken for granted in today’s society, but most users have no knowledge of how computers work. CS 101 helps students gain a deeper appreciation of the capabilities and limitations of computing. Questions addressed include: What is a computer? How does computation happen? How is information represented within a digital computer? What is computer programming? What are algorithms, how do we measure their efficiency, and why does this matter? Why does a computer have an operating system, and what does it do? What is the Internet, and how does it work? How do applications like Google and Facebook perform their magic?
CS 103: Introduction to Internet Technologies and Web Programming
CS 103 invites students to engage with the Web in order to gain an understanding of what it is, how to use it, and how to contribute to it. Students learn to view the Web and the underlying Internet architecture as instances of the mathematical abstraction of a network. They learn how modern Web technologies like search exploit fundamental aspects of networks, and they thereby become more effective users of these technologies. Finally, students become active contributors to the Web by learning the basics of Web programming and by creating a full-blown original website as an independent semester-long project.
CS 105: Introduction to Databases and Data Mining
Databases are everywhere. Retailers use data about customers and purchases to increase profits. Researchers analyze genomic data to find treatments for diseases. Online music and video services use data mining to deliver customized recommendations. How does all this work? CS 105 examines how data is organized, analyzed, and displayed. Topics include relational databases and the SQL query language, the writing of programs to analyze data, the principles of data visualization, and data-mining techniques for discovering patterns in data. At the end of the course, students apply the topics they have learned to a collection of data that interests them.
CS 108: Introduction to Applications Programming
As a society, we have become dependent on computer applications in our personal and professional lives—from email programs and database software to the programs that drive the websites where we shop online. But what is computer software, and how is it developed? CS 108 is an introduction to object-oriented and procedural programming that covers the fundamental constructs and patterns present in all programming languages, with a focus on developing applications for users. While learning to program, students also develop problem-solving skills and ways of thinking that can be applied to a variety of disciplines. (Cannot be taken for credit in addition to CAS CS 111.) For more information, please refer to the
CS 111: Introduction to Computer Science I
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.
CS 112: Introduction to Computer Science II
Prereq: CAS CS 111 or equivalent. Covers advanced programming techniques and data structures. Topics include recursion, algorithm analysis, linked lists, stacks, queues, trees, graphs, tables, searching, and sorting.
Topics Courses
CS Topic (e.g., CS 391, 392, 501, 599) are non-regular offerings that cover specialized or advanced areas of computer science. Topics vary by semester and instructor. These 4-credit courses must be taken for a letter grade and can often be used to fulfill Group D requirements, MS requirements (if CS 500+), or advanced elective requirements for the CS minor. Students may take multiple topic courses, though they cannot repeat the same section.
Topics Courses & Descriptions
Special Courses
Directed Study in Computer Science
A Directed Study in CS is a course in which a student pursues independent research under the guidance of a CS faculty member. Students should consult with their supervising faculty member to design a clear, explicit plan for the completion of the directed study course including supervision, research materials, and assignments. Directed studies are registered under the course number CS491/492 and have to be taken for 4 credits.
See here for the general guidelines for directed studies in CAS.
Requirements:
- the supervising faculty member has to be a professor (not a PhD student or Post-Doc) within the BU CAS Computer Science Department.
- a directed study should only be pursued to explore a topic in computer science not normally covered in the curriculum.
- the learning content of the proposed study has to be commensurate to the material in a regular advanced-level CS course.
To apply fill this form with your advisor and submit along with your project description to the Director of Undergraduate Studies, Dora Erdos edori@bu.edu
Honors in the Major (2-Course Capstone)
This program is open to exceptional undergraduate students who desire to complete a research “capstone” experience as part of their CS major or CS joint major. Interested students may contact csadvise@bu.edu for more information.
Eligibility
- There are no formal GPA requirements, but it is expected that only students with a distinguished record of academic performance, and a strong interest in independent research, will elect this program.
- Students in the general CS major as well as any of our joint majors are eligible to complete an Honors project. Students with a joint major (for example, Mathematics & Computer Science) should consult with their advisors in both departments before applying.
Requirements
- Students in the program must complete two semesters of research work (as courses CS 401 and 402) under the supervision of a BU CAS Computer Science faculty member (not a PhD student or Post-Doc), which will culminate in a written document and an oral presentation before a committee of the faculty (ideally, as part of a research group’s ongoing seminar).
- Students in the program are strongly encouraged to attend research group seminars and relevant departmental colloquia.
- A student’s research topic does not need to be a direct extension of their supervising faculty’s work. It may be an independent project, provided the application is approved and the project has sufficient depth to span two semesters.
- Effective Fall 2022, CS 401 gives students a Research and Information Literacy hub unit. CS 402 gives students an Oral and Signed Communication hub unit.
How to Apply
- To apply, please submit a brief project proposal as well as a recommendation letter from the sponsoring faculty member by the end of the Spring Semester. Students must be a junior to apply.
- Applications can be sent and will be reviewed by Director of Undergraduate Studies Professor Dora Erdos. After review and acceptance, the student may then register for CS 401 for the following Fall term. Admission to CS 402 will be contingent on the faculty member’s satisfaction with the student’s performance in CS 401.
Helpful Links
Topics Courses
Transfer Courses