CS 210: Programming Languages

Professor: Clinton Jeffery Class Meets: MWF 9:30-10:20 in EP 214
Office: JEB 237 Office Hours: Tuesday/Friday 2-3pm, and by appointment
Phone: 208-885-4789 Web:
E-mail:jeffery@uidaho.edu   Prerequisite:   CS 121
paper copies for some of these may be available
Webber, "Modern Programming Languages: A Practical Introduction", any edition
Jeffery et al, Programming with Unicon (PDF at unicon.org/book/ub.pdf) and its graphics supplement:
Griswold et al, Graphics Programming in Icon (PDF at www.cs.arizona.edu/icon/ftp/doc/gb1up.pdf, paper in JEB 237)
Paxson, Lexical Analysis with Flex (HTML at flex.sourceforge.net/manual)
Donnelly, Bison (HTML at www.gnu.org/software/bison/manual, PDF, paper)
Text (recommended): Levine, Flex and Bison (O'Reilly)

Course Description and Goals

This course presents major features of programming languages, with primary emphasis on the role of particular language features in writing good software; programming language design alternatives; various programming paradigms embodied in languages, such as procedural, data-flow, functional and object-oriented languages.

Goals include: students learn various programming languages' strengths and weaknesses. They also learn basics of lexical analysis, parsing, semantic analysis, and error handling from a language implementer's point of view. After taking this course, students should understand several programming language paradigms, and have a feel for what kinds of problems are best solved in each language paradigm. They should have initial experience with formal languages, automata and grammars. Students will also have experience with lexical analyzers and parsers and with one or more non-procedural languages (e.g. Scheme, Lisp, Prolog, Icon, etc.)

Attendance and Grading

Attendance is required. The grading will be proportioned as follows: 50% for quizzes/homeworks, 25% for the midterm exam, 25% for the final exam. Expect on-line course content to be added, as we go. Check the course web page for updates at least once a week.

Quizzes, Exams, and Homeworks

We will have quizzes, exams, and homeworks. Quizzes will test your reading comprehension; exams will test your mastery of concepts; homeworks will allow you to demonstrate that you can put ideas into practice.

Policy Statements

Cheating in all forms is strictly forbidden, with severe penalties. For homeworks you are required to work alone unless the assignment states explicitly otherwise. You are encouraged to seek assistance from your instructor on-line or in person. You may discuss assignments with classmates, but Do Not Share Code.

University of Idaho Classroom Learning Civility Clause: In any environment in which people gather to learn, it is essential that all members feel as free and safe as possible in their participation. To this end, it is expected that everyone in this course will be treated with mutual respect and civility, with an understanding that all of us (students, instructors, professors, guests, and teaching assistants) will be respectful and civil to one another in discussion, in action, in teaching, and in learning. Should you feel our classroom interactions do not reflect an environment of civility and respect, you are encouraged to meet with your instructor during office hours to discuss your concern. Additional resources for expression of concern or requesting support include the Dean of Students office and staff (5-6757), the UI Counseling & Testing Center’s confidential services (5-6716), or the UI Office of Human Rights, Access, & Inclusion (5-4285).

Disability Support Services Reasonable Accommodations Statement: Reasonable accommodations are available for students who have documented temporary or permanent disabilities. All accommodations must be approved through Disability Support Services located in the Idaho Commons Building, Room 306 in order to notify your instructor(s) as soon as possible regarding accommodation(s) needed for the course.

phone: 885-6307 email: dss@uidaho.edu website: www.access.uidaho.edu