Announcements
-
Kattis Problems for week 9 released.
-
Jay, Timothy, and Joshua will be out the week of November 6 to attend the ICPC World Finals. Contest 2 will occur during the normal class time on Codeforces.
-
See external links for competitive programming courses at other schools.
Course Info
Welcome to CS93: Competitive Programming. This is a directed reading course that will introduce you to what competitive programming is and give you several tools and techniques for doing competitive programming well. Students will use either Python or C++ to solve competitive programming problems. Topics include: input/output; data structures including lists, stacks/queues, priority queues, and dictionaries, graph algorithms, dynamic programming, network flow, and other topics as time allows.
This course is designed for students of all levels who want to learn how to do well in competitive programming. It is also designed for students who are preparing for coding interviews.
Meeting Times:
We will meet Tuesdays 1:05 PM - 2:35 PM in Clothier 016.
Support Staff & Office Hours
Name | Office Hours | Location |
---|---|---|
TBA |
SCI 260 |
|
Jay Leeds |
TBA |
TBD |
Timothy Mou |
TBA |
TBD |
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.
-
You will have a deep understanding of how to process input and output in C++ and/or Python.
-
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.
Above all, the goal of this course is to instill a deep understanding of how to quickly understand computational problems, derive a solution, and code that solution efficiently.
Schedule
WEEK | DAY | ANNOUNCEMENTS | TOPIC | NOTES & PROBLEMS |
1 | Aug 30 | Course Introduction
| Kattis Problems: Codeforces week 1 problems | |
2 | Sep 06 | Drop/Add Ends (Sep 09) | Input/Output | Kattis Problems: Codeforces week 2 problems |
3 | Sep 13 | Lists | Kattis Problems: Codeforces week 3 problems | |
4 | Sep 20 | Dictionaries
| Kattis Problems: Codeforces week 4 problems | |
5 | Sep 27 | Contest 1 | ||
6 | Oct 04 | Debugging | ||
Oct 11 | Fall Break | |||
7 | Oct 18 | Stacks, Queues
| Kattis Problems: Codeforces week 7 problems | |
8 | Oct 25 | Priority Queues | Kattis Problems: Codeforces week 8 problems | |
9 | Nov 01 | Dynamic Programming | Kattis Problems: Codeforces week 9 problems | |
Nov 08 | ICPC World FInals | |||
10 | Nov 15 | Math Problems | ||
11 | Nov 22 | Network Flow | ||
12 | Nov 29 | TBA | ||
13 | Dec 06 | TBA |