CSE 232: Programming Skills Workshop

Fall 2014

Introduction

This course is designed to prepare you to compete in major programming competitions such as the International Collegiate Programming Contest (ICPC) and the Google Code Jam. We'll cover some details on these specific contests as well as general strategies for programming competitions and fast, efficient programming and a review of important algorithms and data structures important to a competitive environment. We'll be paying particular attention to the 2014 Midwest Regional ICPC on November 1st, and we encourage students to participate.

Much more detail on the specifics of the course can be found in the course outline:
Course Outline (PDF)
Students of the class may also want to visit the Piazza course site for discussions, etc.

We'll be using the following online judges during the course:
Google Code Jam
Timus Online Judge
Sphere Online Judge

Course Meetings

Each class meeting will have lecture notes, homework, and potentially a video associated with it, which can be found below:

Week 1 - August 29 - Introduction

Pre-Class Questionnaire
Lecture Notes (PDF)
No lecture video available, sorry!
Homework (PDF)
Homework Solutions (PDF)

Sample Java Skeleton

Week 2 - September 5 - Data Structures

Lecture Notes (PDF)
Lecture Video (Youtube)
Homework (PDF)
Homework Solutions (PDF)

Week 3 - September 12 - Dynamic Programming and Memoization

Lecture Notes (PDF)
Lecture Video (Youtube)
Homework (PDF)
Homework Solutions (PDF)

Week 4 - September 19 - Strings

Lecture Notes (PDF)
No lecture video available, sorry!
Homework (PDF)
Homework Solutions (PDF)

Week 5 - September 26 - Binary Mathematics

Lecture Notes (PDF)
Lecture Video (Youtube)
Homework (PDF)
Homework Solutions (PDF)

Week 6 - October 3 - Introduction to Graph Theory

Lecture Notes (PDF)
Lecture Video (Youtube)
Homework (PDF)
Homework Solutions (PDF)

Week 7 - October 10 - More Graph Theory

Lecture Notes (PDF)
Lecture Video (Youtube)
Homework (PDF)
Homework Solutions (PDF)

Week 8 - October 24 - Computational Geometry

Lecture Notes (PDF)
Lecture Video (Youtube)
Homework (PDF)
Homework Solutions (PDF)

Week 9 - October 31 - Regional ICPC and Practice Competition

Competition Problems

Week 10 - November 7 - Probability and Combinatorics

Lecture Notes (PDF)
Homework (PDF)
Homework Solutions (PDF)

Week 11 - November 14 - Number Theory

Lecture Notes (PDF)
No homework this week! But take a look at Brave Balloonists and solve it correctly for extra credit.

Week 12 - November 21 - Random Algorithms

Lecture Notes (PDF)
Homework (PDF)

Week 13 - December 5 - Problem Analysis

Lecture Notes (PDF) No homework for the last week of class!