Start of topic | Skip to actions
Online Book WebCT (for quizzes) HW Guide HW Checklist HW Grading Journal Guide Discussion Archive

COMP 210F06: Principles of Computing & Programming (Fall 2006)

Instructor: Walid Taha Staff: Nathan Tallent, Dan Smith, Gregory Malecha, Matt Wilson, Jen Gillenwater, Chris Warrington
Lectures: Duncan Hall (DH) 1064 Time: MWF 10:00-10:50 am
Labs: Symonds II Times: W 2:30-3:50pm, W 7:00-8:20pm, Th 2:30-3:50 pm (Please sign up!)

Office Hours

MON TUE WED THU FRI SAT SUN
11:00-11:55 am 4:00-5:30 pm 11:00-11:55 am 1:00-2:00 pm 12:45-2:15 pm 11:00-11:55 am 2:00-4:00 pm 2:00-4:00 pm 9:00-11:00 pm
Walid Matt Walid Nathan Dan Walid Jen Chris Seth
DH 3103 Hanzen Upper Commons DH 3103 DH 3063 DH 3109 DH 3103 Symonds II Symonds II Symonds II

Introduction

This course is an introduction to key concepts in programming and computing. The focus is on systematic methods for understanding problems and devising computations that solve these problems correctly.

No prior programming experience is assumed, so non-majors are welcome in the course. We expect students to be comfortable with high-school math. Success in the course requires curiosity about the intellectual core of computer science, self-discipline, and an interest in working with other people on increasingly larger projects.

Topics covered include functional programming, design patterns/recipes, data structures, procedural abstraction, reduction rules, use of control and state, and basic concepts in object-oriented programming. Students will learn practical skills required to write and modify programs. Labs and assignments use the Scheme programming language.

Here is a nice article about the basic approach taken in this course.

Required Text: How to Design Programs, Felleisen et al. QA76.6 .H697 2001 (Online).

DrScheme: Please download and use Version 352. To avoid compatability problems, please make sure you use this exact version.

Course Schedule

Please note that any future dates may change, and these are only guidelines.

Also, future homeworks and slides contain materials from previous years. The new material will be provided before the corresponding class.

# Day Date Topic Reading Lectures Problems Due Lab
1 Mon Aug 28 Introduction     HW 0 W Aug 28  
2 Wed Aug 30 Numbers, expressions, variables, function definitions, applications, and errors Ch 1+2, Ch 2 Notes L 2 HW 1 (Solutions) W Sep 6 Getting Started: DrScheme, Design Recipe
3 Fri Sep 1 Programs are Function plus Variable Definitions, Conditional Expressions and Functions, and Symbolic Data Ch 3, Ch 3 Notes L 3      
3+ Mon Sep 4 No class (Labor Day Recess) - - - - -
4 Wed Sep 6 Effects and Structures Ch 4, Ch 4 Notes, Ch 5, Ch 5 Notes, Ch 6, Ch 6 Notes L 4 HW 2 (Solutions) M Sep 11 Simple data and cond , Structures and Varieties
5 Fri Sep 8 Varieties of Data Ch 7 L 5      
6 Mon Sep 11 Syntax and Semantics of Beginner Scheme Ch 8, Ch 8 Notes L 6 HW 3 (Solutions) M Sep 18
7 Wed Sep 13 Lists, Recursive Types, and Functions that Process them Ch 9, Ch 9 Notes L 7     Lists
8 Fri Sep 15 More on Processing Lists Ch 10 L 8      
9 Mon Sep 18 Natural Numbers are a recursively-defineable subset of numbers Ch 11 L 9 HW 4 (Solutions) M Sep 25  
10 Wed Sep 20 Composing Functions, Revisited Ch 12, Ch 13, Ch 13 Notes L 10     Natural Numbers and Trees Lab
11 Fri Sep 22 More Self-referential Data Definitions Ch 14 L 11      
12 Mon Sep 25 Mutually Referential Data Definitions Ch 15 L 12 No HW    
12+ Wed Sep 27 First Exam (in class) Exam 1 Solution       Mutually Recursive Data Definitions Lab
13 Fri Sep 29 Development through Iterative Refinement Ch 16        
13+ Mon Oct 2 Exam 1 Solution     HW 5 (Solutions) M Oct 9  
14 Wed Oct 4 Processing Two Complex Pieces of Data Ch 17 L 14     local and Scope Lab
15 Fri Oct 6 Local definitions and Lexical Scope Ch 18, Ch 18 Notes L 15      
16 Mon Oct 9 Abstraction in functions and types Ch 19 L 16 HW 6 (Solutions) W Oct 18  
17 Wed Oct 11 Functions are Values Ch 20 L 17     Abstract Functions Lab
18 Fri Oct 13 Designing Abstractions from Examples Ch 21 L 18      
18+ Mon Oct 16 No class (Midterm Recess) - - - - -
19 Wed Oct 18 Designing Abstractions with First-Class Functions Ch 22 Old L 23 No HW   No lab this week
20 Fri Oct 20 Mathematical Examples Ch 23 Old L 24      
21* Mon Oct 23 Defining Functions on the Fly (Guest lecture: Dan Smith) Ch 24, Ch 24 Notes L 21      
22* Wed Oct 25 A New Form of Recursion (Guest lecture: Seth Fogarty) Ch 25 L 22 , Extras HW 7 (Solutions) M Oct 30 Consuming and Producing Functions Lab
23* Fri Oct 27 Designing Algorithms (Guest lecture: Seth Fogarty) Ch 26+27 L 23, Examples      
24 Mon Oct 30 Variations on a Theme Ch 27 L 24 HW 8 (Solutions) M Nov 6  
25 Wed Nov 1 Algorithms that Backtrack Ch 28 L 25     Generative Recursion Lab
26 Fri Nov 3 Vectors and the Cost of Computing Ch 29 L 26      
27 Mon Nov 6 Accumulators Ch 30-31 L 27 HW 9 (Solutions) M Nov 20  
28 Wed Nov 8 Memory for Functions and assignment to Variables Ch 34-35, Part VII Notes L 28     Accumulators on Trees & Vectors Lab
29 Fri Nov 10 Designing Functions with Memory and examples on Memory Usage Ch 36,37 L 29      
30 Mon Nov 13 The Final Syntax and Semantics Ch 38 L 30      
30+ Wed Nov 15 Second Exam (in class). Covers up to lecture 25.         set! Lab
31 Fri Nov 17 Encapsulation Ch 39 L 31      
32 Mon Nov 20 Mutable Structures Ch 40 L 32 HW 10 (Solutions) W Nov 29  
33 Wed Nov 22 Designing Functions that Change Structures Ch 41 L 33     No lab this week
33+ Fri Nov 24 No class (Thanksgiving Recess) - - - - -
34 Mon Nov 27 Cyclic Queues          
35 Wed Nov 29 Cyclic Queues     HW 11 (Solutions) F Dec 1 Destructive operations on lists and vectors Lab
36 Fri Dec 1 Equality Ch 42, 43 L 36 HW 12 (Solutions) M Dec 4    
37 Mon Dec 4 Per popular demand: Mathematical Logic   L 37      
38 Wed Dec 6 Review Ch 54       Arithmetic Imprecision Lab
39 Fri Dec 8 Review Ch 54 L 39, Old Final -    
  Fri Dec 15 Final Exam (9:00 a.m. to 12:00 p.m.)   L 40, Vector Reduction Rules      

