Skip to content

Latest commit

 

History

History
38 lines (30 loc) · 1.77 KB

File metadata and controls

38 lines (30 loc) · 1.77 KB

For teachers

Intended educational outcomes (this page will later be updated with references to the UK computer science GCSE curriculum, and maybe others):

  • Get comfortable reading code. The project will involve reading a Python web browser containing about 100 lines of code. It will be covered in comments and won't assume more than basic Python knowledge - but still, reading large amounts of code is a skill in itself. There will be games based on finding the right place to add small new features, which will be mostly about figuring out where to add them.
  • Understand encryption. We'll demonstrate, using a Python web browser and a Python web server, how unencrypted HTTP traffic can be intercepted, and how HTTPS can't.
  • Understand networking. We'll see the requests and responses flowing back and forth between the web browser and web server.
  • Understand security bugs. There are games to find some hidden security bugs in the web server.

Because this involves a web server and a web browser, these exercises can't be run on an online Python REPL. The kids will need a real computer capable of running Python locally, and they'll need to be able to install a few Python libraries using pip. You should carefully run through the setup requirements before deciding if this project is right for you.

You may find solutions at this page.

Timings

Assuming you take reasonable time (30 minutes) on various bits of introduction and talk, and 20 minutes for setup, here's how much of the exercises can be done with a capable GCSE class:

  • 3 hours: exercise 1a, 1b, 1c, 2a, 4a only.
  • 4 hours, if they're an especially capable group: add 2c
  • 4 hours: add 4b

  • Whole day: add the rest (note that exercise 3 can't be done on Windows).