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.