Grading, Honor Code Policy, Processes and Procedures

Grading will be broken down approximately into homeworks (worth 40%), quizzes (worth 5%), exams (10% for first exam, and 20% for the second exam and the final), and a final project (worth 5%). It is important that your performance in each components be consistent.

Exams test your individual understanding and knowledge of the material. Collaboration during exams is not tolerated.

Mailing Lists:

  • (subscribe here):
    • This is where important announcments related to the class will be posted.
    • Students are required to sign up to this list.
    • You may use this list for open discussions relating to the course. Postings are expected to abide by standard Netiquette.
  • :
    • Any questions relating to the course can be sent to this list.
    • Specific questions about homework problems and grading can be directed here.

Questions

If you have a question about homework -- you're not sure what is expected for a given problem, you haven't received feedback from a previous assignment, or you don't understand or agree with the assessment of your work, for example -- you can raise the question with a TA in lab or on the (questions of general interest may alternately be raised on the ). If, after doing so, you don't feel that your concerns have been addressed, you may wish to contact Dr. Taha directly.

When addressing concerns about your grade, keep in mind that while you should certainly not be marked off for a correct solution, the exact amount of partial credit to award where your solution is not correct is inherently subjective. In this case, try to defer to your grader's judgement.

Homeworks:

Homeworks help you check your understanding of the material and prepare you for the exams. You are encouraged to discuss the homework problems with the instructors and staff. Help from other students, including Comp 210F06 graduates, is also encouraged (but should be cited, naturally), although that does not include giving or receiving complete answers. All homework partners are responsible for knowing all the submitted material. If you fail to understand the homework solutions, you won't succeed on the exams.

Homeworks will generally be handed out on Mondays, and will be due before class the following Monday.

You are expected to work in groups of two.

You may change partners during the semester.

Partners should work together on all aspects of the homework -- all students are expected to contribute equally. You and your partner should hand in exactly one solution.

Late homework will not be accepted without prior arrangement or exceptional cause. "I have a lot of work in other classes" is not sufficient grounds for an exception.

We recommend that you review the homework guide as you develop your solutions. Review the submission checklist when you turn in your homework. Your work will be graded as documented on the grading page.

Reading: For each lecture, there is associated reading. Students are required to complete the reading before the class associated with this reading.

