CSC 270
Survey of Programming Languages

Instructor: Dr. Stephen Bloch

Fall, 2007

This course meets from 2:25-3:40 AM on Mondays and Wednesdays in Science 227.
The last time I taught this course was Fall 2006.

The rest of this page is copied from last year; many of the links don't work yet, but they will Real Soon Now :-)

Syllabus Calendar Grading Assignments PSP Examples Design recipes Daily Survey


I'd like everyone in the class to fill out the skills survey at the beginning of the semester, and again at the end.

Subsequently (ideally every few days), I'd like you to fill out the daily survey to help me keep track of what people are finding easy, and what people are having trouble with. This can also be used as an anonymous "suggestion box".

Getting Help

My office hours (in Alumnae Hall 113A; if I'm not there, look around the corner in 112) are TBA.



General Development Environments

I recommend Eclipse, a professional-level development environment which is available for free download and has "plug-ins" available to work with several different languages: Java, C, C++, Prolog, etc.

Another possibility is jGRASP, which is designed for first-year programmers and therefore has fewer "professional" bells and whistles, but provides a cute graphical annotation of the control flow of your program. It works best on Java, but it can support C, C++, and Ada as well.

C++ and C

I believe Microsoft Visual C++ is installed on the Windows machines in the lab, but I don't particularly like it. If you want to use Eclipse, you'll need to install a C/C++ compiler for Eclipse to use. On Windows, see these directions to get Eclipse working with the C and C++ compilers. On Mac and Unix, you've already got a C/C++ compiler, so you can use these simpler directions instead.


Most people start by downloading the Java Software Development Kit from Sun; make sure to get the Software Development Kit (SDK) rather than only the Java Runtime Environment (JRE). The Software Development Kit by itself provides a fast, reliable, command-line-driven Java compiler and runner, but most integrated development environments (such as Eclipse, BlueJ, JBuilder, jGRASP, NetBeans, DrJava, and DrScheme) know how to work with it. Sun makes it convenient to download and install NetBeans at the same time as you download and install the SDK, but you can use any of these development environments.


There are several Scheme implementations available, but the one most widely-used in education is DrScheme, freely downloadable for Windows, Macintosh, Unix, etc. One of its nice features is language levels: if you're a "Beginning Student", you'll get error messages for certain things that are technically legal in Scheme but which a beginning student doesn't need. If you decide you do need a certain feature, you can promote yourself to "Intermediate Student", "Advanced Student", etc. with a few mouse-clicks. The latest version of DrScheme, by the way, includes not only six pedagogical subsets of Scheme, but four subsets of Java and one of Algol 60....


For learning Prolog on Windows I recommend the Amzi Prolog + Logic Server. The latest release (7.4) of Amzi Prolog is actually an Eclipse plug-in; you can download it for free for Windows or Linux. If you've already got Eclipse, you can download only the 6MB Amzi! Core ; if not, you'll need the 40MB package which includes the Eclipse IDE as well. In either case, you'll need to have already installed Java.

I've installed the documentation for Amzi's Eclipse IDE and the language tutorial Adventure in Prolog on Adelphi's Web server; if you install Amzi Prolog on your own machine, you'll have your own local copies of these.

Partners for upcoming assignments

If you need a partner for the next homework, please e-mail me immediately and I'll try to match you up with someone.

Software support

I've set up some forms for entering and viewing PSP data. You may use these forms to record defects, time allotted, time spent, and program size, but I won't require this information. To use the forms successfully, make sure your browser accepts JavaScript and cookies. (For those with a moral opposition to cookies, I assure you that they're all "temporary" -- they disappear as soon as you quit the browser.)

Stephen Bloch /