Just came across this great resource about Program Arcade Games With Python And Pygame for the Simpson College Spring 2017 CMSC 150 Course, taught by Dr. Craven:
Before getting started...
1: Create a Custom Calculator
2: What is a Computer Language?
3: Quiz Games and If Statements
4: Guessing Games with Random Numbers and Loops
5: Introduction to Graphics
6: Back to Looping
7: Introduction to Lists
8: Introduction to Animation
9: Functions
10: Controllers and Graphics
11: Bitmapped Graphics and Sound
12: Introduction to Classes
13: Introduction to Sprites
14: Libraries and Modules
15: Searching
16: Array-Backed Grids
17: Sorting
18: Exceptions
19: Recursion
20: Formatting
Labs
Appendix A: Example code and programs
Appendix B: Sample Tests
Appendix C: Worksheets
Appendix D: Version Control
Appendix E: Wait, What Else Can We Do?
There is also this related Youtube playlist of the same course: