Algorithms and OOD (CSC 207 2013F) : Handouts
Primary: [Front Door] [Schedule] - [Academic Honesty] [Disabilities] [Email] [FAQ] [IRC] [Teaching & Learning]
Current: [Assignment] [EBoard] [Lab] [Outline] [Partners] [Reading]
Sections: [Assignments] [EBoards] [Examples] [Handouts] [Labs] [Outlines] [Partners] [Readings]
Reference: [Java 7 API] [Java Code Conventions]
Related Courses: [CSC 152 2006S (Rebelsky)] [CSC 207 2013S (Walker)] [CSC 207 2011S (Weinman)]
Misc: [SamR] [Glimmer Labs] [CS@Grinnell] [Grinnell] [Issue Tracker (Course)] [Issue Tracker (Textbook)]
This is an approximate schedule. Expect dates and topics to change. (I will try to keep due dates the same.)
| Date | Topic | Reading | Lab | Work Due | |
|---|---|---|---|---|---|
| Week 01: Getting Started | |||||
| 01 | Friday, 30 August 2013 | An Introduction to the Course | (no reading) | (no lab) | |
| 02 | Monday, 2 September 2013 | An Introduction to Java Development | An Introduction to Version Control with Git and The Eclipse IDE | Getting Started with Eclipse | HW 1: Introductory Survey (due 10:30 p.m. Sunday) |
| 03 | Tuesday, 3 September 2013 | An Overview of Java | Basics of Object-Oriented Problem Solving and An Introduction to Java | Getting Started with Git | |
| 04 | Wednesday, 4 September 2013 | Git, Revisited | Simple Java for C Programmers | Getting Started with Command-Line Git & Reading Java | RISC Pretest |
| 05 | Friday, 6 September 2013 | Unit Testing | Unit Testing | Unit Testing | |
| Week 02: Imperative Programming in Java | |||||
| 06 | Monday, 9 September 2013 | Debugging | Debugging in Eclipse | Debugging in Eclipse | HW 2: Getting Started with Java and Testing (due 10:30 p.m.) |
| 07 | Tuesday, 10 September 2013 | Arrays in Java | Arrays | Arrays | |
| 08 | Wednesday, 11 September 2013 | Some Basic Types: Numbers and Strings in Java | Numeric Values in Java and Strings in Java | Basic Types | |
| 09 | Friday, 13 September 2013 | Input and Output | Input and Output in Java | Input and Output | |
| Week 03: Object Oriented Programming and Design in Java | |||||
| 10 | Monday, 16 September 2013 | Exceptional Programming | Exceptions | Exceptions | HW 3: Basic Types in Java (due 10:30 p.m.) |
| 11 | Tuesday, 17 September 2013 | Classes, Objects, and Interfaces | Writing Your Own Classes and Standard Object Methods | Writing Your Own Classes | |
| 12 | Wednesday, 18 September 2013 | Interfaces and Polymorphism | Interfaces and Polymorphism | Polymorphism | |
| 13 | Friday, 20 September 2013 | Inheritance | Inheritance | Inheritance | |
| Week 04: Android Development | |||||
| 14 | Monday, 23 September 2013 | Inheritance, Continued | Inheritance | Inheritance | |
| 15 | Tuesday, 24 September 2013 | Documentation and Javadoc | Documentation and Javadoc | Javadoc | HW 4: More Fun with Fractions (due 10:30 p.m.) |
| 16 | Wednesday, 25 September 2013 | An Introduction to Android Development | An Introduction to Android Development | Your First Android Project | |
| 17 | Friday, 27 September 2013 | Building Your First App (1) | Making Apps Do Things | Making a Cat Go Meow | |
| Week 05: Analyzing Algorithms | |||||
| 18 | Monday, 30 September 2013 | Building Your First App (2) | Making Apps Do More Things | Expanding Your App | |
| 19 | Tuesday, 1 October 2013 | Analyzing Algorithms | HW 5: Exploring an Ushahidi API (due 10:30 p.m.) | ||
| 20 | Wednesday, 2 October 2013 | Linear and Binary Search | Linear and Binary Search in Java | Linear and Binary Search in Java | |
| 21 | Friday, 4 October 2013 | Reasoning About Loops with Loop Invariants | Loop Invariants | Loop Invariants | |
| Week 06: Designing a List ADT | |||||
| 22 | Monday, 7 October 2013 | OOD in Practice: Designing a List Interface | |||
| 23 | Tuesday, 8 October 2013 | A List Interface, Continued | HW 6: A Simple Ushahidi App (due 10:30 p.m.) | ||
| 24 | Wednesday, 9 October 2013 | Generics | |||
| 25 | Friday, 11 October 2013 | The Collections API | |||
| Week 07: Implementing Lists | |||||
| 26 | Monday, 14 October 2013 | Implementing Lists with Arrays | |||
| 27 | Tuesday, 15 October 2013 | Implementing Lists with Arrays, Continued | Exam 1 | ||
| 28 | Wednesday, 16 October 2013 | Linked Lists in Java | |||
| 29 | Friday, 18 October 2013 | Doubly-Linked Lists | |||
| Fall Break | |||||
| Week 08: Sorting | |||||
| 30 | Monday, 28 October 2013 | An Introduction to Sorting | |||
| 31 | Tuesday, 29 October 2013 | Quadratic Sorts | |||
| 32 | Wednesday, 30 October 2013 | Merge Sort | Merge sort | Merge sort | HW 7: Fun with Doubly Linked Lists (due 10:30 p.m.) |
| 33 | Friday, 1 November 2013 | Quicksort | Quicksort | Quicksort | |
| Week 09: Linear Structures | |||||
| 34 | Monday, 4 November 2013 | An Introduction to Linear Structures | Linear Structures and Stacks | Stacks | |
| 35 | Tuesday, 5 November 2013 | Implementing Queues with Arrays | Queues | Array-Based Queues | HW 8: Sorting (due 10:30 p.m.) |
| 36 | Wednesday, 6 November 2013 | Pause for Breath: Linear Structures | |||
| 37 | Friday, 8 November 2013 | Pause for Breath: Sorting | |||
| Week 10: Dictionaries | |||||
| 38 | Monday, 11 November 2013 | Detour: Anonymous Inner Classes | Anonymous Inner Classes | Anonymous Inner Classes | |
| 39 | Tuesday, 12 November 2013 | Priority Queues and their Basic Implementation | Priority Queues | Priority Queues | HW 9: Miscellaneous (due 10:30 p.m.) |
| 40 | Wednesday, 13 November 2013 | Designing a Dictionary API | |||
| 41 | Friday, 15 November 2013 | Implementing Dictionaries with Arrays or Lists | Linked Dictionaries (not available) | Linked Dictionaries (on eboard) | |
| Week 11: Trees | |||||
| 42 | Monday, 18 November 2013 | Implementing Dictionaries with Binary Search Trees | Binary Search Trees (not available) | Binary Search Trees | |
| 43 | Tuesday, 19 November 2013 | Detour: The Digital Commons | HW 10 (due 10:30 p.m.) | ||
| 44 | Wednesday, 20 November 2013 | Trees, Generalized | Trees (not available) | (no lab) | |
| 45 | Friday, 22 November 2013 | Tree Traversal | Tree traversal (not available) | Tree traversal (not available) | |
| Week 12: Hash Tables | |||||
| 46 | Monday, 25 November 2013 | Implementing Dictionaries with Hash Tables | Hash tables (not available) | (no lab) | |
| 47 | Tuesday, 26 November 2013 | Hash Tables, Continued | (no reading) | Hash tables (not available) | Exam 2 (due 10:30 p.m.) |
| 48 | Wednesday, 27 November 2013 | Hash Tables, Continued | (no reading) | Hash tables (not available) | |
| Thanksgiving Break | |||||
| Week 13: Additional Java and OOD Concepts | |||||
| 49 | Monday, 2 December 2013 | Heaps | (no reading) | (no lab) | |
| 50 | Tuesday, 3 December 2013 | Heap Sort | Heap Sort (not available) | Heap Sort (not available) | |
| 51 | Wednesday, 4 December 2013 | Patterns of Algorithm Design | (no reading) | (no reading) | |
| 52 | Friday, 6 December 2013 | Dynamic Programming | Dynamic Programming (not available) | Dynamic Programming (not available) | |
| Week 14: Wrapup | |||||
| 53 | Monday, 9 December 2013 | Using Java from the Command Line | Java on the Command Line (not available) | Java on the Command Line (not available) | |
| 54 | Tuesday, 10 December 2013 | Design Patterns, Revisited | Design Patterns (not available) | (no lab) | HW 11 (due 10:30 p.m.) |
| 55 | Wednesday, 11 December 2013 | Course Evaluation | (no reading) | (no lab) | |
| 56 | Friday, 13 December 2013 | Review for Final | (no reading) | (no lab) | |
Primary: [Front Door] [Schedule] - [Academic Honesty] [Disabilities] [Email] [FAQ] [IRC] [Teaching & Learning]
Current: [Assignment] [EBoard] [Lab] [Outline] [Partners] [Reading]
Sections: [Assignments] [EBoards] [Examples] [Handouts] [Labs] [Outlines] [Partners] [Readings]
Reference: [Java 7 API] [Java Code Conventions]
Related Courses: [CSC 152 2006S (Rebelsky)] [CSC 207 2013S (Walker)] [CSC 207 2011S (Weinman)]
Misc: [SamR] [Glimmer Labs] [CS@Grinnell] [Grinnell] [Issue Tracker (Course)] [Issue Tracker (Textbook)]
Copyright (c) 2013 Samuel A. Rebelsky.

This work is licensed under a Creative Commons Attribution 3.0 Unported License. To view a copy of this
license, visit http://creativecommons.org/licenses/by/3.0/
or send a letter to Creative Commons, 543 Howard Street, 5th Floor,
San Francisco, California, 94105, USA.