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 and www.pythonlearn.com, by Dr. Charles Severance
- Codecademy’s Python track
- Python Batting Practice exercises
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.
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|
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
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
Advanced Topics in Python: List Slicing
Advanced Topics in Python: List Comprehensions
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
|Checkpoint!||Logic 1 exercises at Python Batting Practice
Logic 2 exercises at Python Batting Practice
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
Chapter 10 video
|Chapter 10 exercises
Practice Makes Perfect (not related to Tuples, but good to keep up your practice)
Chapter 7 video
Chapter 7 exercises
|Final checkpoint!||String 2 exercises at Python Batting Practice
List 2 exercises at Python Batting Practice
This is a living document! Feel free to comment or send me feedback if you found lessons out of place or confusing.