CSC 207 Grinnell College Fall, 2014
 
Algorithms and Object-Oriented Design
 

Tentative Class Schedule

Monday Tuesday Wednesday Friday
August 25
New
Student
Days
August 26
New
Student
Days
August 27
Grinnell
College
Registration
August 29
Unit 0: Intro. to Java and Object-oriented problem solving
   Intro to OO Prog.
   Objects and Classes
Reading:
September 1
Unit 0: Intro. to Java and Object-oriented problem solving
   Intro. to Java
   Intro. to the Eclipse Development Environment
Reading:
September 2
Unit 0: Intro. to Java and Object-oriented problem solving
   Eclipse Development Environment
   Java Packages
   Output, Classes
Lab: Getting Started
Reading:
September 3
Unit 0: Intro. to Java and Object-oriented problem solving
   Control structures
   Arrays
Required lab due Mon., Sept. 8: Control structures and arrays
Reading:
September 5
Unit 1: Racquetball/Volleyball Case Study
   OO Design
   Simulation
Lab: Getting Started — Case Study
Reading
September 8
Unit 1: Racquetball/Volleyball Case Study
   Simulation continued
Required labs due Fri., Sept. 12:
  • Basic Solutions (Due: Basic Solutions Lab: Descriptions for Steps 1, 2, 3a; One version of a program for Step 4)
  • Class Variables (Due: Class Variables Lab: Descriptions for Step 1)
Due:Lab on ctrl. str., arrays (collaboration ok)
September 9
Unit 1: Racquetball/Volleyball Case Study
   Simulation continued
Labs eligible for extra credit (if submitted by Mon., Sept. 22)
Reading
September 10
Unit 2: Objects and classes
   Git and GitHub
Lab:
Reading:
September 12
Unit 2: Objects and classes
   Review of basics
Examples:
Labs:
Reading Due: Case Study Labs (collaboration ok)
September 15
Unit 2: Objects and classes
   Inheritance
Reading
  • Weiss 3.1-3.6, 3.8, 4.1-4.5.2, pp. 69-86, 90-97, 110-138
September 16
Unit 2: Objects and classes
   Inheritance
      Generalization
      Polymorphism
      Exceptions
Reading
  • Generalization
  • Weiss (inheritance) 4.1, pp. 109-124
  • Weiss (exceptions), 2.5, pp. 47-51
September 17
Unit 2: Objects and classes
   Generalization, Polymorphism, and Exceptions
Lab: Generalization
Reading and examples
September 19
Unit 3: Utilizing objects and classes
   Film: Object-oriented Problem Solving
Film response (at least 6 sentences) due Tues., Sept. 23 (collaboration ok)
September 22
Unit 3: Utilizing objects and classes
   Basic Input
Required lab due Fri., Sept. 26: Stream input (initial work)
Reading
September 23
Unit 3: Utilizing objects and classes
   Using the Eclipse Debugger
   Javadocs
Required lab due Fri., Sept. 26: Stream input, continued Due: Supplemental Problem 1 (no collaboration)
September 24
Unit 3: Utilizing objects and classes
Using the Eclipse Debugger
Using Javadocs Due: Response to OO Film (collaboration ok)
September 26
Unit 3: Utilizing objects and classes
   Notes on Testing and Debugging
   Black box testing
   White box testing
   Unit Testing and JUnit
Lab: Reading: Examples: Due:Stream input lab (collaboration ok)
September 29
Unit 4: Generics and interfaces
Warm-up Examples Reading
September 30
Unit 4: Generics and interfaces
Lab: Generics
October 1
Unit 4: Generics and interfaces
   Classes
   Abstract Classes
   Interfaces
Required lab due Wed., Oct. 8: Library example (collaboration ok)
Reading
October 3
Film: Sorting Out Sorting
Film response (at least 6 sentences) due Tues., Oct. 7:
October 6
Unit 4: Generics and interfaces
   Software Development
    Observations Regarding Classes and Objects
Reading examples Due: Supplemental Problem 2 (no collaboration)
October 7
Unit 5: Intro. to the analysis of algorithms
   Micro-level analysis
   Macro-level analysis
   Big-O notation
Reading Due: Response to Sorting Film (collaboration ok)
October 8
Unit 5: Intro. to the analysis of algorithms
Lab: Algorithmic analysis
Asymptotic Analysis
  • Weiss 5.4-5.8, 201-214
Take-home Test 1 distributed (no collaboration)
  • Part A due Tues., Oct. 14
  • Part B due Fri., Oct. 17
Due: Library example lab (collaboration ok)
October 10
Pause for breath
October 13
Unit 6: Collections
   Collections API
Reading
  • Weiss 6.1-6.5, pp. 229-258
October 14
Unit 6: Collections
Lab
   Sets
   Maps
Lab: Sets and multisets
Reading
  • Weiss 6.7-6.8, pp. 261-274
Due: Take-home Test 1, Part A (no collaboration)
October 15
Unit 6: Collections
   More Sets, Maps
   Multisets
Lab continued: Sets and multisets
Reading
  • Weiss, 6.7-6.8, pp. 261-274
October 17
Unit 7: Sorting
   Sorting
