James A. Foster

Back Home Up Next

CS 404: Derivational Programming (Spring 1997)

Welcome to CS 404, Derivational Programming. This page contains the following information related to this class:
bullet Announcements
bullet Objectives
bullet Schedule
bullet Class Roster
bullet Activities and grading
bullet Newsgroup: uidaho.class.cs.404.03.jaf
bullet Hours: MWF 1:30-2:20 in BEL 118
bullet Text
bullet Teaching staff
bullet Other information
bullet Exercises
bullet Special journal problems
bullet Information about examinations


The rules for playing the Knights and Knaves game.

There is another knights and knaves special journal assignment this week.

Course Objectives

This course will teach you a new approach to programming. Essentially, the idea is to treat a specification as an algebraic equation with the program as the unknown. Solve for the unknown and you get a program which is, by definition, correct.

From the preface of the text:

... an approach [to programming] in which programs can be developed reliably, with attention to the real issues. It is a practical approach based on methodically developing programs from their specficiations. Besides being practical, it is exciting. Many programs can be developed with relative ease. Once difficult problems can be solved by beginners. Elegant solutions bring great satisfaction.

This is our subject. We are interested in making programming an exciting topic!

This course uses the Moore method. The class is a cooperative laboratory for students to work together in teaching themselves the material. The instructor's function is as a resource and as an observer. The material is learned by students performing proofs on the board with the encouragement and criticism of all the class. It is vital that students take the responsibility for both their education and their behavior in the class.

Activities and Grading

In the Moore method, the main criteria for success in in-class participation. Students will be attempt to solve every unsolved problem in the text. They will present these solutions on the board during class.

There will be two examinations. The midterm will be an in-class written examination. The final will be a one hour oral examination. Note: you will need to schedule your oral final with us before finals week.

Students will keep a weekly journal of their activities for the course. They will record: how much time they spent on this class each day, what they found the hardest and easiest task for that week, why these tasks were easy and hard, solutions to extra problems which may be assigned from time to time. Students will turn in journal entries for a given week in class each Friday. Here is a typical journal entry template: in postscript, and in LaTeX.

Your final grade will be determined as follows:
What How much Details
Class participation 50% The number of board presentations
Journal 10% one point each for: time spent, easy/hard problems listed, easy/hard problem justified, extra problem work
Midterm 20% Written one hour, open book/notes exam
Final 20% Oral one hour open book/notes exam

Text and errata

Programming in the 1990s. E. Cohen, Springer-Verlag, 1990. (The errata sheet).

Teaching Staff

Jim Alves-Foss James A. Foster
Office Hours 9:00-10:00 MWTh 4:30-5:20 WF, 1:30-3:30 Th
Office JEB B30 JEB B24
email jimaf@cs.uidaho.edu foster@cs.uidaho.edu
Phone 208-885-7232 208-885-7062

Additional office hours are available by appointment.

Other Information

bullet An introduction to equational logic, the text A Logical Approach to Discrete Math, and similar things by David Gries.
bullet This course teaches one aspect of Formal Methods . Check out this link for a lot more information!


bullet Chapters 1 and 2
bullet Chapter 3
bullet Chapter 4
bullet Chapter 5 (postscript)
bullet Chapter 6 (postscript)
bullet Chapter 7 (postscript)
bullet Chapter 9 (postscript)
bullet Chapter 10 (postscript)
bullet Chapter 11 (postscript)
bullet Chapter 12 (postscript)

Journal Assignments

bullet Week 1, due in journal 20 January.
bullet Week 3, due in journal 3 February.
bullet Week 4, due in journal 10 February. (Some comments about the problems.)
bullet Week 6, due in journal 24 February. (Some comments about the problems.)
bullet Week 7, due in journal 3 March. (Some comments about the problems.)
bullet Week 8, due in journal 10 March.

Information about Exams

Here is the answer key for Exam One (in postscript). Here is information on the distribution of grades.

Last Updated 01/13/2003 15:56 -0800