CS 200: Applied Problem Solving

Course Overview

In this course, we will introduce tricks and algorithmic techniques 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. This is a 1-credit P/F 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:   Email to schedule
Instructor:   Benjamin Li, liben002 [at] bu [dot] edu
Office Hours:   Friday After Class
Class Times:   Fri 2:30-3:20 (CAS 229)

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

Piazza: https://piazza.com/bu/spring2022/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

Course Outline

Tentative Schedule

Date Topics Reading/Reference Handouts/Slides
1/21 Introduction Syllabus
1/28 Basic C++
2/4 Efficiency
2/11 Basic Graph Reductions
2/18 Advanced Graph Algorithms
2/25 String Algorithm
3/4 Dynamic Programming
3/11 No Class (Spring Break)
3/18 Binary Search
3/25 Segment Tree
4/1 Distributed Algorithm
4/8 Convex Hull Optimization
4/15 Fast Fourier Transform
4/22 In-Class Programming Contest
4/29 Future Endeavors