1
0
Fork
You've already forked Intro-to-Python
0
🐍 A simple introduction to Python for everyone!
Jupyter Notebook 100%
2022年07月20日 01:13:37 +02:00
.gitignore Replace exocalc with exohub 2021年12月03日 19:53:59 -06:00
0-prologue.ipynb Host images ourselves to avoid dead links 2022年07月16日 14:40:57 -05:00
1-printing.ipynb More interesting stories for lesson 1 2022年04月05日 12:59:55 -05:00
2-variables.ipynb Fix #12 : Lesson 2 typos 2022年07月19日 20:04:01 +02:00
3-input.ipynb Clarify run instruction for input() example 2022年07月20日 01:13:37 +02:00
4-review.ipynb Clean up lesson 4 2022年04月15日 21:53:47 -05:00
5-conditionals.ipynb Metadata being annoying 2022年05月03日 08:25:10 -05:00
6-for-loops.ipynb Finish reviewing lesson 6 2022年04月16日 12:04:49 -05:00
7-while-loops.ipynb Fix typos in lesson 7 2022年05月02日 16:37:58 -05:00
8-review.ipynb Finish lesson 8 2022年05月08日 16:13:36 -05:00
9-lists.ipynb Finished lesson 9 2022年05月01日 17:03:20 -05:00
10-functions.ipynb Fix typo in lesson 10 2022年05月08日 19:03:53 -05:00
11-libraries.ipynb Add a TL;DR for lesson 11 2022年05月02日 16:37:15 -05:00
12-review.ipynb Finish lesson 12 2022年05月08日 22:24:11 -05:00
13-rock-paper-scissors.ipynb Move Tic-tac-toe to lesson 14 and write a short Rock Paper Scissors lesson for 13 2022年05月08日 17:15:52 -05:00
14-tic-tac-toe.ipynb Clear all outputs 2022年05月08日 18:49:40 -05:00
15-final-project.ipynb Move Tic-tac-toe to lesson 14 and write a short Rock Paper Scissors lesson for 13 2022年05月08日 17:15:52 -05:00
16-epilogue.ipynb Add more emojis to the epilogue 2022年04月25日 19:10:21 -05:00
A-bonus.ipynb Add some more content to lesson A 2022年05月08日 22:50:48 -05:00
guido-van-rossum.jpg Host images ourselves to avoid dead links 2022年07月16日 14:40:57 -05:00
LICENSE Create LICENSE 2020年12月10日 21:08:49 -06:00
map-of-computer-science.jpg Host images ourselves to avoid dead links 2022年07月16日 14:40:57 -05:00
python-in-tech-industry.jpg Host images ourselves to avoid dead links 2022年07月16日 14:40:57 -05:00
README.md Update Binder links to point to Codeberg 2022年05月25日 19:46:20 +02:00
top-programming-languages.jpg Host images ourselves to avoid dead links 2022年07月16日 14:40:57 -05:00

Intro to Python

Binder

🐍 A simple introduction to Python for everyone!

Learning

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

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.

Contributing

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 master programmer that's also interested in sketchy things like becoming a professional spammer. Bobert is an absolute beginner and always writes code that doesn't work. Bella is just there when we need a third character.