Algorithms and OOD (CSC 207 2013F) : Handouts

Schedule


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)

Copyright (c) 2013 Samuel A. Rebelsky.

Creative Commons License

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.