Announcements
Course Info
Welcome to CS35X. This half-credit course will introduce fundamental ideas in algorithm engineering through the lens of competitive programming problems. We will study standard Abstract Data Types (ADTs) and their applications. We will study algorithms for solving problems including graph algorithms and math algorithms, and we will implement solutions using STL data strucutres in the C++ programming language.
This course is available only to current CS35 students. We expect this course to complement the CS35 curriculum.
Meeting Times:
Section | Days | Time | Room | Instructor |
---|---|---|---|---|
1 |
M |
1:05-2:35 |
SCI 240 |
Support Staff & Office Hours
Name | Office Hours | Location |
---|---|---|
Fri 4:00 PM - 5:00 PM (and by appt) |
SCI 260 |
Textbook
There is no required textbook for this course. Each week we will release lecture notes based on that week’s lecture.
Here are a few other useful online resources:
-
Competitive Programming, by Felix Halim.
-
Competitive Programmer’s Handbook, by Antii Laaksonen.
Course Goals
By the end of the course, we hope that you will have developed the following skills:
-
You will know how to solve basic competitive programming problems.
-
You will learn and understand how to use several standard data structures, including lists, stacks, queues, dictionaries, and priority queues.
-
You will have a deep understanding of how to process input and output in C++.
-
You will understand how to distinguish easy from hard problems quickly.
-
You will be able to apply standard algorithmic design techniques to solve computational problems of moderate difficulty. You will be able to write programs solving these problems from scratch.
Schedule
WEEK | DAY | ANNOUNCEMENTS | TOPIC & READING | NOTES & LABS |
1 | Feb 10 | Course Introduction, Input/Output
| ||
2 | Feb 17 | arrays, String Processing
| ||
3 | Feb 24 | Lists
| ||
4 | Mar 03 | Dictionaries
| lecture notes | |
Mar 10 | Spring Break | |||
5 | Mar 17 | Math Problems
| ||
6 | Mar 24 | Debugging
| ||
7 | Mar 31 | Graph Algorithms
| ||
8 | Apr 07 | Priority Queues
| ||
9 | Apr 14 | Prefix Sums | ||
10 | Apr 21 | Binary Search the Answer | ||
11 | Apr 28 | slack week |