General Information
This pages details informations on topics courses and electives for Computer Science. These courses count towards topics courses A student may register for as many of the below courses as they would like, however students cannot repeat a specific section.
CS Major and Joint Majors have various course requirements for their degree programs. Degree candidates should refer to the details course requirements and plans of study listed on the Academic Programs page to ensure they are meeting course requirements.
Types of Electives and Topics Courses
- CS Workshops are 1 credit, Pass/Fail courses which meet for ~1 hour per week and focus on topics not traditionally covered through typical 4 credit courses. CS Workshop courses do not count toward CS major requirements.
- CS Practicum courses are project-focused and are intended for students to apply the knowledge and skills they learn through their foundational coursework. CS Practicum courses must be taken for letter grades.
- CS Topics courses are research-focused and are intended for students to develop their depth of knowledge in a specific area of computer science. CS Topics courses must be taken for letter grades
In order to ensure enough space in our elective classes for CAS/GRS CS students, the Department of Computer Science prioritize students who are officially declared in a Department of Computer Science academic program (as a minor, CS major, Math/CS major, or as a graduate student) for our CS 400 level courses; for CS 500+ level courses, College of Engineering students are included in our prioritization. Follow the below decision tree if you are unsure about your ability to register for CS elective courses.Elective Course Registration Procedure
Spring 2025 Topics Courses & Descriptions
If you are interested in taking CS courses to learn more about computer science or to satisfy various general requirements, we offer several courses that have no prerequisites and can be taken in any order. Preview the drop down below for more information on these offerings. The following courses have no prerequisites and can be taken in any order (except the 111/112 sequence.) CS 101: Introduction to Computing CS 103: Introduction to Internet Technologies and Web Programming CS 105: Introduction to Databases and Data Mining CS 108: Introduction to Applications Programming CS 111: Introduction to Computer Science I CS 112: Introduction to Computer Science IICourses for None Majors
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 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.
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.
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
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.
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.
Special Courses
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: 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 This program is open to exceptional undergraduate students who desire to complete a research “capstone” experience as part of their B.A. in Computer Science. Interested students may contact csadvise@bu.edu for more information. Eligibility Requirements How to Apply This course is intended for undergraduate students interested in completing a summer internship in a computing industry company. See below for more details about the course and how to apply. Note that this course is offered only during the summer and that is the only period during the year when the CS department sponsors CPT. Students who are interested in CS 298 must submit their application no later than the last day to add a standard class for the semester their internship will occur. CS 298: Internship in Computer Science is a Pass/Fail undergraduate course, taken for 1 credit over the summer. For domestic students, this course is not required to take an internship, although they may do so if they wish to see internship credit on their transcript. For international students, this course is required to use CPT. This course comes with a tuition fee and is not repeatable. Please note that this course does not count toward major requirements, but the 1 credit you receive from the course does count toward your graduation requirement of 128 credits. A 2.0 GPA is required to participate in CS 298. In order to register for CS 298, you must submit a short application, which will be reviewed Prof. Dora Erdos, the Computer Science Director of Undergraduate Studies. If Prof. Erdos approves your application, you will be automatically registered for the course for 1 credit. This course requires that you submit short biweekly short reports, once every two weeks throughout the duration of your internship. At the end of your internship, a final report detailing the work you have done in the internship needs to be submitted. These items are required for successful completion of CS 298. For international students: please read this webpage on the ISSO website about CPT requirements thoroughly. Please note that it will take time to go through the full process required for approving any internship, including getting ISSO approval for CPT requests. Please start early if you are planning on internships (at least 1.5-2 months prior, if you are using CPT) and please be patient with the process. If you have any questions, please reach out directly to Prof. Erdos at edori@bu.edu.Directed Study in Computer Science
Honors in the Major (2-Course Capstone)
CS 298: Undergraduate Internship in Computer Science (Summer only)
How do I register?