Announcements
-
Quiz 2 has been graded and returned via Gradescope
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 |
T |
1:15-2:30 |
SCI 240 |
Support Staff & Office Hours
Name | Office Hours | Location |
---|---|---|
Thu 2:00 PM - 4: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 | Sep 24 | Course Introduction, Input/Output
| ||
2 | Oct 01 | arrays, String Processing
| ||
3 | Oct 08 | Lists
| ||
Oct 15 | Fall Break | |||
4 | Oct 22 | Dictionaries
| ||
5 | Oct 29 | Graph Algorithms
| ||
6 | Nov 05 | Quiz 1 in class | Debugging
| |
7 | Nov 12 | Math Problems
| ||
8 | Nov 19 | Priority Queues
| ||
9 | Nov 26 | Quiz 2 in class | Prefix Sums | |
10 | Dec 03 | Binary Search the Answer | ||
11 | Dec 10 | Quiz 3 in class | slack week |