Guided self-study lesson plan

What is this?

This lesson plan is aimed at students who are completely new to programming or perhaps had a very basic exposure.  You may have had a computer science class in high school, college, or attended a workshop.  Either way, this plan will start you from the very beginning and take you through the core foundations.  The materials as part of this plan are all free.

The programming language that will be taught is Python, but this can serve as a solid introduction if you plan to take up another language.  Most of the battles you will fight in these lessons will be fought in all other languages.  The advantage of starting with Python is that the language is clean, straight forward, and lacks a lot of the baggage that students of other languages get hung up on.  This means that you can go into those other languages after learning Python and generally only need to learn that language’s dialect.

How long will this take?

The amount of time it takes you to complete these lessons will vary heavily.  You will breeze through some and get stuck on others.  Everyone’s experiences will be unique, and this experience is completely normal.

Never feel bad about being hung up on something.  Take breaks from this content if you need to.  Sometimes it is helpful to have other topics you want to explore (such as regular expressions or XML) if you find that you are stuck or stick to death of Python.

What is the content?

This lesson plan will be based on three main resources:

Python for Informatics has always been my favorite book to recommend for beginners, particularly those coming from humanities or social science backgrounds.  However, I always felt it was a little light on the homework problems.

Codecademy is an amazing resource for interactive examples and problems that are essential for driving home points and committing syntax and patterns to muscle memory.  However, I found that the lessons were not always in a coherent order and lacking sort of that “textbook experience” that is necessary for beginners.

Python Batting Practice offers interactive practice problems, but lacks the instructional element of Codecademy.  I like the content of the tasks, because they are more abstract and difficult than Codecademy.  I have included these assignments as optional check points for students to work through for more advanced practice.  Many of the techniques I use today I learned by completing the Python Batting Practice problems.  But again, they can be hard.

I recommend that students make accounts for Codecademy and Python Batting Practice to keep track of their progress, but accounts are optional.

Are you ready?

This lesson plan does not cover the entirety of Python for Informatics because it focuses just on programming fundamentals.  These include the core data types, container structures, looping, and conditionals.  I’ve broken down the lessons into content areas.  This does not mean that you can or should conquer each content area in one sitting.  I recommend only working on this in one or two hour blocks at a time.

One final word about the content of these practice problems: some involve math.  I’ve looked at all the content listed in the practice exercises, and at most you’ll be dealing with coming up with averages and remembering exponents and square roots.  Basically, if you can calculate final grades for a semester, you know enough math to do these problems.  If you find yourself confused, just skip that problem and move on.


This lesson plan is designed for you to work through the readings and videos first and then the practice problems.  In some cases I’ve assigned practice problems to happen after certain sections inside the readings.

PfI Readings and Videos lists the readings in Python for Informatics and have links to the associated video lectures.  There are a few spots where I’ve split the chapters up between topics.  In these cases I’ve noted which section ranges to read in and where to start/stop in the videos.  Starting with the readings or video is purely personal choice.  PfI is a book available as a PDF, HTML, or a variety of other formats.  Download whichever one you prefer.

Practice Assignments lists the practice assignments for each topic.  Except for the end of chapter exercises in PfI, all assignments are within the Python track of Codecademy.  I’ve added notes, such as “After 2.9,” if you should complete exercises after certain sections of the book.  Otherwise presume that you should attempt them after completing the readings and videos.  For example: “After 2.9: Python Syntax” means that you should complete the Python Syntax exercise set on Codecademy after reading sections 2.1-2.9.  Assignments are listed roughly in the order that you should complete them.

There are various checkpoints along the way featuring problem sets from Python Batting Practice.  These are optional and included to help you develop more advanced skills in specific areas.  I have placed them in a sequence where you should have enough knowledge to complete them (the purpose of completing them is to gain the skills to do so).  These are meant for advanced practice, so don’t feel bad if you need to move on and try a problem again later.

Topic PfI Readings and Videos Practice Assignments
Introduction Chapter 1
Chapter 1 video
Basic syntax Chapter 2
Chapter 2 video
After 2.9: Python Syntax
After 2.9: Tip Calculator
Chapter 2 exercises
Conditionals and logical control Chapter 3
Chapter 3 video
After 3.2: exercises 1-10 of Conditionals & Control
After 3.6: exercises 11-15 of Conditionals & Control
Chapter 3 exercises
Functions Chapter 4
Chapter 4 video
Chapter 4 exercises
Taking a Vacation
Checkpoint! Warmup 1 exercises at Python Batting Practice
Lists Chapter 8: 8.1-8.7
Chapter 8 video
Stop at 6:20 (when he starts talking about range)
Exercises 1-7 of Python Lists and Dictionaries
Exam Statistics
Advanced Topics in Python: List Slicing
Advanced Topics in Python: List Comprehensions
Loops Chapter 5
Chapter 5 video
Chapter 8: 8.8 to the end
Chapter 8 video
Start at 6:20 (when he starts talking about range)
Exercises 1-13 of Loops
Chapter 5 exercises
Chapter 8 exercises
Checkpoint! Warmup 2 exercises at Python Batting Practice
List 1 exercises at Python Batting Practice
Advanced strings Chapter 6
Chapter 6 video
Strings & Console
Date and Time
Chapter 6 exercises
Pyg Latin
Checkpoint! Logic 1 exercises at Python Batting Practice
Logic 2 exercises at Python Batting Practice
Dictionaries Chapter 9
Chapter 9 video
Exercises 14-end of Loops
Chapter 9 exercises
A Day at the Supermarket
Student Becomes the Teacher
Advanced topics in Python: Iterators for Dictionaries
Tuples Chapter 10
Chapter 10 video
Chapter 10 exercises
Practice Makes Perfect (not related to Tuples, but good to keep up your practice)
Files Chapter 7
Chapter 7 video
File Input/Output
Chapter 7 exercises
Final checkpoint! String 2 exercises at Python Batting Practice
List 2 exercises at Python Batting Practice

Final notes

This is a living document!  Feel free to comment or send me feedback if you found lessons out of place or confusing.


8 thoughts on “Guided self-study lesson plan

  1. Very nicely done. I might borrow some of your recommended extra homework for my own classes. I will remix the remixer!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: