GithubHelp home page GithubHelp logo

bradfield / pybay2017 Goto Github PK

View Code? Open in Web Editor NEW
17.0 3.0 7.0 57 KB

Workshop materials for the workshop "Computer Science Crash Course for Python Hackers" at PyBay 2017

Python 3.20% Shell 0.07% C 96.73%

pybay2017's Introduction

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.

pybay2017's People

Contributors

ozan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.