99 little bugs in the code
99 little bugs
1 bug fixed, run it again
100 little bugs in the code

ESC180 is an introductory computer programming course. The course is taught with the assumption that students have no prior experience in programming. Python will be the only programming language used for this course.
You’ll start by covering fundamental programming concepts, including functions, conditional statements, syntax, and loops. You’ll use these basic concepts to create simple programs, ultimately learn more advanced concepts such as Python data structures and recursion and be introduced to features of computers such as memory storage and time complexity. For assignments, you’ll be writing your own code for interesting applications, practicing the skills and theory from class.
For experienced programmers, much of this course will be repetition. For newer programmers with less experience, this course will require regular practice to build a new skill set.
Professor

Professor Michael Guerzhoy
Michael Guerzhoy (pronounced “GER-joy”, with a hard “g”, and with the “j” pronounced like the “s” in “measure”) is teaching both ESC180 and ESC190 this year. He graduated with an honours bachelor of science from the University of Toronto in computer science, mathematics, and statistics. He went on to earn a master’s degree in both computer science and statistics. Following this, Professor Guerzhoy remained at the University of Toronto to teach several courses, before moving to Princeton University where he worked as a lecturer in the Center for Statistics and Machine Learning. In 2021, he returned to U of T to teach computer science in Engineering Science.
Course Highlights
- Discovering Python is not a snake – it’s the programming language you’ll be using for this course.
- That eureka moment when your program works after you spend hours debugging it.
- Generating code that solves a big, real-life problem with very basic concepts.
- Figuring out how recursion works
- Participating in some programming competitions hosted by Prof. Guerzhoy!
Life of an ESC180 Student
Lectures
There are typically three hours of ESC180 lectures per week. There are no tutorials, so be sure to pay attention during lecture! The professor will explain programming concepts and go through example code. Ensure that you attend every lecture, because there will be multiple quizzes throughout the semester!
Practicals (Labs)
There are no tutorials for this course. ESC180 practicals are weekly 3-hour slots held in the Engineering Computing Facility (ECF) Labs. Here, you will work in pairs on assigned programming labs, getting feedback from TAs if needed.