CS 345 Programming Languages (SPRING 2015)

Course Information

CS345 Spring 205
Time: MW 9:30-11:00am
Location: GDC 5.302
Unique: 51915
Web: http://www.cs.utexas.edu/~wcook/Courses/345


Instructor: William Cook
Email: wcook@cs.utexas.edu
Phone: (512) 471-9555
Office: GDC 5.824
Office Hours:
Tuesday 11-12am
Wednesday 1-2pm
(or by appointment)

Teaching Assistant:Vineet Keshari
Email: vkeshari@cs.utexas.edu
Office Hours:
Monday 11AM-12PM
Thursday 1PM-2PM
Office Hours Location:
TA station #5, GDC basement


Survey of significant concepts underlying modern programming languages, including syntax, semantics, functions, expressions, types, polymorphism, assignment, procedures, pointers, encapsulation, classes, and inheritance, with some discussion of implementation issues. Prominent programming paradigms, such as sequential, concurrent, object-oriented, functional, and logic programming. Illustrative examples drawn from a variety of languages.


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.


Anatomy of Programming Languages
A new book I'm writing for this 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 and Reading

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 assignments will be given in class and posted on the web site. Homeworks are generally due one week after they are assigned. 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. In some exercises, you will be asked to provide formal proofs; in all others, a solution's grade will be influenced strongly by its simplicity and clarity.

Programming Assignments

There will be a several programming assignments in Haskell assigned during the course.


Books and notes are excluded from tests and examinations.

Midterm exam


Final exam



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 instructor may lower the boundaries between the grades, but will not increase them. Grades will be posted on eGradebook which can be accessed via UT Direct.





Individual work





Closed book

Final exam


Closed book

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.


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


Read the department's academic policy page at http://www.cs.utexas.edu/users/ear/CodeOfConduct.html. Students who demonstrably violate the Academic Honesty policy will receive a failing grade in the class. We will be using the Moss system to screen submitted programs for plagiarism.