CS 294 - Python Programming

This class will focus on skills and tools and techniques necessary to use Python for scientific programming.

Here is the syllabus. TL;DR Click on “Readings” and read the stuff. Then click on “Experiences” and do the stuff.

Here’s the calendar. Here are the class repos.

If you’re running VirtualBox with the Ubuntu image I provided, the sudo password is “cs294_fall2015” without the quotes.


What’s my grade?

If you haven’t talked to me about grades then that might be a good idea. DM me in Slack.

Code Reviews on Slack

Need code review points? Here’s how to make it happen:

You’re welcome to invite me to your code review, too – as we all know, I have no life – but it’s not required.

Grades Release Policy

The official policy of this class will be to publicly announce points earned for Experiences. If you’d like to opt out of this policy for any reason (or for no reason at all), just let me know and I’ll respect your wishes. As I mentioned in class, this is not about putting students on blast – it’s about ensuring accountability and consistency for me.

New Experiences Posted

There are currently points available for 8 different assignments. Click on “Experiences” at the top and scroll down for due dates and more info.

Mystery Assignment

EDIT: The following info was contained in an email I sent to the class on 9/3, but egregiously failed to add to the web page until 9/14.

  1. Mystery Assignment is due Friday, September 18.
  2. It consists of X steps to be repeated Y times, with ??? points to be awarded at various stages along the way. What you see below are instructions on getting started.

I. Find a Python project of interest on GitHub*. Clone and run the code from the command line. (No need to fork unless you just love forking.) Send me an email with four pieces of information:

  1. The URL to the repository
  2. Why you picked this project
  3. The command you ran
  4. The result of running the command

If you clone something and you can’t get it to run, don’t worry – it happens. Just delete it and try another project.

If you chose a library/module instead of a script/standalone program, instead try navigating into the repository you cloned and typing python -c "import <name_of_library>". (If you don’t know the difference you can email for help or just type stuff until something runs.)

*Here are some suggestions, but you should really search or browse and find something you like.


No class on Monday, September 7th. (It’s Labor Day.) The following Wednesday (9/9) and the Monday after (9/14) we’ll have conferences. Each student should sign up for one time slot, either on Wednesday or on Monday (not both). Here is a link to the signup sheet. You have to edit the document to sign up, which means being logged in with your UH account. LMK if that’s a pain.

Command Line Vine Contest

Someone mentioned animated gifs and vines in class. I’ll offer 1 point to anyone who submits one which demonstrates something you can do at the command line. It doesn’t have to be Python, but it can be. Inspired by this chrome plugin, here is mine. Best submission (to be decided by popular vote) gets three points. Deadline: Tuesday, September 15.

Blog Post Grades

Your first three blog posts aren’t due until Friday, 9/4, but I’ve graded most of what’s been submitted. Some of you have really pushed the boundaries of slackery; some of you got bonus points. To see examples of posts worth 1.5-2 points, take a look at this one or this one or maybe this one. Notice the presence of links, images, good organization, thoroughness, introspection and snark.

Vim for Powershell - (08/28/2015)

Anybody using the Windows Powershell command line can download Vim right here. Keep me posted on how it’s working out for you.

Welcome - (08/24/2015)

Thanks for signing up. Not to be a jerk or anything, but please note that modules 1-4 are ALL DUE by Friday, September 4th. That’s seven assignments and three blog posts in two weeks. Get in touch with me if you’re not clear on how to get started!