Computer Science
College of Arts & Sciences
-
Introduction to Internet Technologies and Web Programming
CAS CS 103
Introduction to the basic architecture and protocols underlying the operation of the Internet with an emphasis on web design, web application programming, and algorithmic thinking. General familiarity with the Internet is assumed. Carries MCS divisional credit in CAS. Effective Fall 2022, this course fulfills a single unit in each of the following BU Hub areas: Digital/Multimedia Expression, Quantitative Reasoning II, Creativity/Innovation. 4 cr. Tuition: $3260
Summer 1 (May 20-June 27)
A1 (LEC) Mon./Tues./Wed./Thurs. 1-3 pm Add & Drop DatesLocation: CDS 364 ... Open SeatsTaymaz DavoodiStudents must register for Lec (A1) and Lab (A2); please note there is no Lab. -
Introduction to Computer Science 1
CAS CS 111
Online offering. This course is a rigorous introduction to programming for students intending to major or minor in Computer Science, Data Science, and related disciplines. The course introduces numeric, string, and list data, functions, decisions, recursion, iteration, and object- orientation. Applications include matrix operations, image manipulation, games, rules-based and generative artificial intelligence, and searching. Learning to program is a skill that can only be learned through practice -- it cannot be acquired from merely watching a series of lectures. Rather, students will learn through a combination of short readings; mini-lecture videos; interactive examples; and complex problem sets. Students must actively engage with these examples and problem sets to develop both the muscle memory of programming as well as a mental model of how programs execute and interact with data. Students will learn new concepts independently and attend regular workshop sessions to develop debugging skills and to obtain assistance with problem sets. The structure of the online class demands that students be intrinsically motivated to acquire programming skills, so that they will be motivated to keep up with a demanding schedule of learning activities and problem sets. To be successful in this course, students must be prepared to dedicate approximately 25-30 hours per week to the learning objectives. Students must have a Mac or Windows computer on which they can install the required software for the course. Carries MCS divisional credit in CAS. Effective Fall 2018, this course fulfills a single unit in each of the following BU Hub areas: Quantitative Reasoning II, Creativity/Innovation, Critical Thinking. 4 cr. Tuition: $3260
Summer 1 (May 13-June 27)
Summer 2 (June 30-August 15)
CAS CS 111 Online: Introduction to Computer Science 1
Students must register for a LEC and a LAB. Instructor Permission Required.
CS111 is a rigorous programming class, in which each topic/problem set builds upon the previous ones. Due to the intense Summer Term schedule, it is not possible to catch up from missing any topic or problem set.
Students must plan for 25-30 hours of work per week. There are 2 problem set workshops per week, and students need to dedicate 5-8 hours of active preparation before each workshop. It is not possible to do the problem sets without adequate preparation.
There is zero tolerance for use of Chat GPT or other AI tools to solve problem sets, quizzes, and exams. Students suspected of using these tools will be subject to oral examination by the instructor, and students unable to explain their work or solve similar problems will receive an automatic grade of F in the course. Students who refuse an oral exam will receive an F in the course.
Students wishing to take the course must email Prof. Aaron Stevens azs@bu.edu to seek approval. If he approves, he will help facilitate your registration through the Summer Term office.
SUM 1 Schedule
Lecture: O1
Lab Workshops meet Tuesday and Friday
W1 – 10am-12pm
W3 - 12pm-2pm
W5 - 3pm-5pm
W7 - 6pm-8pm
W9 - 8pm-10pmSUM 2 Schedule
Lecture: O2
Lab Workshops meet Tuesday and Friday
W2 – 10am-12pm
W4 - 12pm-2pm
W6 - 8pm-10pmBU Financial Aid: Summer Term HUB CoursesFinancial aid may be available to BU need-based scholarship recipients for certain HUB courses in summer 2025, including this one. For more information, please contact BU Financial Assistance at 617-353-2965 or finaid@bu.edu. Check out Summer 2025 HUB Course Scholarship eligibility requirements to see if you qualify.
For information about technology requirements for online courses at Boston University, see bu.edu/online/online-learning/technology. BU Virtual can be reached at buvirtual@bu.edu or 617-358-1960 for additional information. -
Introduction to Computer Science 2
CAS CS 112
Undergraduate Prerequisites : (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. Students must register for two sections: lecture and laboratory. Carries MCS divisional credit in CAS. Effective Fall 2018, this course fulfills a single unit in each of the following BU Hub areas: Quantitative Reasoning II, Creativity/Innovation, Critical Thinking. 4 cr. Tuition: $3260
Summer 1 (May 20-June 27)
A1 (LEC) Mon./Tues./Wed. 10 am-12:30 pm Add & Drop DatesLocation: CDS 364 ... Open SeatsChristine Papadakis-KanarisMust register for Lec (A1) & Lab (A2)A2 (LAB) Thurs. 10 am-12:30 pm Add & Drop DatesLocation: CDS 364 ... Open SeatsChristine Papadakis-KanarisA3 (LEC) Mon./Tues./Wed. 1:30-4 pm Add & Drop DatesLocation: CDS 264 ... Open SeatsChristine Papadakis-KanarisMust register for Lec (A3) & Lab (A4)A4 (LAB) Thurs. 1:30-4 pm Add & Drop DatesLocation: CDS 264 ... Open SeatsChristine Papadakis-Kanaris -
Combinatoric Structures
CAS CS 131
Representation, analysis, techniques, and principles for manipulation of basic combinatoric structures used in computer science. Rigorous reasoning is emphasized. Effective Fall 2019, this course fulfills a single unit in each of the following BU Hub areas: Quantitative Reasoning II, Critical Thinking. 4 cr. Tuition: $3260
Summer 1 (May 13-June 27)
Online Course: Meets online every Tues & Thurs 4-5 pm for a live class. Nonstandard course datesSummer 2 (June 30-August 15)
Online Course: Meets online every Tues & Thurs 4-5 pm for a live class. Nonstandard course datesBU Financial Aid: Summer Term HUB CoursesFinancial aid may be available to BU need-based scholarship recipients for certain HUB courses in summer 2025, including this one. For more information, please contact BU Financial Assistance at 617-353-2965 or finaid@bu.edu. Check out Summer 2025 HUB Course Scholarship eligibility requirements to see if you qualify.
For information about technology requirements for online courses at Boston University, see bu.edu/online/online-learning/technology. BU Virtual can be reached at buvirtual@bu.edu or 617-358-1960 for additional information. -
Probability in Computing
CAS CS 237
Undergraduate Prerequisites: (CAS CS 131). 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. Students must register for two sections: lecture and laboratory. Effective Fall 2018, this course fulfills a single unit in each of the following BU Hub areas: Quantitative Reasoning II, Critical Thinking. 4 cr. Tuition: $3260
Summer 1 (May 20-June 27)
Must register for Lec (A1) & Lab (A2)A2 (LAB) Thurs. 1:30-4 pm Add & Drop DatesLocation: CDS 262 ... Open Seats -
Topics in Computer Science: CAS CS 391
Section A1 - Topic: Algorithms to Live By The course will be based on the algorithmic principles described in the popular science book “Algorithms to Live By: The Computer Science of Human Decisions” by Brian Christian and Tom Griffiths. We will cover concepts such as (1) optimal stopping (2) Explore vs. Exploit (3) Sorting and Searching (4) Caching and Memory (5) Game theory and Decision making (6) Handling overwhelm and staying sane. We will discuss the main algorithmic techniques and results related to these concepts and how we can apply them to everyday life.
Section A3- Topic: Competitive Programming Modern Compiler Construction in Python is a course that introduces students to some basics in the design and implementation of compilers. In this course, we teach the theory behind various components of a compiler as well as the programming techniques involved to put the theory into practice. In particular, we adopt a style of modern compiler construction that builds a compiler by stringing a sequence of translations sharing a common closure-based interpreter-like structure. The chosen programming language for implementation is Python 3. However, you can seek the instructor's approval to choose a functional programming language as your implementation language if you so wish.
Topics in Computer Science
CAS CS 391
Topic for summer 2025: Algorithms to Live By. The course will be based on the algorithmic principles described in the popular science book “Algorithms to Live By: The Computer Science of Human Decisions” by Brian Christian and Tom Griffiths. We will cover concepts such as (1) optimal stopping (2) Explore vs. Exploit (3) Sorting and Searching (4) Caching and Memory (5) Game theory and Decision making (6) Handling overwhelm and staying sane. We will discuss the main algorithmic techniques and results related to these concepts and how we can apply them to everyday life. 4 cr. Tuition: $3260
Summer 1 (May 20-June 27)
A1 (LEC) Mon./Tues./Wed. 10 am-12:30 pm Add & Drop DatesLocation: KCB 107 ... Open SeatsEvimaria TerziTopic: Algorithms to Live By. Must register for Lec (A1) and Lab (A2) -
Topics in Computer Science
CAS CS 391
Topic for summer 2025: Competitive Programming. Modern Compiler Construction in Python is a course that introduces students to some basics in the design and implementation of compilers. In this course, we teach the theory behind various components of a compiler as well as the programming techniques involved to put the theory into practice. In particular, we adopt a style of modern compiler construction that builds a compiler by stringing a sequence of translations sharing a common closure-based interpreter-like structure. The chosen programming language for implementation is Python 3. However, you can seek the instructor's approval to choose a functional programming language as your implementation language if you so wish. 4 cr. Tuition: $3260
Summer 1 (May 20-June 27)
Topic: Competitive Programming. Must register for Lec (A3) and Lab (A4) -
Topics in Computer Science: CAS CS 392
Section A1 - Topic: Algorithms for Competitive Programming Algorithms for Competitive Programming. Prerequisites: CS112 and CS131. Strong performance in CS 112 and CS 131 is expected. An assessment test might be administered in the first week to provide feedback on readiness to take this class. This course covers essential algorithms necessary to compete in the ACM International Collegiate Programming Contest (ICPC) and similar contests. Active involvement in weekly contests is a mandatory component of the course. Topics covered include standard library classes and data structures, competitive programming contest strategies, string manipulation, divide and conquer, dynamic programming, graph algorithms, number theory, computational geometry, and combinatorics.
Section B1 - Topic: Web Application Development. Web Application Development is a comprehensive course that equips students with practical skills to build dynamic and immersive web applications. Through hands-on exercises and projects, students learn to structure and style web pages using HTML and CSS, create interactive experiences with JavaScript, develop reusable components with React, interact with relational databases using decoupling tools such as ORM and DAO. Additionally, students explore the exciting world of Web-XR, enabling them to build virtual reality experiences with React-VR. By the end of the course, students have the necessary tools and knowledge to develop robust web applications with seamless integration of databases, interactive functionality, and immersive VR experiences. Students are expected to have basic knowledge of OOP principles, coding conventions, and I/O subsystems.
Topics in Computer Science
CAS CS 392
Topic for summer 2025: Algorithms for Competitive Programming. Prerequisites: CS112 and CS131. Strong performance in CS 112 and CS 131 is expected. An assessment test might be administered in the first week to provide feedback on readiness to take this class. This course covers essential algorithms necessary to compete in the ACM International Collegiate Programming Contest (ICPC) and similar contests. Active involvement in weekly contests is a mandatory component of the course. Topics covered include standard library classes and data structures, competitive programming contest strategies, string manipulation, divide and conquer, dynamic programming, graph algorithms, number theory, computational geometry, and combinatorics. 4 cr. Tuition: $3260
Summer 1 (May 20-June 27)
-
Topics in Computer Science
CAS CS 392
Topic for summer 2025: Web Application Development. Web Application Development is a comprehensive course that equips students with practical skills to build dynamic and immersive web applications. Through hands-on exercises and projects, students learn to structure and style web pages using HTML and CSS, create interactive experiences with JavaScript, develop reusable components with React, interact with relational databases using decoupling tools such as ORM and DAO. Additionally, students explore the exciting world of Web-XR, enabling them to build virtual reality experiences with React-VR. By the end of the course, students have the necessary tools and knowledge to develop robust web applications with seamless integration of databases, interactive functionality, and immersive VR experiences. Students are expected to have basic knowledge of OOP principles, coding conventions, and I/O subsystems. 4 cr. Tuition: $3260
Summer 2 (June 30-August 8)
B1 (IND) Mon./Tues./Wed./Thurs. 1-3 pm Add & Drop DatesLocation: MCS B37 ... Open SeatsTaymaz Davoodi -
Full-Stack Application Design and Development
CAS CS 412
Undergraduate Prerequisites: (CASCS111 & CASCS112 & CASCS411) or consent of instructor. - Prereq: (CAS CS 111 & CAS CS 112 & CAS CS 411) or consent of instructor. Introduction to design and development of full-stack web applications. Topics include asynchronous programming; non-relational data stores; use of APIs; serverless (cloudbased) applications; decoupled client/server architectures; performance; testing; packaging; and deployment. Examines current and proposed technology stacks. 4 cr. Tuition: $3260
Summer 1 (May 20-June 27)
College of Engineering
-
Introduction to Software Engineering
ENG EC 327
Undergraduate Prerequisites: (ENGEK125) - Introduction to software design, programming techniques, data structures, and software engineering principles. The course is structured bottom up, beginning with basic hardware followed by an understanding of machine language that controls the hardware and the assembly language that organizes that control. It proceeds through fundamental elements of functional programming languages, using C as the case example, and continues with the principles of object-oriented programming, as principally embodied in C but also its daughter languages Java, C#, and objective C. The course concludes with an introduction to elementary data structures and algorithmic analysis. Throughout, the course develops core competencies in software engineering, including programming style, optimization, debugging, compilation, and program management, utilizing a variety of Integrated Development Environments and operating systems. 4 cr. Tuition: $3260
Summer 1 (May 20-June 27)
A1 (IND) Mon./Tues./Wed./Thurs. 1-3 pm Add & Drop DatesLocation: PHO 117 ... Open SeatsJeffrey Carruthers