Welcome!
Python 101 is a hands-on introductory programming course designed for beginners with a little prior matlab experience. Instead of traditional lectures, this course takes a project-based approach where students learn Python fundamentals by building a classic Snake game through a series of progressive labs.
Throughout the course, students will develop practical programming skills while creating a fully functional Snake game clone. Each lab introduces new Python concepts that directly contribute to different aspects of the game, making learning both engaging and immediately applicable.
- Master Python syntax, data types, and basic programming concepts
- Develop problem-solving skills through game development challenges
- Learn object-oriented programming by implementing game components
- Understand event handling and user input processing
- Gain experience with game loops and basic animation
- Practice debugging and testing techniques
The course consists of 1 introductory lesson and 8 hands-on labs, each building upon the previous one:
- Introduction session and Lab 1: Project Setup & Python Basics - Virtual environments, git, Variables, data types, and syntax
- Lab 2: Drawing & Movement - Setup the basic game loop and draw something to the screen
- Lab 3: User Input & Organization - Handling keyboard controls and creating a snake class
- Lab 4: Grabbing a snack - Random module, spawning food items, and scoring
- Lab 5: Game States - File I/O and implementing game over/restart functionality
- Lab 6: Refactoring & Enhancements - Refactoring code for better organization
By the end of this course, students will have created their own version of the classic Snake game while building a solid foundation in Python programming.
All code is expected to be tracked through git and submitted on github. We will be using git for version control and collaboration.
Labs will be graded according to the rubric at the top of each lab assignment. Any places that are areas for improvement will be left as comments on your pull requests. You'll be given the chance to correct any errors and resubmit your code up to one week after the comments were left on your pull request.
All labs are due 1 week after their introduction. For each additional day late, 5% of the total lab grade will be deducted. If you think you'll be submitting an assignment late for any reason, please let me know as soon as possible so we can work something out.
Each lab is worth 10 points for a total of 60 points. The final grade will be calculated as follows:
| Points | Letter Grade |
|---|---|
| 54-60 | A |
| 48-53 | B |
| 42-47 | C |
| 36-41 | D |
| 0-35 |