ICS 33 Summer 2013
Assignment #0: The ICS 33 Development Environment

To be completed by the end of lab on Thursday, June 27

This assignment is to be done only if you plan to use your own machine for at least some of your work this quarter


Introduction

It is very common in real-world software development jobs to be given, at the outset of a new job, a list of tools that you will be required to use. Flexibility is great, and it's nice to be able to choose one's own toolset, but, unfortunately, many software tools introduce constraints on how a program can be written, how its components can be arranged, what functions can be called, what documentation can be written and how, what additional software it can be combined with, how it can be "built" to be distributed to end users, and so on. So, like it or not, real-world software development usually requires at least some of the tools to be set in stone and used by all members of a team, even if not all members have the same preferences; this is simply a reality that software developers have to face.

Since we will be poking our heads into a fair number of darker "real-world" corners in this course, it becomes necessary for us to agree on the set of development tools that we'll use. Not only will it be important to agree on the right tools, but it will be important to agree to use the right versions of those tools, as each differs in not-insignificant ways. This assignment discusses those tools, provides instructions on how to install and configure them on your own machines, and how to use them either on your own machines or on the machines in the ICS labs.


A note if you've taken ICS 32 recently

If you've taken ICS 32 recently, you'll notice that the instructions here are essentially identical to those you followed in a corresponding assignment in that course. The only difference here is the version of Python, which is the newly-released Python 3.3.2. You'll want to be sure you upgrade to the latest version, though much of the rest of what you did to set things up will be the same as it was previously.


The ICS 33 development environment

The development environment for this course may seem quite familiar if you took ICS 31 or ICS 32 recently. As a standard, we will use the IDLE environment that is included with Python. However, we will be using a particular version of Python (3.3.2) and certain configuration that was less important previously will become more important to us this quarter. So rather than installing the tools yourself, I'd like each of you to follow these instructions, even if you think there is a better way to do it; this way, everyone is on an equal footing, and later needs you may not be aware of — when, for example, we start installing and using third-party libraries — will be met.

Since all of your work this quarter is being done individually, you can feel free to use a development environment other than IDLE (e.g., Eclipse with PyDev) if you prefer, though do use Python 3.3.2, so that you can be sure that you will be developing for the same version of Python that we'll be using to grade your work. In general, though, you'll be on your own when you use alternative tools, as we won't necessarily have experience with your particular choices.


What do I do next?

If you will be doing your work solely using machines in the ICS labs, you're done! The software you need is already installed and configured properly, so there's nothing you'll need to do for this assignment.

However, if you will be wanting to do at least some of your work on your own machine, what you do next depends on what operating system you're running on your machine.

Once you're done following the installation instructions for your chosen operating sytsem, you're ready to proceed with your work in this course!