Reading
  • Weiss 8.1-8.5, pp. 351-364
  • Sorting

Due: Take-home Test 1, Part B (no collaboration)
October 20
Fall Break
October 21
Fall Break
October 22
Fall Break
October 24
Fall Break
October 27
Unit 7: Soft. dev. with assertions and loop invariants
   Assertions
   Loop invariants
Lab: Loop invariants
Reading
October 28
Unit 7: Soft. dev. with assertions and loop invariants
   Pictoral Loop Invariants
Required lab due Mon., Nov. 3: Pictoral loop invariants (initial work)
Reading
October 29
Unit 7: Soft. dev. with assertions and loop invariants
Required lab due Mon., Nov. 3: Pictoral loop invariants, continued
October 31
Unit 8: Sorting — Applying Loop Invariants
   Stacks and Queues
   Priority Queues
   Collections
Reading
  • Weiss 6.6, 6.9, pp. 258-261, 274-279
November 3
Unit 8: Sorting — Applying Loop Invariants
   Quicksort
Required lab due Fri., Nov. 7: Sorting (initial work)
Reading
  • Weiss 8.6-8.8, pp. 364-384
  • Sorting
Due: Lab on pictoral loop invariants (collaboration ok)
November 4
Unit 8: Sorting
Required lab due Fri., Nov. 7: Sorting, continued
Reading
  • Weiss 8.6-8.8, pp. 364-384
  • Sorting
November 5
Unit 9: Implementing Collections
   ArrayList implementation
   Iterators, examples
Reading
November 7
Unit 9: Implementing Collections
   ArrayList implementation
   Iterators, examples
Required lab due Tues., Nov. 11: Implementing Arraylists
Reading Due: Sorting lab (collaboration ok)
November 10
Unit 9: Implementing Collections
Analysis of Algorithms
Reference: "Summation formulas" from Tripod
Examples:
  • Finding a maximum
  • Insertion sort
  • Insertion into a singly linked list (at front, at rear)
  • Deletion into a singly linked list (at front, at rear)
November 11
Unit 9: Implementing Collections
Lab (Extra Credit if submitted by Wed., Nov. 19):
Reading Due: Lab on implementing Arraylists (collaboration ok)
November 12
Unit 9: Implementing Collections
   Testing
Required lab due Fri., Nov. 14: Testing queues
  • Weiss 16.2-16.5, pp. 605-615
November 14
Unit 10: Linked Lists
   Linked Lists in Java
Reading
  • Weiss 17.4-17.5, pp. 633-646
Take-home Test 2 distributed (no collaboration)
  • Part A due Wed., Nov. 19
  • Part B due Tues., Nov. 25
Due: Lab on testing queues (collaboration ok)
November 17
Unit 10: Linked Lists
   Singly-linked Lists
Lab eligible for extra credit (if submitted by Mon., Nov. 24): Singly-linked lists
Java examples
November 18
Unit 10: Linked Lists
   Doubly-linked Lists
Reading
  • Weiss, 17.4-17.5, pp. 633-646
November 19
Unit 10: Linked Lists
   Circular Linked Lists
Lab: Using circular linked structures
Due: Take-home Test 2, Part A (no collaboration)
November 21
Unit 11: Tree Structures
   Trees
Reading
  • Weiss 18.1-18.2, pp. 651-664
November 24
Unit 11: Tree Structures
   Tree Traversals
Lab: Tree data structures
Reading
November 25
Unit 11: Tree Structures
   Binary Search Trees
Required lab due Tues., Dec. 2: Binary search trees (initial work)
Reading Due: Take-home Test 2, Part B (no collaboration)
November 26
Unit 11: Tree Structures
   More binary search trees
Required lab due Tues., Dec. 2: Binary search trees, continued
November 28
Thanksgiving break
December 1
Loop Invariants Revisited
Unit 12: Hashing and Hash Tables
   Hash Tables Algorithms
Reading
  • Weiss 20.1-20.3, pp. 773-784
December 2
Iterators Revisited
Examples
Unit 12: Hashing and Hash Tables
Lab
   Hash Tabls: Practice
Required lab due Tues., Dec. 9: Hash tables (collaboration ok)
Reading
  • Weiss 20.4-20.7, pp. 784-801
Due: Lab on binary search trees (collaboration ok)
December 3
Unit 12: Hashing and Hash Tables
   Hash Tables
      Analysis
      Hash Tables
December 5
Unit 13: Heaps and Heap Sort
   Priority Queues
   Binary Heaps
Reading
  • Read: Weiss 21.1-21.3, pp. 807-822
December 8
Unit 13: Heaps and heap sort
   Heaps Due: Supplemental Problem 3 (no collaboration)
December 9
Unit 13: Heaps and heap sort
Lab
   Heaps Operations
Required lab due Fri., Dec. 11: Heaps (collaboration ok)Reading
  • Weiss 21.5, pp. 823-826

Due: Lab on hash tables (collaboration ok)
December 10
Unit 13: Heaps and heap sort
   Heap Sort
Reading
  • Weiss 21.5, pp. 823-826
December 12
Course review
   Semester wrap-up
   End-of-course Evaluations
Due: Lab on heaps (collaboration ok)