Software Design Spring 2008 Today: 1) get your environment squared away 2) start on Homework 1 3) start reading the Olinux Manual (see below) and the textbook (see below) For next time: 1) read Chapters 1 and 2 of "How to think..." 2) start on Homework 0 (choose a backup book) 3) get a three-ring binder and put these notes into it. Your environment ---------------- There are a few decisions you should make today: 1) What operating system will you use? Python is a portable language, which means that it can run on Linux, Windows, MacOS and others. You _could_ do all of your work this semester in Windows, and I won't stop you, but I want to _strongly_ encourage you to work in Linux: a) If you are not familiar with Linux, this is a good chance to learn. b) Even if you never use Linux again, there are some ideas you will be exposed to that will make your life richer. c) Since I don't use Windows, I can provide less help for Linux-avoiders (although I will try, or at least help you get help). Having said that, I will warn you that the more comfortable you are with another OS, the more adjustment it will take to get used to Linux. To help with this adjustment, I have written a guide, called The Olinux Manual, which is available from http://wb/linux/ (wb stands for "whiteboard", which is an alternative to blackboard. from off campus, you need the full name, which is wb.olin.edu or ece.olin.edu) 2) What distribution of Linux will you use? Olinux is the local version of the Fedora distribution. It should already be on your laptop, but you might have to do some work to bring it up to date. If you use Olinux, you can get help from IT, especially Dave Carver. If you use Ubuntu, you can get some help from me. If you use another distribution, you are pretty much on your own. 3) What development environment will you use? In Linux, there are several good development environments for Python. a) emacs + the Python interpreter: This is the most basic environment, but it is the one I use and I am happy with it. Depending on what Linux distribution you are using, you might need to install some packages: emacs: a versatile text editor python-module: a plugin for emacs that tells it about Python pymacs: a plugin that provides an interface from emacs to Python b) IDLE is an interactive development environment for Python. Again, you might have to install it; the name of the package is (not surprisingly) idle. c) You are welcome to try out other development environments. One warning: if you use a text editor that doesn't know about Python, you might have trouble with whitespace. Python is picky about spaces and tabs. Editors that know about Python handle this for you; editors that don't can be a real pain. Install swampy -------------- Swampy is a suite of programs I wrote for this class, including TurtleWorld, which we will use for the first homework. You will need to download and install it. Instructions are at http://allendowney.com/swampy/install.html If you can run TurtleWorld, you are ready to start Homework 1. If you get to this point quickly, please consider helping some of your classmates get started. The first day will be pretty chaotic; all help will be appreciated! The book -------- I am in the process of revising "How to Think Like a Computer Scientist". The current version is called "How to Think like a (Python) Programmer". I am getting hardcopies printed, which I will distribute in a week or so. They will probably cost $10. In the meantime, please read the electronic copy at http://thinkpython.com This is a free, open-source book. It depends on contributions from readers, and that means you. If you find errors, or have suggestions for improvement, please send me email. If I make a change based on your comments, I will add your name to the contributor list (unless you tell me not to).