Unix and the Command Line
There are many "flavors" of Unix. OS X is one; Linux (like on sun.iwu.edu) is another. They all share common commands and utilities, though, so a tutorial written for one is often applicable to the others. I've found some here that are specific to OS X and others for Linux, but you can see that they overlap quite a bit.
I would recommend going through all of them, actually. After you've done one, each later one will introduce a few new concepts or explain things slightly differently. As you learn, though, you'll become more and more comfortable with the shell, and the later tutorials will fly past, so it shouldn't take too long.
- Mac OS X UNIX Tutorial for Beginners (adapted for OS X from UNIX Tutorial for Beginners) — A great introduction to Unix, files, directories, and the wide variety of commands available on the command line. The Introduction and Tutorials One, Two, and Four are most useful for this class, but they all contain really useful tips.
- Mac OS X Unix Tutorial — An introduction to the terminal in OS X. Quite detailed. Parts 1-3 are the most relevant to what we will do in this class. [Link goes to an archived version of the site, as the original page itself appears to be gone.]
- Basic Command Line Utilities, Tips, & Commands — A quick cheat sheet with commands and tips for OS X. Quick reference, after you've already gone through a tutorial or two.
I've decided that the following resources are less useful than the others, but I will leave them here as extra references in case someone wants to explore them:
Binary
Python
The main site for Python is python.org. It's a fairly busy site, so many of the links below go straight to the important parts inside. (The Beginner's Guide is one place to start, with lots of links to tutorials, examples, etc., if you want to dig yourself.)
Tutorials
For these, I suggest you skim through the beginning of each and find one that suits you well. Use that as a second reference alongside the textbook. For any concept that is stumping you, search for it in the remaining guides as well for a fresh perspective that might clear things up.
- Instant Hacking — One long page that covers most of the topics in this course in a brief but understandable style.
- Programming Crash Course — "In this tutorial you will learn how to program a computer." Nicely done with lots of images.
- Getting Started with Python in IDLE — IDLE is one of the easiest ways to use Python under Windows, and it has some advantages over using the command line and a separate text editor in other operating systems, as well. This tutorial gets you up and running with writing Python programs using IDLE.
- One Day of IDLE Toying — Another introduction to using IDLE.
- How to Think Like a Computer Scientist; Learning with Python — The organization of this one makes it excellent for looking up topics we'll cover during the semester to get an alternative perspective on them. It gets into a lot of more advanced topics, but it's well-done overall, and the early chapters are perfectly suitable for this course.
Reference
- The Python Standard Library — This documents every function that is built-in to Python. Refer to this to figure out how a particular function works or to search for a function that you think might exist but don't know about yet.
- Style Guide for Python Code — For our purposes, the sections on "Code lay-out," "Whitespace in Expressions and Statements," and "Comments" are very important.
- Python Quick Reference — Very dense and technical, it's not great for learning the language, but it is a good reference later.
Processing
The main site for Processing is processing.org, where you can download Processing and check out what others have done with it. The Exhibition is worth checking out — people have done some amazing things with Processing, going well beyond simple drawings and animation.
OpenProcessing has a huge collection of Processing sketches (with code) shared by people from around the world. It's a community site where anyone can post their Processing project, and there are even collections from other courses taught using Processing worldwide.
Tutorials
- Processing Tutorials —
The first four will get you started on using Processing and creating graphics.
The "Objects" tutorial is a good introduction to objects.
The rest are well worth exploring to learn about any advanced topics that interest you.
Reference
- Processing Language Reference — Help for every function available in Processing.
- Comparing Python and Processing — Tables showing equivalent syntax in Python and the Processing language for a variety of common constructions. If you know how you would do something in Python, this will help translate that over to Processing.