CSC 207 Grinnell College Spring, 2015
 
Algorithms and Object-Oriented Design
 

Tentative Class Schedule

Monday Tuesday Wednesday Friday
January 19




Martin Luther King, Jr
Day
January 20
Unit 0: Intro. to Java and Object-oriented problem solving
   Intro to OO Prog.
   Objects and Classes
Reading:
January 21
Unit 0: Intro. to Java and Object-oriented problem solving
   Intro. to Java
   Intro. to the Eclipse Development Environment
Reading:
January 23
Unit 0: Intro. to Java and Object-oriented problem solving
   Film: Object-oriented Problem Solving
Film response (at least 6 sentences) due Tues., Jan. 27 (collaboration ok)
January 26
Unit 0: Intro. to Java and Object-oriented problem solving
   Eclipse Development Environment
   Java Packages
   Output, Classes
Lab: Getting Started
Reading:
January 27
Unit 0: Intro. to Java and Object-oriented problem solving
   Control structures
   Arrays
Required lab due Fri., Jan. 30: Control structures and arrays
Reading: Due: Response to OO Film (collaboration ok)
January 28
Unit 1: Racquetball/Volleyball Case Study
   OO Design
   Simulation
Lab: Getting Started — Case Study
Reading
January 30
Unit 1: Racquetball/Volleyball Case Study
   Simulation continued
Required labs due Wed., Feb. 4:
  • 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)
February 2
Unit 1: Racquetball/Volleyball Case Study
   Simulation continued
Labs eligible for extra credit (if submitted by Mon., Feb. 16)
Reading
February 3
Unit 2: Objects and classes
   Git and GitHub
Lab:
Reading:
February 4
Unit 2: Objects and classes
   Review of basics
Examples: Required lab due Mon., Feb. 9: References, Autoboxing, and Autounboxing
Reading Due: Case Study Labs (collaboration ok)
February 6
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
February 9
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
Due: Reference, Autoboxing, and Autounboxing (collaboration ok)
February 10
Unit 2: Objects and classes
   Generalization, Polymorphism, and Exceptions
Lab: Generalization
Reading and examples
February 11
Unit 3: Utilizing objects and classes
   Basic Input
Required lab due Wed, Feb. 18: Stream input (initial work)
Reading
February 13
Unit 3: Utilizing objects and classes
   Using the Eclipse Debugger
   Javadocs
Required lab due Wed, Feb. 18: Stream input, continued
February 16
Unit 3: Utilizing objects and classes
Using the Eclipse Debugger
Using Javadocs Due: Supplemental Problem 1 (no collaboration)
(Javadocs NOT Required)
February 17
Unit 3: Utilizing objects and classes
   Notes on Testing and Debugging
   Black box testing
   White box testing
   Unit Testing and JUnit
Lab: Reading: Examples:
February 18
Unit 4: Generics and interfaces
Warm-up Examples Reading Due:Stream input lab (collaboration ok)
February 20
Unit 4: Generics and interfaces
Lab: Generics
February 23
Unit 4: Generics and interfaces
   Classes
   Abstract Classes
   Interfaces
Required lab due Fri., Feb. 27: Library example (collaboration ok)
Reading
February 24
Unit 4: Generics and interfaces
   Software Development
    Observations Regarding Classes and Objects
Reading examples
February 25
Unit 5: Intro. to the analysis of algorithms
   Micro-level analysis
   Macro-level analysis
   Big-O notation
Reading
February 27
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., March10
  • Part B due Fri., March 13
Due: Library example lab (collaboration ok)
March 2
Unit 6: Collections
   Collections API
Reading
  • Weiss 6.1-6.5, pp. 229-258
March 3
Unit 6: Collections
Lab
   Sets
   Maps
Lab: Sets and multisets
Reading
  • Weiss 6.7-6.8, pp. 261-274
Due: Supplemental Problem 2 (no collaboration)
March 4
Unit 6: Collections
   More Sets, Maps
   Multisets
Lab continued: Sets and multisets
Reading
  • Weiss, 6.7-6.8, pp. 261-274
March 6
Film: Sorting Out Sorting
Film response (at least 6 sentences) due Tues., March 10:
March 9
Unit 7: Sorting
   Sorting
Reading
  • Weiss 8.1-8.5, pp. 351-364
  • Sorting
March 10
Unit 7: Soft. dev. with assertions and loop invariants
   Assertions
   Loop invariants
Lab: Loop invariants
Reading Due: Take-home Test 1, Part A (no collaboration)
March 11
Unit 7: Soft. dev. with assertions and loop invariants
   Pictoral Loop Invariants
