CS 115: Introduction to Computer Science 1, UAE edition

Schedule for Fall 2012 UW Dubai

This page contains information on the rough timing of topics, lab material, assignment due dates, exam dates, and other important milestones. The selection and ordering of topics is correct. The exact timing of lecture topics will almost certainly vary from this, and readings (all from the textbook, "How To Design Programs"), are linked to the timing of lectures. Due dates are subject to change. DrRacket implements a series of language subsets, and the changes from one level to the next are noted under the heading "Language Level".

Assignment due times are subject to change.

Week 1 (Week of September 5)

Lectures (Module 1) Sept 5/10: Course information and goals. Functions and evaluation. DrRacket. Defining functions. Syntax and semantics. Substitution. Tracing.

Readings: Preface, Sections 1 through 3.

Lab 1 (Sept 10): Basics, using DrRacket.

Language Level: Beginning Student.

Week 2 (Week of September 12)

Lectures (Module 2) Sept 12/17: A design recipe for a function, with a contract, purpose, examples, definition, and tests. Using constants. Helper functions. Strings. Images.

Readings: Sections 2 and 3.

Lab 2 (Sept 17): Designing functions.

Week 3 (Week of September 19)

Assignment 0 due at 11:59pm on Thursday, September 20.

Lectures (Module 3) Sept 19/24: Boolean functions. Predicates. Testing using Booleans. Conditional expressions. Designing conditional functions. Templates. Symbols. Symbols versus strings. Characters. Mixed data. Errors.

Readings: Sections 4 and 5.

Lab 3 (Sept 24): The design recipe and helper functions.

Week 4 (Week of September 26)

Assignment 1 due at 11:59pm on Thursday, Sept 27 on Modules 1-2.

Lectures (Module 4) Sept 26/Oct 1: Compound data and user-defined structures. Data definition and analysis. Functions that operate on compound data. Templates and data-directed design. The design recipe for compound data. Type predicates.

Readings: Sections 6 and 7.

Lab 4 (Oct 1): Booleans, predicates, conditionals.

Week 5 (Week of October 3)

Assignment 2 due at 11:59pm on Thursday, Oct 4 on Module 3.

Lectures (Module 5) Oct 3/8: Constructing lists. Visualizations of lists. The recursive definition of a list. Functions that process lists. The design recipe for self-referential data definitions. Hazards of not using templates. Nonempty lists. Strings as lists of characters. Lists of structures.

Readings: Sections 9 and 10.

Lab 5 (Oct 8): Structures.

Week 6 (Week of October 10)

Assignment 3 due at 11:59pm on Thursday, Oct 11 on Module 4.

Lectures (Module 6) Oct 10/15: A recursive definition of a natural number. Processing natural numbers. Templates for counting down. Templates for counting up.

Readings: Sections 11 and 12.

Lab 6 (Oct 15): Lists.

Language Level: Beginning Student with List Abbreviations.

Week 7 (Week of October 17)

Assignment 4 due at 11:59pm on Thursday, Oct 18 on Module 5 (basic lists).

Lectures (Module 6 continued) Oct 17/22/24: Auxiliary recursive functions. Sorting. Insertion. List abbreviations. Lists containing lists. Association lists. Lists versus structures.

Midterm October 22 on Modules 1-5 (up to basic lists)

Readings: Sections 11 and 12, Intermezzo 2.

Lab 7 (Oct 29): Lists of structures.

Week 8 (Week of November 5)

Assignment 5 due at 11:59pm on Thursday, Nov 8 on Module 5 (lists with structures), Module 6.

Lectures (Module 7) Nov 5/7: Processing two lists or two numbers. A list going along for the ride. Lock-step. Processing at different rates.

Readings: Section 17.

Lab 7/8 (Nov 5): Lists of Stuctures/Structural recursion on numbers.

Week 9 (Week of November 12)

Assignment 6 due at 11:59pm on Thursday, Nov 15 on Module 6, Module 7.

Lectures (Module 8) Nov 12/14: Binary arithmetic expressions. Evolution trees. Binary search trees.

Readings: Sections 14, 15, 16.

Lab 9 (Nov 12): Processing two lists/Binary Trees.

Week 10 (Week of November 19)

Assignment 7 due at 11:59pm on Thursday, Nov 22 on Module 7, Module 8.

Lectures (Module 8 continued, Module 9) Nov 19/21: Binary search trees. General trees.

Readings: Sections 14, 15, 16.

Lab 10 (Nov 19): Binary trees/General Trees.

Week 11 (Week of November 26)

Assignment 8 due at 11:59pm on Thursday, Nov 29 on Module 8.

Lectures (Module 9 continued) Nov 26/28: General arithmetic expressions. Mutual recursion. Leaf-labelled trees. Compounds.

Readings: Sections 14, 15, 16.

Lab 11 (Nov 26): General trees/Local, functional abstraction.

Language Level: Intermediate Student.

Week 12 (Week of December 3)

Lectures (Module 10) Dec 3/5: Organizing definitions using local. Encapsulating auxiliary functions and definitions. Lexical scope and block structure. Functional and data abstraction. History of the concepts covered in this course (time permitting).

Readings: Sections 14, 15, 16, Intermezzo 3, Sections 19 to 21.

Assignment 9 due on Thursday, Dec 6 at 11:59 p.m. on Module 9 and 10.

Valid XHTML 1.0 Strict Valid CSS!

Last modified on Monday, 08 October 2012, at 02:42 hours.

Course Supported by Instructional Support Group