CS 345H Honors Programming Languages (Fall 2007)

Location

CS345H Fall 2007
Time: TTH 2:00-3:30P
Location: RAS 213
Unique: 56610
Web: http://www.cs.utexas.edu/~wcook/Courses/345H-F07
Newsgroup: news://news.cs.utexas.edu/utexas.class.cs345-cook (if you click on this link, it will set up your news reader, but you need to configure it to log in using your UTCS user id, if you are not on campus)

Staff

Instructor: William Cook
Email: wcook@cs.utexas.edu
Phone: (512) 471-9555
Office: ACES 5.244
Office Hours: TBD
(or by appointment)

Teaching Assistant:Ali Ibrahim
Email: aibrahim@cs.utexas.edu
Office Hours:
    M: 10:30 – 12
    W: 1:30 - 3
Office Hours Location: ENS 31NQ (thru 31 NR)

Overview

Detailed study of concepts underlying modern programming languages, including syntax, semantics, abstraction, types, polymorphism. Projects using Lex, Yacc and interpretation techniques.

Prerequisites

The following courses, with a grade of at least C in each: Computer Sciences 310(H), 336(H), and Mathematics 408D. If you have not taken these courses and earned a grade of 'C' or better in each, then you will be automatically dropped from this course. Please see a departmental advisor immediately if you do not satisfy the prerequisites. If you have taken this course before, you must have departmental permission to take it again.

Texts

Required

Textbook

Programming Languages: Principles and Paradigms, Second Edition
Allen B Tucker  and Robert Noonan 
ISBN-10:
0-07-286609-8
ISBN-13:
978-0-07-286609-4

Online

Course materials, including lecture slides and sample code, are available online at
http://highered.mcgraw-hill.com/sites/0072866098/

Optional

Text

The Bison Manual: Using the YACC-Compatible Parser Generator, 8th Edition
Charles Donnelly and Richard M. Stallman
GNU Press, 2003. URL: http://www.gnu.org/software/bison/manual

Papers

In addition, a few short journal articles may be distributed in class

Office Hours

Normal office hours are posted on the web site; temporary changes may be announced in class and posted on the web. You may also request an appointment in person, by telephone, or via e-mail. Feel free to send questions via email to the instructor or the TA. We will try to respond to all mail questions within 24 hours, or at most 48. Questions and responses that may benefit the entire class will be posted to the course web site.

Lectures

The lectures will generally follow the outline of Programming Languages: Principles and Paradigms. It is to your advantage to attend every lecture. Lecture presentations will be placed on the course web site after the lecture. Please read the chapter before the date listed on the schedule, so that you will have a better understanding of the lecture.

Homework

Homework assignments will be given in class and posted on the web site. It's OK for you to work on the homework exercises with other students, and a team of up to four students may hand in a joint paper. You must clearly state who worked on the homework: list all your names at the top. Problems such as printer failures and late buses are routine occurrences, and are not grounds for extending homework deadlines. To avoid problems, get an early start on your homework and allow for Murphy's Law. Homework solutions will be discussed in class.

The graders have been instructed that in grading homework papers and test answers, the burden of proof is on the student. That is, it's not the grader's job to prove an answer wrong, but the student's job to convince the grader that it's correct.

Quizzes

There will be occasional in-class quizzes that will be based on recent lectures, the assigned reading and homework assignments. Quiz days will not be announced in advance. If you miss a quiz, a grade of zero is assigned for that quiz. The lowest quiz grade and lowest homework grade will be dropped in computing your final homework and quiz average for the course. Questions about quiz grading must be made in person to the TA by the next class day after the quiz is returned.

Programming Projects

One of the goals of this course is to gain basic familiarity with a variety of language concepts and their manifestation in different languages. To achieve this goal, there will be a several moderately challenging programming assignments in various languages. Unless otherwise specified in the assignment, you are to work on the programming assignments on your own, without assistance from classmates, other people, or resources other than documentation of language features in books or online tutorials. Using Internet search engines to search for solutions to assignments is expressly forbidden. It is assumed that you have access to a departmental or personal UNIX™, Linux, MacOS X or Windows™ computer system for programming. Language systems used in this course are available on multiple platforms. Information for how to obtain language systems will be provided.

Exams

Books and notes are excluded from tests and examinations, except that you may bring one or two sheets of handwritten notes (i.e., one sheet of 8.5"×11" paper, written on one or both sides).

Midterm exam

TBD

One page (front and back) of notes allowed

Comprehensive Final exam

TBD

Two sheets of notes allowed

Grading

The grades will be based on the standard academic scale: A: 90-100; B: 80-89; C: 70-79; D: 60-69; F: 0-59. The boundaries between the grades may be lowered, but will not be increased. Grades will be posted on eGradebook which can be accessed via UT Direct.

Percentage

Notes

Homework + Quizzes

15%

Homework teams with single copy turned in, unless otherwise specified

Programs

30%

Individual work

Midterm

25%

One sheet of notes allowed

Final

25%

Two sheets of notes allowed

Class participation

5%

 

Requests for changes in any grades must be submitted in writing within one week after the paper is handed back. Delay in picking up a graded paper does not extend this deadline.

Notice

Any student with a documented disability (physical or cognitive) who requires academic accommodations should contact the Services for Students with Disabilities area of the Office of the Dean of Students at 471-6259 (voice) or 471-4641 (TTY for users who are deaf or hard of hearing) as soon as possible to request an official letter outlining authorized accommodations