Most of the coding problem collections that you can find online tend to feature nine garbage problems for every decent problem. This is not one of those collections. This problem collection features only educational and interesting problems that have actual value and are not made-up make-work nonsense. I am ready to stand fully behind every problem with this claim, ready to be judged by any of these problems by my worst enemy. Every problem here comes with my personal guarantee of being worthwhile, educational, fun and interesting for learners of all levels.
Beginner Python coders can watch the video Solving 109 Python Problems for CCPS 109 on YouTube for a demonstration of how to solve these problems and use the automated tester.
This collection features Python problems suitable for university level computer science majors from the first freshman introductory course all the way to senior level courses on algorithms, as taught by Ilkka Kokkarinen for the Chang School of Continuing Education, Toronto Metropolitan University, Toronto, Canada. The lecture material and example Python programs of that introductory Python course are also freely available in the GitHub repository ikokkari/PythonExamples.
The specifications for all these lab problems are collected in the file 109 Python Problems.pdf. Another set of problems was collected to the document Additional Python Problems.pdf, currently holding another 123 problems in addition to the original problem collection. A third set is currently being collected to the ongoing document Third Python Problem Collection.pdf All three collections use the same automated tester script tester109.py to verify the correctness of student solutions.
These problems are suitable for students who have already completed some introductory collection of finger practice exercises on Python language basics, such as CodingBat Python. The author also has a similar collection of Java problems suitable for a second course on object oriented programming in Java and the first course on data structures and algorithms. Everyone teaching or learning Python is welcome to use, adapt and distribute these problems and the associated acceptance tester for their own purposes as they see fit.
A bounty for each bonus problem is available to the first person to solve that problem. The file bounty.md contains more information.
Obfuscated model solutions are available in the file obfuscated.txt, to give students the idea of the length and general complexity of the instructor's private solutions.
The lab specification document and the automated tester software tester109.py are released under the GNU General Public License v3, with no warranties implied by the author.
Wordlist words_sorted.txt
adapted from dwyl/english-words.
The author welcomes feedback by email at [email protected]
from computer science instructors who use these problems in their courses. There is room for all races on Earth to live, prosper and get strong at coding by solving the 109 Python Problems.