This course is a hands-on exploration of several topics under the umbrella of Computer Science ranging from theoretical to applied. We will mix in mathematical concepts like discrete probability and graph theory alongside implementations of complex systems and projects in data analysis. The aim of the course is to help students think like Computer Scientists and become stronger at programming and at new types of mathematics. Although the course will occasionally use topics & tools from AI or Robotics, students should expect that the course material will emphasize skills fundamental to Computer Science as such.
The course will be delivered as a mixture of lecture and active lab time with TA support. Students are expected to have a firm handle on at least one programming language at the level of AP CS A or Penn’s CIS 1100. The class will primarily operate in Python—students will receive a quick primer in the language to get them up to speed. Lectures will be given assuming the levels of experience articulated in this description, and they will constitute a significant portion of most days of the program. Consequently, while students who are particularly advanced at programming will be able to work on optional extensions of the typical class assignments, this will require significant intrinsic self-motivation from the student as they decouple from the rest of the class.
Instructors: Harry Smith
Biography
Joel Ramirez
2025 Syllabus
Ella B, COMP 25
Lily C COMP 25