Welcome to CSE 390p! Here's some high level information about the course:
What Is This Course?
This course is a primer on competition programming
. A "programming competition" is a timed event in which you (and your two teammates) are given some programming problems,
and you attempt to solve them within a time limit. The team who solves the most problems (ties are broken by timing) wins. This course will teach you how to approach
programming problems and get better at problem solving. As part of this, you will learn strategies, data structures, and algorithms that are useful both for programming
problems and in general.
Should I Take This Course?
This course is meant for both students who have never done a programming competition before and
those who have competed before. You don't necessarily have to
be interested in competing to join this course; we only require that you want to solve interesting programming problems. In fact, programming competition problems make
very good practice for technical interviews; the problems tend to be similar, but more difficult than something you might get in an interview.
What Does A Day Look Like?
Each session of this course will be a combination of the following:
- Short lectures on techniques, data structures, and/or algorithms
- Team problem solving of competition programming problems
- Solo problem solving of competition programming problems
Each session will be three hours, but you may leave early if you are satisfied with how many problems you have solved.
How Is This Course Graded?
Over the quarter, you will accumulate points
for various tasks such as:
- Solving problems in class
- Solving problems at home
- Participating in a programming competition
This course will be graded CR/NC. To get credit, you will either need to solve many easy problems or fewer difficult problems. We will clarify this grading scheme later, but
the bottom line is that if you go to class and attempt problems there, you will almost certainly receive credit for the course.