This page will be removed on August 6th 2026. Please update your links to refer to https://esb.ics.hawaii.edu/2022fall.ics313/index.html instead.

Programming Language Theory, ICS 313

This page is http://www2.hawaii.edu/~esb/2022fall.ics313/

This page is subject to change without notice -- please reload it in your browser if an item that might affect you may have changed.

The lectures for this class are in Kuykendall 301 every Monday and Wednesday 10:30-11:45am.

Office hours and contact information for the instructor and the TA are available in the Resources on Laulima. Generally speaking, the instructor is responsible for the lectures and the exams, and the TA is responsible for everything else. The instructor assigns the homeworks and the TA grades them.


The following textbook is required: "Programming Language Pragmatics" (PLP), fourth edition. Michael L. Scott, Morgan Kaufmann Pub., 2015 (paperback), ISBN-10: 0124104096, ISBN-13: 978-0124104099. Note: we will not use the CD from the book. Any edition will contain most, if not all, of the relevant material, but the page references might be different. The electronic version (PDF) is fine.

Optional Reference Material:

Schedule

This schedule is subject to change.

Grading

This course has three exams (including the final exam) and a number of homework assignments.

Grades are assigned based on your performance on:

Grading will use the standard cutoffs of 97% (A+), 93% (A), 90% (A-), 87% (B+), 83% (B), 80% (B-), 77% (C+), 73% (C), 70% (C-), 67% (D+), 63% (D), 60% (D-). Note that you need a B or better in ICS 211 (83% or more) to take ICS 311.

The homeworks are graded by the Teaching Assistant (TA), the exams by the instructor. Any questions should be directed accordingly.

Organization

Unless stated otherwise, homeworks will be due on Fridays by 11:55pm. All homeworks must be turned in on time, that is, by 11:55pm Friday if the due date is Friday (you are more than welcome to turn in your assignment ahead of time). A delay of up to 24 hours is allowed, but with a 10%/day grade penalty (meaning if the full grade for an assignment is 83%, the same assignment will be given 73% if turned in 1 day late, 63% after 2 days, and so on).

Assignments are submitted through Laulima. Be sure to submit early in case there are technical problems.

Homework assignments and exams must be done individually unless otherwise specified. Any collaboration on assignments or exams will result in severe penalties (see below).

Every source file in every assignment should include a header describing the author of the code. Comments are strongly encouraged when appropriate. Summary comments at the beginning of a file should describe anything special about the code as well as ways of testing. The quality of your comments may contribute to your grade on the assignment.

You must test your code, and include in your submission both your test files and the corresponding output files. The quality of your tests may contribute to your grade on the assignment.

Do not submit binary files.

Your grade on an assignment may be affected if you fail to follow the instructions for completing and submitting the assignment (So, follow the instructions!).

It is to every student's advantage to turn in assignments as soon as possible, even if the assignment is not complete. This gives the possibility of obtaining at least partial credit for the work done.

Exams include programming problems.

Exams may be taken early, if requested at least one week before the scheduled time. Under no circumstances may an exam be taken late. If an exam is missed for a very good, well documented reason, the next exam will count twice as much, except for the final, in which case (i.e. with a good reason and proper documentation submitted well in advance of the grading deadline) an incomplete will be given.

Homeworks are posted on the web site no later than Friday each week and are due by 11:55pm on Friday the following week (7 days later). All assignments must be turned in on time.


To accomodate the potential for covid or other emergencies affecting academic performance,

Accomodations

If you feel you need reasonable accomodations because of the impact of a disability, please (1) contact the Kokua (Disability Access) Program at 956-7511 or in room 013 of the Queen Lili'uokalani Center for Student Services, and/or (2) speak privately with the instructor to discuss your specific needs. I will be happy to work with you and the Kokua program to meet your access needs related to your documented disability.

Cheating

In this course, students may not use material from any source whatsoever in completing their assignments. Code must be written by the student, not copied from the textbook or another book, the web, another student, or any other source. Any violation of this is considered cheating. Quizzes and assignments must be done individually, except for those homework assignments that explicitly allow teamwork.

Anything a student turns in must be entirely that student's own intellectual contribution. The instructor and TA may check homeworks using a specialized tool designed to detect cheating.

In general, cheating means presenting the work of somebody else as one's own, or providing one's work to somebody else to help them cheat.

No Cheating Policy: any cheating will result in a grade of 0 for the assignment or quiz the first three times it is detected, and a grade of F for the entire course for any subsequent instance. Any instance of cheating will also be recorded in the student's ICS department file, and may be reported to the office of the Dean of Students, possibly resulting in disciplinary action against the student. The Student Conduct Code has more details on both impermissible behavior (see for example section IV.B.1 of the policies, Acts of dishonesty) and possible disciplinary sanctions.

Goals of this Course and Learning Objectives

From the UH catalog:
ICS 313 Programming Language Theory (3)

Syntax, semantics, control structures, variable binding and scopes, data and control abstractions. Programming in functional (LISP) and logic (Prolog) programming styles. Pre: Pre: 212, (311 or EE 367), and 314, or consent.

Student Learning Objectives for the Fall 2022 ICS 313 are:

Improvements

Any suggestions for improvement are welcome.