Quizzes: After each class, a quiz will be announced on the mailing list, and can be taken on WebCT. The purpose of the quiz is to give the instructor feedback on how well you understood the reading, and to provide you with a chance to ask questions about the new material. By simply taking the quiz you get 70% of the mark. The quiz is closed book, closed DrScheme, and closed notes. No collaboration is allowed. The quiz is due before 8 am the day of the next class. Responses to student questions submitted with the quizzes can be found here.

More (but possibly out-of-date) advice can be found here. We expect to add new guidelines in the next few weeks.

Journal: Each student is expected to create and maintain a journal page. It should be used to record the time, duration, and nature of work done in relation to the course. The journal must follow the form of a standard template standard template .

New entries will be added at the top of the page. Please see the sample journal for the style you should follow. NB: The dates and times are totally made up. They are not necessarily representative of actual student experences.

Other Resources:

  • Practical matters:
  • Special interest groups:
    • CSters
    • Computer Science Club
    • ... (please send in suggestions!)
  • Webpages from previous semesters

Additional References:

More on CS: The New Turing Omnibus, A. K. Dewdney QA76 .D448 1993
Algorithmics: The Spirit of Computing, David Harel QA76.9 .A43 H37 2004
Computers Ltd.: What They Really Can't Do, David Harel QA76.5 .H3575 2000
Great Ideas in Computer Science, Alan W. Biermann QA76 .B495 1997
Computer Science: An Overview, J. Glenn Brookshear QA76 .B743 1997
Gödel, Escher, Bach: An Eternal Golden Braid, Douglas Hofstadter QA9.8 .H63 1980
Metamagical Themas, Douglas Hofstadter Q335 .H63 1985
If you liked Scheme, you'll love these resources: Scheme for the Complete Idiom, Ian Barland (Online)
Google's MapReduce (Online)
The Little Schemer, Friedman & Felleisen QA76.73 .S34 F75 1996
The Seasoned Schemer, Friedman & Felleisen QA76.73 .S34 F77 1996
Developing Applications with Objective Caml, Emmanuel Chailloux, Pascal Manoury, and Bruno Pagano  
The Haskell School of Expression: Learning Functional Programming Through Multimedia, Paul Hudak QA76.62 H83 2000

Accomodations for Students with Special Needs

Students with disabilities are encouraged to contact me during the first two weeks of class regarding any special needs. Students with disabilities should also contact Disabled Student Services in the Ley Student Center and the Rice Disability Support Services.


Access Permissions: (Please don't edit)


End of topic
Skip to actions | Back to top
toggleopenShow attachmentstogglecloseHide attachments
Topic attachments
I Attachment Action Size Date Who Comment
pdfpdf 32.pdf manage 172.1 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 04.pdf manage 167.5 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 25.pdf manage 215.0 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 40.pdf manage 114.7 K 05 Sep 2007 - 13:29 WalidTaha  
txttxt simple-proof.txt manage 3.3 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 06.pdf manage 167.3 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 21.pdf manage 257.2 K 05 Sep 2007 - 13:29 DanSmith  
pdfpdf 15.pdf manage 135.7 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 22.pdf manage 67.5 K 05 Sep 2007 - 13:29 SethFogarty  
pdfpdf 24.pdf manage 175.0 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf exam-2.pdf manage 61.4 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 20.pdf manage 91.6 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 07.pdf manage 232.5 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 10.pdf manage 119.8 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 18.pdf manage 159.4 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 26.pdf manage 185.9 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 23.pdf manage 49.6 K 05 Sep 2007 - 13:29 SethFogarty  
pdfpdf 28.pdf manage 130.8 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 29.pdf manage 143.2 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 14.pdf manage 128.6 K 05 Sep 2007 - 13:29 WalidTaha  
txttxt 40.txt manage 0.9 K 05 Sep 2007 - 13:29 ChrisWarrington  
pdfpdf 39.pdf manage 99.9 K 05 Sep 2007 - 13:29 ChrisWarrington  
pdfpdf exam-1.pdf manage 67.4 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 30.pdf manage 399.0 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 02.pdf manage 206.7 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 11.pdf manage 384.6 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 08.pdf manage 225.2 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 27.pdf manage 253.7 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 12.pdf manage 101.8 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 37.pdf manage 195.7 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 31.pdf manage 169.3 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 16.pdf manage 214.4 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 33.pdf manage 106.7 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 36.pdf manage 142.8 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 19.pdf manage 81.1 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 09.pdf manage 105.7 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 03.pdf manage 231.8 K 05 Sep 2007 - 13:29 WalidTaha  
pdfpdf 05.pdf manage 180.3 K 05 Sep 2007 - 13:29 WalidTaha  
Teaching.210F06 moved from Teaching.210 on 27 Aug 2007 - 01:04 by WalidTaha - put it back
Creative Commons LicenseThis work is licensed under a Creative Commons Attribution 2.5 License. Please follow our citation guidelines.