Required lab due Tues., March 31: Pictoral loop invariants (initial work)
Reading Due: Response to Sorting Film (collaboration ok)
March 13
Unit 7: Soft. dev. with assertions and loop invariants
Required lab due Tues., March 31: Pictoral loop invariants, continued
Due: Take-home Test 1, Part B (no collaboration)
March 16
Spring Break
March 17
Spring Break
March 18
Spring Break
March 20
Spring Break
March 23
Spring Break
March 24
Spring Break
March 25
Spring Break
March 27
Spring Break
March 30
Unit 8: Sorting — Applying Loop Invariants
   Stacks and Queues
   Priority Queues
   Collections
Reading
  • Weiss 6.6, 6.9, pp. 258-261, 274-279
March 31
Unit 8: Sorting — Applying Loop Invariants
   Quicksort
Required lab due Mon., April 6: Sorting (initial work)
Reading
  • Weiss 8.6-8.8, pp. 364-384
  • Sorting
Due: Lab on pictoral loop invariants (collaboration ok)
April 1
Unit 8: Sorting
Required lab due Mon., April 6: Sorting, continued
Reading
  • Weiss 8.6-8.8, pp. 364-384
  • Sorting
April 3
Unit 9: Implementing Collections
   ArrayList implementation
   Iterators, examples
Reading
April 6
Unit 9: Implementing Collections
   ArrayList implementation
   Iterators, examples
Required lab due Mon., April 13: Implementing Arraylists
Reading Due: Sorting lab (collaboration ok)
April 7
Unit 9: Implementing Collections
Lab (Extra Credit if submitted by Wed., April 22):
Reading
April 8
Unit 9: Implementing Collections
   Testing
Required lab due Tues., April 14: Testing queues
  • Weiss 16.2-16.5, pp. 605-615
April 10
Unit 9: Implementing Collections
Time for teams working on
April 13
Unit 10: Linked Lists
   Linked Lists in Java
Reading
  • Weiss 17.4-17.5, pp. 633-646
Due: Lab on implementing Arraylists (collaboration ok)
April 14
Unit 10: Linked Lists
   Singly-linked Lists
Lab eligible for extra credit (if submitted by Tues., April 28): Singly-linked lists
Java examples Due: Lab on testing queues (collaboration ok)
April 15
Unit 10: Linked Lists
   Doubly-linked Lists
Reading
  • Weiss, 17.4-17.5, pp. 633-646
Take-home Test 2 distributed (no collaboration)
  • Part A due Tues., April 21
  • Part B due Fri., April 24
April 17
Unit 10: Linked Lists
   Circular Linked Lists
Lab: Using circular linked structures
April 20
Unit 11: Tree Structures
   Trees
Reading
  • Weiss 18.1-18.2, pp. 651-664
April 21
Unit 11: Tree Structures
   Tree Traversals
Lab: Tree data structures
Reading Due: Take-home Test 2, Part A (no collaboration)
April 22
Unit 11: Tree Structures
   Binary Search Trees
Required lab due Tues., April 28: Binary search trees (initial work)
Reading
April 24
Unit 11: Tree Structures
   More binary search trees
Required lab due Tues., April 28: Binary search trees, continued
Due: Take-home Test 2, Part B (no collaboration)
April 27
Loop Invariants Revisited
Unit 12: Hashing and Hash Tables
   Hash Tables Algorithms
Reading
  • Weiss 20.1-20.3, pp. 773-784
April 28
Iterators Revisited
Examples
Unit 12: Hashing and Hash Tables
Lab
   Hash Tabls: Practice
Required lab due Fri., May 1: Hash tables (collaboration ok)
Reading
  • Weiss 20.4-20.7, pp. 784-801
Due: Lab on binary search trees (collaboration ok)
April 29
Unit 12: Hashing and Hash Tables
   Hash Tables
      Analysis
      Hash Tables
May 1
Unit 13: Heaps and Heap Sort
   Priority Queues
   Binary Heaps
Reading
  • Read: Weiss 21.1-21.3, pp. 807-822

Due: Lab on hash tables (collaboration ok)
May 4
Unit 13: Heaps and heap sort
   Heaps
May 5
Unit 13: Heaps and heap sort
Lab
   Heaps Operations
Required lab due Fri., May 8: Heaps (collaboration ok)Reading
  • Weiss 21.5, pp. 823-826
May 6
Unit 13: Heaps and heap sort
   Heap Sort
Reading
  • Weiss 21.5, pp. 823-826
May 8
Course review
   Semester wrap-up
   End-of-course Evaluations
Due: Lab on heaps (collaboration ok) Due: Supplemental Problem 3 (no collaboration)