🐍 A simple introduction to Python for everyone! https://python.unnamed.website
2025-11-16 21:20:30 -05:00
.gitignore Replace exocalc with exohub 2021-12-03 19:53:59 -06:00
0-prologue.ipynb Remove obsolete stuff, host using jupyterlite (which uses WASM and no server) instead of Binder 2025-11-16 21:15:55 -05:00
1-printing.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
2-variables.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
3-input.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
4-review.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
5-conditionals.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
6-for-loops.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
7-while-loops.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
8-review.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
9-lists.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
10-functions.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
11-libraries.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
12-review.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
13-rock-paper-scissors.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
14-tic-tac-toe.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
15-final-project.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00:00
16-epilogue.ipynb Update another stale link 2025-11-16 21:20:30 -05:00
A-bonus.ipynb Fix continuity errors with the LadueCS lore 2023-01-05 17:07:47 +00: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 Fix link in README 2025-11-16 21:16:52 -05:00
top-programming-languages.jpg Host images ourselves to avoid dead links 2022-07-16 14:40:57 -05:00

Intro to Python

🐍 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, visit python.unnamed.website. 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 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.

Building

Run uvx --with jupyterlite-pyodide-kernel --from jupyterlite-core[contents] jupyter-lite build --contents ..