Last Modified on: September 15th, 1997

Course Number: CS 3316
Enrollment: 147
Taught During: Winter 1997
Instructor: Prof. Shashi Shekhar
Homework assignments:
Recitation problems:
Lab expt descr.
Major Exams:
Lecture Notes: mani.ch1.html mani.ch2.html mani.ch3.html
mani.ch4.html mani.assorted.html

Question 1. Text used and your opinion on accuracy, clarity, level, range, etc.

Response: Text Used: Prentice Hall, 1995, V. Mani & J. Little, (i) The Schematics of Computation, ISBN 0-13-834284-9. (ii) Laboratory Manual: ISBN 0-13-834714-X.
The textbook provides introductory material on Procedures, recursion and iteration as algorithmic development techniques. Use of abstraction and modularity. The book has excellent labs with software engineering concepts. It provides adequate number of exercises, discussion questions and programming projects.

The book may have too little explanation for some of the scheme procedures given in chapter 9. Also it is short on advice on how students can develop recursive formulations for new problems.

Question 2. Portion of text covered

Response: (i) The Schematics of Computation : Chapters 1-4, 5.1-2 ; (ii) Laboratory Manual : Laboratories 1, 3, 5, 12, 14.

Question 3. Demonstrations used in lecture or recitation class. Value of these demonstrations.

Response: Recitations were used to demonstrate several aspects of Scheme programming in a Unix environment. These include using X windows, emacs, vi, script, and scheme interpreter; urefix expressions, conditionals, procedures, tracing procedures for debugging, tracing recursive procedures, lists, map, filter, reduce, etc. In addition, the recitation discussed and encouraged students to carry out the "Before the Lab." and "During the Labs." exercises from different labs in the Laboratory Manual.

Question 4. Which topics were most difficult for students?

Response: Recursion and Multiple recursion were conceptually difficult. Higher level procedures such as "reduce" caused a lot of discussion as its definitions in th textbook and in the scheme software were not consistent. Data abstraction and abstract data type triggered a lot of discussion and students were comforted by code-level grounding of these concepts as illutrated by the last question in the final exam. Space and time complexity using Big-Oh notation also led to many questions.

Question 5. Comment on suitability of student's background for this class.

Response: A simple quiz on the pre-requisite material (Calculus I) revealed that students were not adequately prepared for the class. One third of the class failed the quiz on basic concepts from "Calculus I" incluing functions, and limits. The performance of student on the quiz was a reliable predictor of their overall performance in Csci 3316.

Question 6. Respects (minor) in which your coverage and relative emphasis of topics differed from those defined by the approved course syllabus.

Response: Reduced the overlap with CS 3317 by eliminating discussion of environment model and multiple recursion. Emphasis on basic recursion and droid model was increased.

Question 7. Your recommendations as to changes in the course syllabus.

Response: Course description should explicitly state that this course is more than a Scheme programming course. Syllabus needs to be revised to clearly mark the boundary between this course and its sequal CS 3117 (Scheme II). It should focus on basic programming concepts and not discuss environment models, side-effects, multiway recursion.

Question 8. Other suggestions for making the lecture course more effective.

Response: Reduce the class size. Younger students are not very motivated and need closer interaction.

Question 9. Please describe the mode of instruction utilized in the recitation class. Please describe or attach the problems utilized.

Response: Recitations were used to provide detailed information related to laboratory exercises and conceptual topics. In addition, a set of discussion questions and exercises were assigned from the textbook for recitation sections. Practice exams. were used to motivate students to go beyond programming.

Question 10. Suggestion for making the recitations (if any) more effective.

Response: Use a structured laboratory sections.

Question 11. Suggestions for making the laboratory sessions (if any) more effective.

Response: Use well-structured labs., for example the ones given in the Laboratory Manual used this quarter.

Question 12. Constitution of grade (% from final, midquarter, homework, lab, etc.).

Response: There were four regular assignments. The weighting scheme used for grading is: Quiz - 10 percent, Midterm exam - 25 percent, Final exam - 35 percent, Assignments - 30 percent, Following were the two necessary conditions for passing this class: (i) submission of all assignments, (ii) scoring at least 50 percent on the final examination.

Question 14. Nature of exams (i.e. open book, crib sheet, etc.)

Response: Quiz, Mid-quarter and Final were designed to be open-book examinations. However, students were allowed to refer to the textbook and notes. Examination emphasize problem solving (60%), discussion questions (20%) and programming in Scheme (20%).

Question 15. Attachments: (See top of this page)
Homework assignments
Recitation problems
Lab experiment descriptions
Class notes distributed
Major quizzes & Final