The main computers for the course will be the machines of the
Undergraduate CS Labs.
If you don’t have an account,
CLICK HERE.
Machines in the Hylan Lab (room 301) are available to all
students in the course.
Machines in the Majors Lab (CSB 633) are available only to CS majors.
Three of the lab machines (cycle1, cycle2, and
cycle3.csug.rochester.edu) are
dedicated to use as remote login servers for access across the campus
network.
If you need access to a Sun machine, you can connect to
harley or triumph.
For much of the work we will be doing an ssh terminal window
will suffice. If you need to use graphical tools you'll want to run
an X server on your machine. MacOS X includes an X implementation
(note that the two meanings of ‘X’ have nothing to do with
each other). X implementations are also available for Windows; see
for example Cygwin/X.
Class tools will reside in the directory /u/cs254/bin;
students should add this to their $path environment
variable (this requires modifying your .profile [ksh/bash]
or .cshrc [csh/tcsh] file; if you don’t know how, ask
the TA).
You are welcome to work on other machines if you like, but we do not
plan to assist in porting any courseware. Moreover all
assignments must run on the CSUG Linux machines, and will be graded
only on those machines.
Please be sure to change permissions on any directories in which you are doing class work, to make sure they aren’t readable by others. Again, if you don’t know how, ask the TA.
All students should read the 254 discussion group in Blackboard, through which class announcements will be made. Questions may be posted to the discussion group or sent directly to the instructor or the TA. Any answer deemed useful to the class as a whole will be posted (with identifying information removed) back to the discussion group.
Note that the discussion group is a formal, academic resource, maintained by the University for the benefit of the class as a whole. Please post only messages that the whole class might want to see. Note that all postings must conform to the department’s Undergraduate Laboratory Policy and the ResNet Acceptable Use Policy.
Note also that while posts to the discussion group can be edited as rich text within your browser, this feature does not work correctly in Safari. If you use a Mac (like me) and you need something other than normal-size, normal-weight Times Roman, you'll have to run FireFox to enter it. Sorry about that.
If you don’t expect to log into your CSUG account every day, you
should forward your mail to an account that you do read every
day. To forward an account under Linux, put the email address at
which you want to receive your mail into a single-line file named
The professor’s class notes are available
on-line.
Please note that they are provided on an “as-is” basis.
The text for this course is the second edition of
Programming Language Pragmatics, by Michael L. Scott.
Note that
the first edition will not suffice; too much has changed.
Copies are available from the River Campus bookstore or online.
Copies have also been placed on reserve at Carlson library.
The textbook includes a list of short-answer review questions
approximately every 10 pages. You are expected to answer these
questions and turn them in before coming to the class in which
the material will be covered (see the schedule). If you have questions about
any of them, ask the instructor or
TA.
A growing number of programming language resources are available on the
Internet.
Two excellent starting points for searches are the
Google
and
Yahoo indices.
A few particularly nice resources include:
If you have suggestions to add to this list, please mail the
instructor.
Most of these texts are available from Carlson Library.
Most of them will be on reserve.
If you find one that isn’t on reserve, please don’t hog it
forever.
Also, please note that this list is far from exhaustive.
For references on any specific language, consult the bibliography in the
textbook, or see the professor.
CSC 254 is not a course you can coast through. It’s also
not a course with a whole lot of “hand-holding”. You
will need to take responsibility for your own success. Do
not wait until you’re drowning before you ask for
help.
Many of the programming assignments will require that you become an
expert user of certain tools, notably the GNU assembler and debugger.
These tools will be not be covered thoroughly in class. You are
expected to read the manuals and then attend TA office hours for
hands-on help.
.forward, and place this file in your home
directory.
Lecture Notes
Textbook
Resources on the Web
Supplemental texts
Getting Help
Past exams
