Previous Up Next

Resources



Textbook


The following textbook is required:
Peter Van Roy and Seif Haridi, Concepts, Techniques, and Models of Computer Programming, MIT Press, Cambridge, MA, 2004, ISBN 0-262-22069-5.

Languages




We'll study concepts that appear in many languages, and discuss some of the details of how those concepts are manifested in one or more of the languages C++, Haskell, Java, ML, Prolog, and Scheme. But the only language on which assignments will be directly based is Oz (exception: students taking the course for graduate credit might work directly with another language as part of their extra assignments).



General software tools





Subversion


From the Subversion project home page: ``The goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community.'' Subversion is fully documented in the Subversion Book, which is available in various electronic formats. The main part of the book needed for use in this course is ``Basic Work Cycle: Chapter 3. Guided Tour.''

Subversion is installed on CSLAB FreeBSD and Solaris machines. You should also install it on your personal laptop or PC.

[Added 1/25: The following problem has come up: With new installations of the Subversion client on Windows laptops, there seems to be a bug in the interaction between the client and the CS Lab Subversion server, which results in the message 500 Internal Server Error. CS Lab staff is looking into this but in the meantime you should be able to get around the problem by installing this older version: http://subversion.tigris.org/files/documents/15/23230/svn-1.2.0-setup.exe You can install this without first un-installing an existing version. (Remember, this is only for Windows platforms.)]

[Added 2/1: With svn-1.2.0, some people have encountered this error:

$ svn update svn: This client is too old to work with working copy '.'; please get a newer Subversion client

What apparently happened was that they had managed to check out the repository with svn version 1.4.something, then they had trouble with that and installed 1.2.0, but that doesn't work with the already checked out files. The workaround is simply to check out a new copy of the materials directory and do all future updates in it.]

On any file system in which you keep files related to the course, you should do an initial svn checkout and frequent svn updates of the checked out directories.

If you don't already have a local directory for course files, make one and cd into it. Then do
svn checkout https://svn.cs.rpi.edu/svn/csci4430s07/materials materials
You will be asked to authenticate. CONFUSION FACTOR: The popup window asks for your CS Lab username and password, which is what is normally used with CS department subversion access, but what you should actually provide in this case is your RCS username and password.

[Added 1/30: As mentioned in class last week, if you use have the same username for CS Lab and RCS and you use the same password for both, authentication fails. You must change the password for one or the other, and then use the RCS password.]

This should result in a subdirectory materials, with several subdirectories and files within them, being placed in your local course directory.

Thereafter, you can at any time get the latest file updates simply by entering your local materials directory and doing
svn update
(If you do this while cd'd into one of the subdirectories of materials, you'll only get updates for that subdirectory and any of its subdirectories.)

You can also view the materials files using a Web browser. Just click on the URL https://svn.cs.rpi.edu/svn/csci4430s07/materials here or enter it in the address bar. (You'll be asked to authenticate.)

[Added 2/5: Everyone in the class now has a private area of the course repository in which you can commit files. First, cd to where you want to have a local copy (not within your local copy of the materials area) and do a checkout

svn checkout https://svn.cs.rpi.edu/svn/csci4430s07/private/username myarea

where username is your RCS username. This will create a subdirectory called myarea (choose another name if you prefer). Next, cd into this directory and create a little text file, test.txt, containing, say, the line This is a test.. Then do

svn add test.txt

svn commit -m "Initial test of committing to private area."

You should see messages like

Sending test.txt
Transmitting file data .
Committed revision 54.

(except the revision number will be higher).

Next, for my benefit, please copy any file containing a photo of yourself into this directory, svn add it (Subversion will ignore it if you don't svn add it), and do another svn commit. Then do the same with one or more text files in which you tell me a little about yourself. (If you already have a CV you could use that, but I'll welcome any information or format you want to use.)

Your private/username directory in the repository is not entirely private; the TAs and I have read/write access to it. But each student has access (both read and write) only to his or her own private/username directory. ]

FreeBSD and Solaris machines


The Mozart Programming System is available on the CS Department's FreeBSD and Solaris lab machines. Remote access to these machines is available by logging into freebsd.remote.cs.rpi.edu or solaris.remote.cs.rpi.edu. You need to use a remote login program that supports the Secure Shell protocol (SSH) for logging in to lab equipment. If you don't already have one, see CS Lab Staff's Computing FAQ page. Once you are logged in, type oz & at the command prompt, which will start Emacs/Mozart in a window on your computer. This assumes your computer is set up to run X Windows; if you are running the Windows OS and that's not the case, install Cygwin/X (see the Cygwin Tools section).


Previous Up Next