From now on, we meet in APM 5218 instead of WHL 2114 (or APM 4218).
There is no final exam for this class; instead, a final project is required, a written report on which is due on the last day of this class. The class is small enough to be run in seminar style; therefore students will be responsible for presenting some material in the class, and homework will be discussed in class.
Please read the Integrity of Scholarship Agreement maintained by Scott Baden and the offical UCSD policies on Plagariasm; you are expected to abide by these rules.
In addition to the usual topics, this course will include some formal methods and a little on social and historical aspects. We consider what languages are, how they are used, what they mean, and how and why they differ, rather than focus exclusively on programming.
Note: Some links below point to pages that do not yet exist; these links will be gradually updated as the quarter progresses.
Grades will be based on your project, and your class presentation and homework. You must submit a detailed outline of your project by the end of the fourth week of classes; suggestions for some projects are given on the projects page.
Prerequesites for this class are CSE 130, CSE 100, CSE 20, CSE 12, and one of the basic programming courses. If you are not familiar with the discrete mathematics in CSE 20, you should review it; a good CSE 20 textbook is Discrete Mathematics with Applications, by Susanna Epp (Brooks/Cole 1999).
If you are not a CSE graduate student, you should fill out the form at www.cs.ucsd.edu/csehelp/request_help/class_acc.php to request a CSE student account; then give me the form.
If you find bugs in the lecture notes or textbooks, please send me email; I want to include a comprehensive bug list for the texts in the class notes.
You may wish to look at last year's version of this class, including its final exam and its midterm exam.
ML (Standard ML of New Jersey, version 110.0.6) is available on all CSE
Unix machines at
/net/cs/class/development/elkan/cse230/sml-110/bin/sml, which you
can either define as an alias for
sml, or else you can add the
path for its directory to the
PATH variable of your environment.
Binary for BinProlog 4.00 for Solaris machines (such as the CSE instructional machines beowulf, bintijua, kongo, or the machines in the APE lab) can be found at /net/cs/class/wi99/cse230/prolog/bp, and also as a backup, at /net/cat/disk1/prolog/bp; the latter directory also contains many other files, including some relevant to exercises, so that you don't have to do all the typing yourself. Some basic notes on using BinProlog 4.00 are at binpro.html, where you will also find some examples.
The programming language semantics code, including the number definition
ZZ, is collected in the file obj/ZZetc.obj.html, and without the html
wrappings in the file obj/ZZetc.obj.
OBJ3 binary is on the CSE network at /net/cs/class/wi99/cse230/obj on the machine butinja, and also at /net/cat/disk1/goguen/obj on cat, but the cat is an older slower machine, so please don't run it there. If you can't access the CSE local network, you can get binary for Sun machines, source code, and documentation at ftp://ftp.cs.ucsd.edu/pub/fac/goguen/obj3, and you can get the latest (June 2000) open source release, OBJ3 version 2.06, cleaned up from version 2.04 (from 1992), engineered by Joseph Kiniry and Sula Ma, and built and supported by Joseph Kiniry; this runs under GCL 2.2.2. The OBJ3 Survival Guide. should be consulted for help getting started, and of course the OBJ3 Manual (there is also a pdf version) provides many details, including the OBJ3 standard prelude, which is the code that provides the builtin modules; from this you should be able to guess what each builtin module does. All this information and more is also available via the OBJ homepage.
If you have troubles with OBJ3, an alternative is the BOBJ system, which has nearly all of OBJ3 as a sublanguage, with fewer bugs, several some more advanced features. You can get it running with
java -cp /net/cat/disk1/bobj0.9/bobj.jar bobj.BOBJfrom CSE unix machines on campus, and you can also download the system using the ftp link on the BOBJ homepage.