{"id":2781,"date":"2012-06-04T16:40:10","date_gmt":"2012-06-04T20:40:10","guid":{"rendered":"https:\/\/www.bu.edu\/cs\/?page_id=2781"},"modified":"2025-09-15T12:55:12","modified_gmt":"2025-09-15T16:55:12","slug":"courses","status":"publish","type":"page","link":"https:\/\/www.bu.edu\/cs\/undergraduate\/courses\/","title":{"rendered":"Courses"},"content":{"rendered":"<h3><b><i>General Information<\/i><\/b><\/h3>\n<p><b>The Computer Science Department offers a variety of course types to support students\u2019 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.<\/b><\/p>\n<p><span style=\"font-weight: 400;\">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 <\/span><a href=\"https:\/\/www.bu.edu\/cs\/undergraduate\/academic-programs\/\"><span style=\"font-weight: 400;\">Academic Programs page<\/span><\/a><span style=\"font-weight: 400;\"> to ensure they are staying on track.<\/span><\/p>\n<h3><b><i>Types of CS Courses<\/i><\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>CS Lecture <\/b><span style=\"font-weight: 400;\">courses<\/span> <span style=\"font-weight: 400;\">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.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>CS Topic<\/b> <b>(e.g., CS 391, 392, 501, 599)<\/b><span style=\"font-weight: 400;\"> 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.<\/span><\/li>\n<\/ul>\n<p style=\"text-align: center;\"><strong>\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 \u00a0\u00a0 <\/strong><strong><a href=\"https:\/\/www.bu.edu\/academics\/cas\/courses\/computer-science\/\" class=\"button\">CS Bulletin<\/a>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <a href=\"https:\/\/www.bu.edu\/cs\/undergraduate\/courses\/topics\/\" class=\"button\">Topics Courses<\/a><\/strong><\/p>\n<hr \/>\n<p><em><\/em><strong><div class=\"bu_collapsible_container \" aria-live=\"polite\" data-customize-animation=\"false\"><h3 class=\"bu_collapsible\" aria-expanded=\"false\"tabindex=\"0\" role=\"button\">Courses for Non-Majors<\/h3><div class=\"bu_collapsible_section\" style=\"display: none;\"><\/strong><\/p>\n<p><span style=\"font-weight: 400;\">If you&#8217;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\u2014except for the CS 111\/112 sequence, which should be taken consecutively.<\/span><\/p>\n<p><strong>CS 101: Introduction to Computing<\/strong><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Computers are taken for granted in today\u2019s 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?<\/span><\/p>\n<p><strong>CS 103: Introduction to Internet Technologies and Web Programming<\/strong><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">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.<\/span><\/p>\n<p><strong>CS 105: Introduction to Databases and Data Mining<\/strong><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">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.<\/span><\/p>\n<p><strong>CS 108: Introduction to Applications Programming<\/strong><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">As a society, we have become dependent on computer applications in our personal and professional lives\u2014from 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<\/span><\/p>\n<p><strong>CS 111: Introduction to Computer Science I<\/strong><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">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.<\/span><\/p>\n<p style=\"text-align: justify;\"><strong>CS 112: Introduction to Computer Science II<span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">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.<\/span><\/strong><\/p>\n<p style=\"text-align: justify;\"><strong><\/div>\n<\/div>\n<\/strong><\/p>\n<hr \/>\n<p><strong><div class=\"bu_collapsible_container \" aria-live=\"polite\" data-customize-animation=\"false\"><h3 class=\"bu_collapsible\" aria-expanded=\"false\"tabindex=\"0\" role=\"button\">Topics Courses<\/h3><div class=\"bu_collapsible_section\" style=\"display: none;\"><\/strong><\/p>\n<p><b>CS Topic<\/b> <b>(e.g., CS 391, 392, 501, 599)<\/b><span style=\"font-weight: 400;\"> 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. <\/span><b>Students may take multiple topic courses, though they cannot repeat the same section.<\/b><\/p>\n<p><a href=\"https:\/\/www.bu.edu\/cs\/undergraduate\/courses\/topics\/\"><b><i>Topics Courses &amp; Descriptions<\/i><\/b><\/a><\/p>\n<p><strong><\/div>\n<\/div>\n<\/strong><\/p>\n<hr \/>\n<p><strong><div class=\"bu_collapsible_container \" aria-live=\"polite\" data-customize-animation=\"false\"><h3 class=\"bu_collapsible\" aria-expanded=\"false\"tabindex=\"0\" role=\"button\">Special Courses<\/h3><div class=\"bu_collapsible_section\" style=\"display: none;\"><\/strong><\/p>\n<h4><b><i>Directed Study in Computer Science<br \/>\n<\/i><\/b><span style=\"font-weight: 400;\">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. <\/span><span style=\"font-weight: 400;\">Directed studies are registered under the course number CS491\/492 and have to be taken for 4 credits.<\/span><\/h4>\n<h4><span style=\"font-weight: 400;\">See <\/span><a href=\"https:\/\/www.bu.edu\/cas\/academics\/undergraduate-education\/special-academic-opportunities\/directed-study\/\"><span style=\"font-weight: 400;\">here<\/span><\/a><span style=\"font-weight: 400;\"> for the general guidelines for directed studies in CAS.<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Requirements:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">the supervising faculty member has to be a professor (not a PhD student or Post-Doc) within the BU CAS Computer Science Department.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">a directed study should only be pursued to explore a topic in computer science not normally covered in the curriculum.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">the learning content of the proposed study has to be commensurate to the material in a regular advanced-level CS course.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">To apply fill <a href=\"\/cs\/files\/2025\/09\/Directed-Study-Application-template-1.pdf\">this form <\/a><\/span><span style=\"font-weight: 400;\">with your advisor and submit along with your project description to the Director of Undergraduate Studies, Dora Erdos <\/span><a href=\"mailto:edori@bu.edu\"><span style=\"font-weight: 400;\">edori@bu.edu<\/span><\/a><\/p>\n<hr \/>\n<h4><b><i>Honors in the Major (2-Course Capstone)<\/i><\/b><\/h4>\n<p><span style=\"font-weight: 400;\">This program is open to exceptional undergraduate students who desire to complete a research \u201ccapstone\u201d experience as <\/span><span style=\"font-weight: 400;\">part of their CS major or CS joint major.<\/span><span style=\"font-weight: 400;\"> Interested students may contact <\/span><span style=\"font-weight: 400;\">csadvise@bu.edu<\/span><span style=\"font-weight: 400;\"> for more information.<\/span><\/p>\n<p><b>Eligibility<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">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.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">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 &amp; Computer Science) should consult with their advisors in both departments before applying.<\/span><\/li>\n<\/ul>\n<p><b>Requirements<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">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\u2019s ongoing seminar).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Students in the program are strongly encouraged to attend research group seminars and relevant departmental colloquia.<\/span><\/li>\n<li aria-level=\"1\">A student\u2019s research topic does not need to be a direct extension of their supervising faculty\u2019s work. It may be an independent project, provided the application is approved and the project has sufficient depth to span two semesters.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">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.<\/span><\/li>\n<\/ul>\n<p><b>How to Apply<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">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.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Applications can be sent and will be reviewed by Director of Undergraduate Studies <\/span><a href=\"https:\/\/www.bu.edu\/cs\/profiles\/edori\/\"><span style=\"font-weight: 400;\">Professor Dora Erdos<\/span><\/a><span style=\"font-weight: 400;\">. After review and acceptance, the student may then register for CS 401 for the following Fall term. <\/span><i><span style=\"font-weight: 400;\">Admission to CS 402 will be contingent on the faculty member\u2019s satisfaction with the student\u2019s performance in CS 401.<\/span><\/i><\/li>\n<\/ul>\n<hr \/>\n<h4><em><a href=\"https:\/\/www.bu.edu\/cs\/undergraduate\/courses\/cs-298\/\">CS 298: Undergraduate Internship in Computer Science<\/a><\/em><br \/>\n<br style=\"font-weight: 400;\" \/><\/h4>\n<p>&nbsp;<\/p>\n<p><strong><\/div>\n<\/div>\n<\/strong><\/p>\n<h3 style=\"text-align: justify;\">Helpful Links<\/h3>\n<p><a href=\"https:\/\/www.bu.edu\/cs\/undergraduate\/undergraduate-life\/courses\/topics\/\">Topics Courses<\/a><\/p>\n<p><a href=\"https:\/\/www.bu.edu\/cs\/undergraduate\/undergraduate-life\/courses\/course-transfer\/\">Transfer Courses<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>General Information The Computer Science Department offers a variety of course types to support students\u2019 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 [&hellip;]<\/p>\n","protected":false},"author":6135,"featured_media":0,"parent":60,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.bu.edu\/cs\/wp-json\/wp\/v2\/pages\/2781"}],"collection":[{"href":"https:\/\/www.bu.edu\/cs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bu.edu\/cs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bu.edu\/cs\/wp-json\/wp\/v2\/users\/6135"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bu.edu\/cs\/wp-json\/wp\/v2\/comments?post=2781"}],"version-history":[{"count":50,"href":"https:\/\/www.bu.edu\/cs\/wp-json\/wp\/v2\/pages\/2781\/revisions"}],"predecessor-version":[{"id":22192,"href":"https:\/\/www.bu.edu\/cs\/wp-json\/wp\/v2\/pages\/2781\/revisions\/22192"}],"up":[{"embeddable":true,"href":"https:\/\/www.bu.edu\/cs\/wp-json\/wp\/v2\/pages\/60"}],"wp:attachment":[{"href":"https:\/\/www.bu.edu\/cs\/wp-json\/wp\/v2\/media?parent=2781"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}