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. And don't skip the Typographical Conventions section! It is important for helping you understand the examples they give throughout the tutorials.
- 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.
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
These tutorials can help you get a head start on what we're going to cover in class, or you can use them as additional references to complement the textbook. For these, I suggest you skim through the beginning of each and find one that suits you well. For any concept that is stumping you, search for it in a tutorial for a fresh perspective that might clear things up.
- 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.
- How to Think Like a Computer Scientist: Interactive Edititon — This tutorial includes lots of interactive code blocks that let you write, modify, and run Python code right within the webpage itself. You should be able to find any topic of interest from the table of contents.
- Computer Science Circles — Also lets you run and modify Python code right within the webpage itself. Very nicely done.
- Hands-On Python Tutorial — Very detailed, can be downloaded as web pages or as a PDF in addition to being read online.
- Includes instructions on using IDLE, a program that lets you edit and run your Python code in the same place. It is one of the easier ways to use Python under Windows. IDLE has some advantages over using the command line and a separate text editor in other operating systems, as well.
Reference
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, making it a great place to learn from working examples, and there are even collections from other courses taught using Processing worldwide.
Tutorials
- Processing Tutorials —
The first four under "Text Tutorials" will get you started on using Processing and creating graphics.
The "Objects" and "Interactivity" tutorials will be very relevant to what we do, and you can learn about other topics and techniques you might want to use in your programs from the others.
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.