Home

This course is intended as preparation for the ACM programming teams and works for anyone who wants to improve their coding skill, especially for algorithmic problem-solving. You will also generally learn the Java programming language in here if you don't already know it as the ACM only allows C, C++, Java, Kotlin, and Python. (Note for 2020: I have no idea how ICPC is going to do things this fall, but we are going to act like there will be a competition.)

The work for the course comes in a number of forms.

    1. During class, we will look at problems from the ACM and have students work in teams to solve those problems. If you don't get a solution you will be asked to work on it over the following week to show the next class.

    2. I want everyone to participate in online Algorithms competitions during the semester. These can include TopCoder, HackerRank, CodeForces, or LeetCode. For a site like this to work, I have to be able to see what you have done, based on your login ID.

    3. Many people will travel to the competition on ??? (Maybe?) which can substitute for two online matches.

    4. After the ACM competition, we will begin work on writing problems for the spring High School competition which you should contribute to.

I will expect you to participate (#1 and #4) every week. You should do four online matches (#2). If you travel to the competition (#3), that will count as two. The online matches need to be completed by the date of the competition.