CIS505 Fall 2010

Syllabus for CIS505: Programming-Language Paradigms

Lecture: MWF 2:30pm, Nichols Hall, room 19

Torben Amtoft
219C Nichols Hall; 532-7917; tamtoft at ksu dot edu;
Office hours: Tuesday 1-3pm or by appointment
Xinming (Simon) Ou
316B Nichols Hall; 532-7941; xou at ksu dot edu;
Office hours: Friday 9-11 or by appointment
Teaching Assistant:
Vineet Tadakamalla
16 Nichols Hall; vineet at ksu dot edu;
Office hours: Thursday 2-4

Course web site (the two urls point to the same web page):

K-State Online: is used to report grades, and to upload material relevant for the course (assignments, model solutions, etc.)

Important: Ou will teach the first quarter of the course, Amtoft will teach the middle half, and Ou will finish. Check this page regularly for announcements, assignments, and notes.

Textbook: We will be using the online textbook by David Schmidt found at In addition, we will also be using Elements of ML Programming by Ullman, ML97 edition, Prentice Hall 1998.

Course Structure: We meet for lecture Mon-Wed-Fri.

There will be regular homeworks, usually programming exercises. Assignments that are late will not be graded, unless in case of documented medical or family emergencies.

Grading: Final grades are not based on strict percentage cutoffs but are ``curved'' by taking into account the difficulty of the exercises and class participation. Our approach to grading is expressed well by this piece by S.A. Miller.

Prerequisites: CIS300 and CIS301 or equivalent experience. Please see the instructors if you have questions. A computer is not required for the course; you may do the exercises in any of the CIS labs.

Objectives and Topics: The primary objectives are to understand the fundamental programming paradigms and to understand why it is important to understand them. Along the way, we will master parser and interpreter construction with an eye towards designing and implementing our own domain-specific languages.

Here is a summary of the topics to be covered:

  1. survey of software architectures and domain-specific languages
  2. survey of programming paradigms
  3. syntax and grammar notation; introduction to parser and interpreter construction
  4. characteristic semantic domains; control, data, and component structures
  5. the imperative programming paradigm; parser and interpreter construction in an imperative language
  6. the functional paradigm; parser and interpreter construction in a functional language
  7. the logical paradigm; query- and puzzle-solving in a logical language
  8. domain-specific modelling and programming languages; designing one's own domain-specific language
Class conduct: All student activities in the University, including this course, are governed by the Student Judicial Conduct Code as outlined in the Student Governing Association By Laws, Article VI, Section 3, number 2. Students who engage in behavior that disrupts the learning environment may be asked to leave the class.

Attendance policy: You are responsible for the material presented during the lectures. If you miss a lecture, consult a fellow student or the instructor to learn what you missed. Please keep in mind that by missing lectures, you also lose the opportunity to participate in the class which constitutes a portion of the final points.

Grievances: If you think that an instructor or the TA has made an oversight when grading your test or your homework, you are of course very welcome to ask for clarification. But complaints about judgment calls, like how much credit to give for a partially correct solution, are not encouraged---it is like arguing balls and strikes.

Collaboration policy: The homework exercises are meant to develop your skills. Most of the homeworks allow teaming up with a fellow student, although one can also choose not to team with another student without any extra credit. It is OK to discuss the assignments with other teams and to ask for help with the tricky bits, but what you submit must be mastered by you, and you must be able to reproduce it from scratch, whenever asked. That is, whatever you submit on paper must be something you yourself has learned completely, even though the submission is a joint work of two people. If you are in doubt about what is permissible, please ask an instructor.

Academic honesty: Kansas State University has an Honor System based on personal integrity, which is presumed to be sufficient assurance that, in academic matters, one's work is performed honestly and without unauthorized assistance. Undergraduate and graduate students, by registration, acknowledge the jurisdiction of the Honor System. The policies and procedures of the Honor System apply to all full and part-time students enrolled in undergraduate and graduate courses on-campus, off-campus, and via distance learning. The honor system website can be reached via the following URL: . A component vital to the Honor System is the inclusion of the Honor Pledge which applies to all assignments, examinations, or other course work undertaken by students. The Honor Pledge is implied, whether or not it is stated: "On my honor, as a student, I have neither given nor received unauthorized aid on this academic work." A grade of XF can result from a breach of academic honesty. The F indicates failure in the course; the X indicates the reason is an Honor Pledge violation.

Academic accommodation for students with disabilities: Any student with a disability who needs a classroom accommodation, access to technology or other academic assistance in this course should contact Disability Support Services ( and/or the instructor. DSS serves students with a wide range of disabilities including, but not limited to, physical disabilities, sensory impairments, learning disabilities, attention deficit disorder, depression, and anxiety. If you have a physical or learning disability that requires special accommodation, please notify the instructor(s) within the first two weeks of the course.

Notice of Copyright: During this course students are prohibited from selling notes to, or being paid for taking notes by, any person or commercial firm without the express written permission of the professors teaching this course.