CS 200: Applied Problem Solving

Course Overview

In this course, we will introduce tricks and algorithmic techniques that students are not typically exposed to in a conventional CS/CE program. Students will learn to approach problems similar to those seen in the ICPC (International Collegiate Programming Competition) or difficult interview questions and learn to implement their solutions in working code. We reserve the last few lectures of the semester for advanced topics; putting the learned theories to practice in real applications. This is a 1-credit course, graded on attendance/participation. Some knowledge of conventional algorithms and data-structures is recommended.
Instructor:   Po Hao Chen (Howie), bupochen [at] bu [dot] edu
Office Hours:   Monday after class or email to schedule
Co-Instructor:   Yida Wang (August), yidwang [at] bu [dot] edu
Office Hours:   Monday After Class
Class Times:   Mon 2:30-3:20 (Classroom: TBD)

Course website: https://www.howchenn.com/teaching/fall2022 . All materials will be posted here.

Piazza: https://piazza.com/bu/fall2022/cs200


While there is no strict prerequisites for this course, it is recommended that you have taken CS330 (Algorithms), CS112 (Data Structures). Otherwise, having a basic understanding of these also suffices


The course will be a series of lectures accompanied by live implementation of the theories. We encourage you to participate actively and ask questions during or after classes. It certainly makes the experience much more enjoyable for us (and hopefully for you!).

We are grading on attendences and "partcipation" in the final in-class programming contest. Absences can be excused, please just send us an email to explain your circumstances.

Course Outline

Tentative Schedule

Date Topics Reading/Reference Handouts/Slides
9/12 Introduction Syllabus Lec0
9/19 Basic C++ Lec1
9/26 Efficiency Lec2
10/3 Graph Reductions Lec3
10/11 Advanced Graph Algorithms Lec4
10/17 String Algorithm Lec5
10/24 Binary Search++ Lec6
10/31 Dynamic Programming Lec7
11/7 Distributed Programming Lec8
11/14 No Class N/A
11/21 Convex Optimization Lec9
11/28 Fast Fourier Transform
12/5 In-Class Programming Contest
12/12 Future Endeavors