Class Enrollment
Capacity permitting, any VT student may enroll in Competitive Learning I (CS 2144) - please register via HokieSpa.
In Fall 2025, taking this class meets the CS2104 requirement.
Enrollment in the Competitive Learning II (CS 4144) version requires the permission of the instructor. It is restricted to students who have already taken CS 2144 or who have previously participated at ICPC regionals.
Please read the Syllabus for detail.
In short, our goal this semester is to try to rebuild our programming team.
Brief FAQ
What's the ICPC programming team?
It's students preparing to participate in one of the contests sponsored by the ICPC, typically our regional Midatlantic contest that qualifies for the North American Championship. The regionals take place in the Fall.
What's the difference between the programming team and this class?
All activities (meetings, practices, Discord) are open to anyone. Formal teams (of 3 students) are selected only for the regionals through a qualification process (if required) that is again open to all. If the number of students interested exceeds the number of available slots, I will select students.
The class has a twofold purpose: first, to provide students with a strong interest in competitive programming an environment and some academic credit for pursuing their passion.
Second, however, we're also looking to serve students who are new to competitive programming, who want to see what it's all about, and who just generally want to extend their horizon and prepare for the coding challenges they may find in interviews for internships and jobs.
What's the time commitment for the class?
We do expect participation in the practices (some virtual/online, some in person) and class time. At a minimum, that's 7 hours each week, although competitive students may spend more.
What's the grading for the class?
Grading is not based on the performance in the practices, but is participation based. In addition, I expect everyone enrolled to contribute a problem to the HS contest and to make a serious effort to get their problem included. This will require some creativity as well as time investment, particularly during the last 4-5 weeks of the semester. You can see examples of problems students in past semester have created here.
Is this covering material from/requiring CS1114/2114/3114 or other courses?
Generally, there is some overlap. However, the algorithms covered in CP typically extend beyond those covered in those classes. We also place more emphasis on practical, working knowledge.