Green sheet for CS 152: Programming Paradigms
San José State University, Fall 2006, Sections 5 & 6, 1500-1615 & 1730-1845 TTh, MH 422
instructor: Jeff Smith
Office hours & contact information:
My office hours for Fall 2006 will be MW 1330-1500 and TTh 1630-1730, or
by appointment. My office is now MH 218. Email is usually better for reaching me than the phone (408-924-5153), since I check
messages more frequently, and I'm often too busy with a student to answer the phone.
Catalog Description:
Programming language syntax and semantics. Data types and type checking. Scope, bindings, and environments. Functional and logic programming paradigms, and comparison to other paradigms. Extensive coverage of a functional language. Prerequisite: CS 49C (or equivalent knowledge of a language other than Java) and one of CS 151 or CmpE 135 or SE 135 (with a grade of "C-" or better), or instructor consent.
Course texts and topics:
The required text for this course is Programming Languages: Principles and Practice, 2nd Ed., by Ken Louden (ISBN 0-534-95341-7). It's a good idea to bring the text to class every day. There is no one text that covers everything you should know for this course. Some other books will be available in the library's course reserves. Some online references are accessible from the course web site.
Most of our time will be spent in Chapters 4, 5, 6, and 8, and the functional programming portion of Chapter 11. We will cover Chapters 1-3 briefly. We will cover portions of Chapters 7, 12, and 9 as time permits.
Grading system:
50% on programming assignments; 30% on 3 in-class tests; 20% on the final exam. All tests will be open book and open notes. Electrical & electronic devices are not permitted (except for preapproved hardship cases).
For each exam or assignment, numeric grades are given and intervals for each letter grade are assigned (usually 91.5% for A, 90% for A-, 88.5% for B+, 81.5% for B, 80 for B-, etc.). Your course grade will be determined by comparing the sum of your numeric grades to the sum of the intervals, except that I often give a higher than this to students who have just one poor grade, or who have been improving throughout the course. The sum of the points available on all tests and assignments will be 1000, plus 0 to 20 points of extra credit. My standards for the I grade, for makeup exams, and for extending assignment due dates are quite strict. At a minimum, I expect documentation of why you cannot complete the work in the expected time.
See the handout on assignments and the handount on documentation and style for my policies in these areas. These handouts are available from the class web site. These handouts, a tentative class calendar, and other useful documents are available on the class web site at
http://www.cs.sjsu.edu/faculty/smithj/classes/152
Learning outcomes
Upon completion of this course, students should be able to
- Have a basic knowledge of the history of programming languages
- Have a basic knowledge of the procedural, object-oriented, functional, and logic programming paradigms
- Understand the roles of interpreters, compilers, and virtual machines
- Critique the design of a programming language
- Read and produce context-free grammars
- Write recursive-descent parsers for simple languages, by hand or with a parser generator
- Understand variable scoping and lifetimes
- Write interpreters for simple languages that involve arithmetic expressions, bindings of values to names, and function calls
- Understand type systems
- Understand the implementation of procedure calls and stack frames
- Produce programs in a functional programming language in excess of 200 LOC
Academic integrity
Mandated SJSU academic integrity statement:
Your own commitment to learning, as evidenced by your enrollment at
San José State University, and the University's Academic Integrity
Policy requires you to be honest in all your academic course work.
Faculty members are required to report all infractions to the Office of
Judicial Affairs. The policy on academic integrity can be found at
http://sa.sjsu.edu/judicial_affairs/index.html.
This site has other useful information besides the policy. The most important consequences of this policy are that, unless unless I explicitly specify otherwise, work you turn in for this class should be entirely your own, and you should not share your work with anyone else. Some elaboration of this policy is available on the class web site.
Campus policy in compliance with the Americans with Disabilities Act
If you need course adaptations or accommodations because of a
disability, or if you need special arrangements in case the building
must be evacuated, please see me soon as possible. Presidential Directive
97-03 requires that students with disabilities register with DRC
to establish a record of their disability.
Evacuation
If MH 422 must be evacuated, please use the stairwell to your left as you exit the room. Do not attempt to use the elevators. Do bring your belongings, as you may not be able to reenter the building promptly. When you exit the stairwell, proceed to the Paseo de San Carlos (the grassy strip on the opposite site of MH from the parking garage).