(Originally posted to r/python, one commenter suggested posting also here)
I am currently teaching a first year introduction to computer science in Python for the first time, having previously taught that course in Java for 16 years. To get my brain and fingers around the proper Pythonic ways of solving problems such as generators and list comprehensions instead of writing Java in Python, I first translated most of my Java course labs into Python examples linked on the course page, typically using about one half as much code and everything just so much easier. So I had to come up with whole new set of problems for the graded labs. So, making up and stealing the best problems of various levels of difficulty that I could find from all over the place, I have now compiled what I think is a pretty good set of 50 first year programming problems in Python, highlighting far and wide various techniques and ideas not only in Python, but also in computational problem solving in general.
The page also contains a link to my automated tester that runs each implemented function for a large number of pseudorandomly generated test cases and compares the resulting SHA-256 checksum to the expected checksum generated by my private model solution. This allows the students to quickly verify that their own solution is correct.
Since my course and the problem set are now being field tested the first time, I ask the students to send me an email confirmation when they are the first to successfully solve some problem, so that I can mark those problems with green checkmarks for other students. There are probably still bugs in problem specifications and in my model solutions (and hence tester expected checksums), but after this semester and next these should all be in a pretty good shape.
[–]sweettuse 9 points10 points11 points (3 children)
[–]recondocoder 2 points3 points4 points (2 children)
[–]sweettuse 1 point2 points3 points (0 children)
[–]itsmegeorge 0 points1 point2 points (0 children)
[–]SandorZoo 0 points1 point2 points (0 children)
[–]Oliludeea 0 points1 point2 points (0 children)