🐍 A simple introduction to Python for everyone!
This course consists of 18 Jupyter notebooks. These notebooks are like regular paper notebooks, except they contain cells of code. To get started, fire up Binder. The layout is pretty simple: you can select any file on the left to open it. Start with 0-prologue.ipynb. To run code, click inside the cell and press the run button at the top. Amazing, isn't it?
Teaching beginners is really freaking hard. Seriously. But here are some tips:
-
Focus on guiding and helping students solve activities instead of lecturing endlessly to them. You don't learn by listening to someone talking about Python, but rather by writing lots of code. The students need plenty of chances to write code and do activities.
-
Teach one lesson per meeting. If you finish early, don't go on to the next lesson, except for the prologue and epilogue, since those two lessons are short.
-
Go slow. If you think you're going too fast and no one's understanding anything, you're going too fast. Don't skip anything and run the code for every example. The students should do every activity. However, if you don't finish the entire lesson, that's OK, and the students can do the rest for "homework".
-
Ask an insane amount of questions. Like, make it feel like an interrogation. Questions are the ultimate tool for figuring out how well students are understanding.
-
Call on people randomly! It's fun and great for testing students' understanding.
-
When working on activities and projects, don't give students solutions unless they're really stuck. Don't do the activites for them. And if the students aren't understanding anything and can't solve the activities, you're going too fast.
-
Walk around and look at your students' code to help them.
-
Avoid using anything not mentioned in the course since it confuses students. So don't use
print(1, 2)
,input('Hello')
,a,b = 1,2
,'My name is {}'.format('Billiam')
,for i in range(10)
, and so on.
Interested in helping improve this course? Awesome. Lessons 6 through A need to be reviewed. Our goal is for the course to be optionally self-studyable if there isn't a teacher, so it should have plenty of examples and activities. Here are some guidelines:
-
Each lesson must contain 10 activities and should take the length of a one-hour meeting.
-
The title uses a
#
heading and activites use##
headings. The names of activites should only have the first word and proper nouns capitalized. Add a new line between headings and paragraphs. -
Write as many examples as possible and keep the pace slow.
-
Add a TL;DR section at the end of the lesson.
-
All output should be cleared.
-
If you're not sure about a style detail, see 1-printing.ipynb for a great example.
Activities are really difficult to write. The general idea is that the coding part should be boring so it's easy enough for beginners, and you can spice things up with a good story around the problem. As for characters, use the Wender siblings, Billiam, Bobert, and Bella. Billiam is the generic good guy. Bobert's code never works, but he's interested in sketchy things like becoming a professional spammer. Bella is an expert programmer that somehow gets caught up in weird scenarios all the time. See the lore repo for more information about them.