Skip to content

Latest commit

 

History

History
36 lines (23 loc) · 2.7 KB

readme.md

File metadata and controls

36 lines (23 loc) · 2.7 KB

Computer Science Crash Course for Python Hackers

Hi! 👋 Thanks for joining this pre-conference workshop for PyBay 2017.

This will be a whirlwind tour through a number of important computer science topics, designed for Python hackers without a formal CS background. If you can hack out Python code without too much trouble, but don't always know how and why it works (or how you might make it run faster) then I'm sure you'll have learn a lot today and have a great time too!

As you may know, a formal undergraduate education in computer science typically takes 4 years, whereas we will have around 6 hours 😳. Even at Bradfield (where we run accelerated computer science courses for practicing software engineers) we still take a month on each topic. So today we'll just aim to give you an overall map of the terrain, and hopefully inspire you to learn much more!

I'd also like to point out that it's always to calibrate the difficulty of exercises to a large group, particularly before knowing all your backgrounds. For that reason, we've erred on the side of having too many exercises, with enough stretch goals that even the most experienced folk still have more than enough to work through. This could make you feel like you're falling behind! Please don't worry, my expectation is that we won't be able to cover all the content or complete all of the exercises. Everything should be described well enough that you can finish things off at home.

Optimistic structure for the day

If we do manage to get through everything, the day will look roughly like this:

  • Introductions and expectations
  • Discuss binary representations of data
  • Exercise 1 - convert a bitmap file to grayscale
  • Discuss algorithm analysis and linear data structures
  • Exercise 2 - implement an efficient queue
  • Discuss hashing and hashmaps
  • Exercise 3 - implement dict
  • Discuss the layered network model
  • Exercise 4 - parse a network packet
  • Discuss compiler/interpreter architecture
  • Exercise 5 - write a simple Python bytecode interpreter

We'll take short short breaks between each exercise, and make one of those a longer break for lunch, depending on progress.

Keeping in touch

If you'd like to keep working on the exercises after today, feel free to email questions to [email protected]. To keep in touch about future workshops and courses, join our weekly-ish newsletter, Bradfield Beeps.

License

All rights reserved. Exercises and other all other material here is property of the Bradfield School of Computer Science. Feel free to share this with other learners, but please don't incorporate any of it into a class or workshop without our permission.