Instructors:
Adam Dingle (lecture)
Tomáš Bílý, Nese Günes, Jiří Šejnoha (tutorials)
This course is a fast-paced introduction to programming and basic data structures, with a strong emphasis on learning to write working code. It assumes no previous programming experience. The course uses the Python 3 programming language.
Throughout the course students will complete many programming exercises in Python, solving a wide variety of programming problems.
The weekly lecture for this class takes place every Monday from 9:00 - 10:30 in room S5.
There are three tutorial sessions:
every Monday from 14:50 – 16:20 in room SU2 (teacher: Tomáš Bílý)
every Tuesday from 16:30 – 18:00 in room SW2 (teacher: Nese Günes)
every Wednesday from 10:40 - 12:10 in room SW2 (teacher: Jiří Šejnoha)
Martin Koutecký and Ilia Zavidnyi will hold programming mentoring sessions every Thursday at 17:20 in room S11.
Adam Dingle will hold office hours every Friday from 15:30 – 16:30 in room S510.
This is a pass/fail course: you will not receive a numeric grade.
To pass this class, you must fulfill the following requirements by Friday, February 12, 2023 at the end of the exam period:
Complete a number of programming exercises through the semester. The tutorial teachers will assign these exercises weekly, and you can submit your solutions to the ReCodEx automated grading system. To pass, you will need to earn at least 70% of the total possible points. Any points that you earn over 85% (up to a maximum of 15%) will be applied as bonus points to your test score when you take the test.
Pass a written test at the end of the semester.
Write a program in Python as a semester project. Your program should accomplish something that is interesting, cool, or fun and can be 100-300 lines long, or longer if you like. Here are some project ideas. Please send your tutorial teacher a 1-2 paragraph project proposal by Sunday, December 4. A first working version of your project is due by Sunday, January 22 and a final version by Sunday, January 29.
Regularly attend the lectures and tutorials and participate in class.
Eric Matthes, Python Crash Course, 2nd Edition (No Starch Press, 2019)
Bill Lubanovic, Introducing Python, 2nd Edition (O'Reilly, 2019) (PDF available for purchase here)
John V. Guttag, Introduction to Computation and Programming Using Python, 3rd Edition (MIT Press, 2021)
This is a rough map of the ground we plan to cover in this class. (It will probably evolve as the semester goes on.)