ICS 313 -- Programming Language Theory

Homepage/Syllabus -- Fall 2007 -- Section 1 -- Writing Intensive

NOTE: For Section 2, go here (http://www2.hawaii.edu/~ics313/index2.html)

Quick Links: Messages , Section 2 messages , Schedule, Assignments, Exams and Grading, Emacs/Unix, Lisp, Prolog, Scripting/Perl.

See **NOTE** below for requirements specific to Writing Intensive Courses

Instructor/TA/Lectures/Texts


Lectures: Section 1 - M,W 1:30-2:45 pm., Holmes 248, Section 2 - ALN (online). Credits: 3.
Instructor: Prof. Nancy Reed, office: 303B POST, email: nreed@hawaii.edu , phone: 956-8498,
Office Hours: 3:00 - 4:00 pm Mondays, 4:00-5:00 pm Wednesdays, or by appointment.
Course email/assignments account: ics313@hawaii.edu
Teaching Assistant: John Wu ics313@hawaii.edu, or johnwu@hawaii.edu. office: POST 303-4 (cubicle), office hours: posted on the class account
Required Textbook: Section 1 -- Concepts of Programming Languages, 7th ed. Robert W. Sebesta, Addison-Wesley Publishing, 2005 (required).
Optional Reference Material: Unix and Perl -- Just Enough Unix, 5th Edition Paul K. Andersen McGraw Hill, 2006, ISBN: 0-07-295297-0. Strongly suggested unless you already have a great deal of experience with Unix, Emacs and Perl. Lisp -- Practical Common Lisp, Peter Seibel, Apress, 2005, ISBN: 1590592395, ANSI Common Lisp, Paul Graham, Prentice Hall, 1995, ISBN: 0-133708756, Common Lisp, A gentle introduction to symbolic computation , Touretzky [out of print, link to online copy here ] (or another common lisp textbook). Prolog -- Programming in Prolog, 4th edition, Clocksin & Mellish, Springer-Verlag, ISBN 3-540-58350-5. (Or another prolog textbook.) (Equivalent sources such as other textbooks, library books, etc. may be sufficient):

Prerequisites

Prerequisites inclulde a C or better in both ICS 212 - Program Structure and ICS 241 - Discrete Mathematics for Computer Science II.

Overview and Learning Objectives

ICS 313, Programming Language Theory, covers the syntax, control structures, data binding and scope of programming languages. It also introduces alternative language styles, including functional languages like Lisp, logic programming languages like Prolog, and scripting languages like PERL. Students will write programs in LISP, Prolog, and PERL during the course.

**NOTE** "Students must adequately complete all writing assignments to pass the course with a D grade or better. Students who do not complete all writing assignments will get a D- or an F and will not earn W Focus credit."

Before the end of the course, all students should:

Course Requirements

There are three components to your grade in this course - assignments, class participation and exams. There will be two written midterm examinations covering the lectures, material in the textbook and additional readings, that will each comprise 20% of your grade. There will be one final examination, comprising 30% of your grade. Completion of several programming assignments (6 or 7) will comprise 25% of your grade. Participation, in class or via email, by asking questions and answering questions will count 5% toward your grade.

Topical Outline

  1. Course Overview
  2. The Unix software development environment
  3. Introduction to programming language concepts
  4. History of programming languages
  5. Functional Programming languages
  6. Logic Programming Languages
  7. Scripting Languages
  8. Naming, scope, binding, Data types, Expressions, Control structures
  9. Subprograms and Implementing subprograms
  10. Exception Handling and Event Handling
A more detailed, weekly schedule can be found here.

KOKUA Program

If you feel you need accommodations because of the impact of a disability, please 1) contact the KOKUA Program (V/T) at 956-7511 or 956-7612 in room 013 of the QLCSS; 2) speak with me privately to discuss your specific needs. I will be happy to work with you and the KOKUA Program to meet your needs.

Academic Conduct

Assignments and exams are to be done individually (unless explicitly stated otherwise). Discussing approaches to programming assignments with classmates is fine. Copying answers or sharing code for assignments are not permitted. Refer to the student conduct code (http://www.hawaii.edu/student/conduct/) for details on the UH student conduct policy including a list of impermissible behavior

It is each student's responsibility to prevent others from seeing/copying their work, and to report incidents of cheating in every course.

Anyone caught cheating will be reported and risk expulsion from the university. Cheaters shortchange themselves by facing disciplinary action, making their future coursework more difficult, if not impossible, as well as getting others they copy from in trouble.

I hope you learn a lot and enjoy this course. Go back to the Top of this page

(c) N. E. Reed, 2005-2007