Code Critique
Spring 2006
Bennington College
Joe Holt
jholt@bennington.edu
M 10:30 - noon
VAPA Pod
In this two–credit course you’ll have a chance to workshop software that you’re working on. The software may be projects from another course or things you’re developing on your own, or a mix of the two. Are there better ways to do what you’re doing? What makes one version of an algorithm better than another? How do you keep your large program under control? When is it appropriate to spend time on optimization? How do you optimize for speed? We’ll look at your source code as it evolves over the course of the term and address these and other development issues. Intermediate programming experience required, most programming languages are acceptable.
Required Materials
There are no specific required materials for the course, however you should have on–hand the reference manuals for whatever programming language and technologies you’re using. For example, if you’re using C then you should have a copy of
The C Programming Language (2nd Edition) by Brian Kernighan and Dennis Ritchie. Bring these to class.
Requirements
You will need to bring to class a section of code to critique every week. Preferably the code will be a project that you’re working on. The code may be written in just about any programming language. For example, C, C++, Objective–C, Java, Perl, PHP, Actionscript (Flash), JavaScript and Visual Basic are acceptable, as well as graphical languages such as Max/MSP and pd (puredata). Layout languages such as HTML are not applicable. Check with me about other languages.
You may be asked to give the class a quick introduction to the language you're using.
It’s okay if you bring in outside code once in a while. Perhaps you saw some code online that you’d like to discuss. For most of the course, however, the code should be your own.
We’ll need to be able to view the code on an overhead projector. Put the code on a website or server that I can get to. Or if the code is on your laptop, you need to make sure ahead of time that your laptop can be connected to the projector.
I may assign reflective essays throughout the term. The essays will be short, typically around 256 words and shouldn’t take more than 32 minutes to write. You will post the essays in the class’s online journal by noon on the due date.
You will need to have daily access to the internet. I rely on email and the class’s online journal for communications and assignments, and you will be responsible for checking both regularly.