|Course Number:||CS 3316|
|Taught During:||Winter 1997|
|Instructor:||Prof. Shashi Shekhar|
|Lab expt descr.||syllabus.ps|
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.
Response: (i) The Schematics of Computation : Chapters 1-4, 5.1-2 ; (ii) Laboratory Manual : Laboratories 1, 3, 5, 12, 14.
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.
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.
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.
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.
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.
Response: Reduce the class size. Younger students are not very motivated and need closer interaction.
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.
Response: Use a structured laboratory sections.
Response: Use well-structured labs., for example the ones given in the Laboratory Manual used this quarter.
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.
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%).
|Lab experiment descriptions|
|Class notes distributed|
|Major quizzes & Final|