Schedule - CS 307 - Summer 2009

Date Topic Readings and Events
Reading Assignments with a cited chapter are from the recommended textbook, Data Structures and Problem Solving using Java, 3rd edition by Mark Allen Weiss ISBN 0-321-32213-4
Monday, June 15 Topic 1: Syllabus and Course Mechanics

Slides in PowerPoint, PDF, and PDF for printing (4 slides per page)

Topic 2: Java basics
Slides: PPT, PDF, PDF 4up

1.Read the course syllabus, topics list, and schedule. Browse class materials on class web site.
2. Chapter 1
3. Review The Java Tutorial online. Lesson: Language Basics. Read all subtopics including Variables, Operators, Expressions, Statements and Blocks, and Control Flow Statements
java.sun.com/docs/books/tutorial/java/nutsandbolts/index.html

A. Assignment 1 out

Wednesday, June 17 Finish Topic 2: Java basics 1. Programming with assertions. Online at:
http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html
Thursday, June 18 Discussion Section 1. Quiz 1 in discussion section
2. Q and A (questions and answers) for assignment 1
3. If time remaining go over the Roman Numeral problem (number 4) from section problem handout 1.
Friday, June 19

Topic 3: Pointers and object variables
Slides: PPT, PDF, PDF 4up

Topic 4: 2D arrays
Slides: PPT, PDF, PDF 4up

1. Pointers and Memory by Nick Parlante. This was designed for students using C but is still an excellent explanation of what pointers are and what can be done with them. Available online at:
http://cslibrary.stanford.edu/102/PointersAndMemory.pdf 
2. Chapter 2, sections 2.1 - 2.4

A. Javabat problem set 1 due.
B. Assignment 2 out

Monday, June 22 Topic 4: 2D arrays

Topic 5: Exceptions and file I/O
Slides: PPT, PDF, PDF 4up

1. Multidimensional arrays at Wikipedia.
2. An explanation of multidimensional arrays in Java.  From Introduction to Programming Using Java by David Eck.
3. The Java Tutorial online: Lesson: What's an Exception and Why do I Care?
java.sun.com/docs/books/tutorial/essential/exceptions/definition.html
4. Chapter 2, sections 2.5 - 2.6
5. The Java Tutorial Online. Basic I/O. Read the sections on I/O Streams and File I/O. java.sun.com/docs/books/tutorial/essential/io/

A. Assignment 1 due

Wednesday, June 24 Topic 5: Exceptions and file I/O

Topic 6: Designing and Implementing Classes.
Slides: PPT, PDF, PDF 4up.

1. The Java Tutorial online. Lesson: Object-Oriented Programming Concepts. Read the following topics: What is an Object? What is a Class?
java.sun.com/docs/books/tutorial/java/concepts/index.html
2. Chapter 3
3. The Java Tutorial online. Lesson: Objects. Read the page on Objects and the sub pages on Creating Objects and using Objects.
java.sun.com/docs/books/tutorial/java/javaOO/objects.html
4. The Java Tutorial online. Classes. Read all the subtopics of in the Classes section. java.sun.com/docs/books/tutorial/java/javaOO/classes.html
Thursday, June 25 Discussion Section 1. Quiz 2 in discussion section
2. Q and A for assignment 2
3. Problem 5 from section problem handout 2.

A. Javabat problem set 2 due.

Friday June 26 Topic 6: Designing and Implementing Classes. 1. The Java Tutorial online. Objects. Read the entry on Objects and the subtopics on Creating Objects and Using Objects. java.sun.com/docs/books/tutorial/java/javaOO/objects.html
2. The Java Tutorial online. More on Classes. Read the entry on More on Classes and all subtopics. java.sun.com/docs/books/tutorial/java/javaOO/more.html
3. Read the entries on Abstract data types, Data structures, and Dynamic arrays at Wikipedia.
Monday, June 29 Topic 6: Designing and Implementing Classes.

A. Assignment 2 due by 11 pm
B. Assignment 3 out

Wednesday, July 1 Topic 7: Inheritance and polymorphism
Slides: PPT, PDF, PDF 4up
1. Chapter 4, sections 4.1 - 4.6
2. An explanation of inheritance from Stuart Reges, University of Arizona
3. The Java Tutorial online. What is Inheritance?
java.sun.com/docs/books/tutorial/java/concepts/inheritance.html
4. The Java Tutorial online. A more detailed look at inheritance. Read this page and all the following sub topics: Overriding and Hiding Methods, Hiding Fields, Using the Keyword super, and Object as a Superclass.
java.sun.com/docs/books/tutorial/java/IandI/subclasses.html
Thursday, July 2 Discussion Section 1. Quiz 3 in discussion section
2. Q and A (questions and answers) for assignment 3
3. Problem 9 from section handout 3, building a complex number class.

A. Javabat problem set 3 due.

Friday July 3 Topic 8: Interfaces and abstract classes.
Slides: PPT, PDF, PDF 4up
1. The Java Tutorial online. Read the entry on What is an Interface. java.sun.com/docs/books/tutorial/java/concepts/interface.html
2. The Java Tutorial online. Lesson: Interfaces. Read this page and all of the sub topics for Interfaces
java.sun.com/docs/books/tutorial/java/IandI/createinterface.html
3. The Java Tutorial online. Read the topic on Abstract Methods and Classes:
java.sun.com/docs/books/tutorial/java/IandI/abstract.html
Monday, July 6 Topic 9: Algorithm analysis
Slides: PPT, PDF, PDF 4up
1. Chapter 5
2. Video on Big O from MIT
3. Algorithm Analysis and Big O at Wikipedia
4. The National Institute of Standards and Technology, Dictionary of Data Structures and Algorithms page on Big O notation.
5. Slides on Big O by Owen Astrachan of Duke University. 

A. Assignment 3 due by 11 pm
B. Assignment 4 out

Wednesday, July 8 Finish Algorithm Analysis Finish Algorithm Analysis
Thursday, July 9 Discussion Section 1. Quiz 4 in discussion section
2. Q and A for assignment 4.
3. Problem 3 from section problem handout 4. Ticket problem.

A. Javabat problem set 4 due.

Friday July 10 1st term finals. No class 1st term finals. No class
Monday, July 13 Topic 10: Introduction to recursion
Slides: PPT, PDF, PDF 4up
1. Chapter 7
2. Recursion at Wikipedia.
3. Recursion at the NIST Dictionary of Algorithms and Data Structures

A. Assignment 4 due by 11 pm
B. Assignment 5 out

Wednesday, July 15 Topic 11: Recursive backtracking
Slides: PPT, PDF, PDF 4up
1. Backtracking at Wikipedia.
2. Backtracking at the NIST Dictionary of Algorithms and Data Structures
3. Another explanation of recursive backtracking.
4. The 8 queens puzzle at Wikipedia.
5. the knapsack problem at Wikipedia.
Thursday, July 16 Discussion Section 1. Quiz 5 in discussion section
2. Q and A for assignment 5
2. Review for midterm

A. Javabat problem set 5 due.

Friday July 17 Midterm in class Midterm in class. The midterm will cover up to and including topic 9, Algorithm analysis.
Monday, July 20 Topic 12: Sorting and searching
Slides: PPT, PDF, PDF 4up

Review midterm results.

1. Chapter 5, section 5.6 and Chapter 8.
2. Searching articles at Wikipedia: Linear Search, Binary Search,
3. Searching articles at NIST DADS: Linear Search, Binary Search
4. Sorting articles at Wikipedia: Selection Sort, Insertion Sort, Shell sort, Quick sort, Merge sort
5. Sorting articles at NIST DADS: Selection Sort, Insertion Sort, Shell sort, Quick sort, Merge sort
6. A whimsical take on selection sort and quicksort at YouTube. 

A. Assignment 5 due by 11 pm
B. Assignment 6 out

Wednesday, July 22 Topic 12: Sorting and searching  
Thursday, July 23 Discussion Section 1. Quiz 6 in discussion section
2. Q and A for assignment 6
3. Problems 4, 8, and 11 from section problem handout 6.

A. Javabat problem set 6 due.

Friday July 24

Topic 13: Abstract Data Types and Data Structures: Array based lists revisited.
Slides: PPT, PDF, PDF 4up

1. Sections 6.1, 6.3.1, 6.4 - 6.9
2. Chapter 15
3. Abstract Data Types, Data Structures, and Dynamic Arrays at the NIST Dictionary of Algorithms and Data Structures. (NIST DADS)
4. The Java Tutorial online. The intro article to the Collections Framework java.sun.com/docs/books/tutorial/collections/interfaces/index.html and The Collection Interface. java.sun.com/docs/books/tutorial/collections/interfaces/collection.html
5. An explanation of the Java Collections Framework.
Monday, July 27

Topic 14: Generic Data Structures
Slides: PPT, PDF, PDF 4up

Topic 15:  Iterators
Slides: PPT, PDF, PDF 4up

1. Section 4.7
2. The Java tutorial online. Generics. Read the Introduction and the section on Generic Types. java.sun.com/docs/books/tutorial/java/generics/index.html

1. Sections 6.2 and 6.3.2
2. Iterators at Wikipedia.
3. The Java Tutorial online. Nested Classes. Read the main entry on Nested Classes and both subtopics on Inner Class Example and Summary of Nested Classes. java.sun.com/docs/books/tutorial/java/javaOO/nested.html

A. Assignment 6 due by 11 pm
B. Assignment 7 out

Wednesday, July 29 Topic 16: Linked Lists
Slides: PPT, PDF, PDF 4up
1. Chapter 17
2. Linked Lists at Wikipedia.
3.  Linked Lists at the NIST Dictionary of Algorithms and Data Structures
Thursday, July 30 Discussion Section 1. Quiz 7 in discussion section
2. Q and A for assignment 7

A. Javabat problem set 7 due.

Friday, July 31 Topic 16: Linked Lists  
Monday, August 3 Topic 17: Stacks
Slides: PPT, PDF, PDF 4up
1. Section 11.1
2. Chapter 16
3. Stacks at Wikipedia.
4.  Stacks at the NIST Dictionary of Algorithms and Data Structures
5. Section 11.2
6. postfix notation at Wikipedia

A. Assignment 7 due by 11 pm
B. Assignment 8 out

Wednesday, August 5 Topic 17 Stacks

Topic 18: Queues
Slides: PPT, PDF, PDF 4up

1. Chapter 16
2. Queues at Wikipedia.
3.  Queues at the NIST Dictionary of Algorithms and Data Structures
Thursday, August 6 Discussion Section 1. Quiz 8 in discussion section
2. Q and A for assignment 8

A. Javabat problem set 8 due.

Friday August 7 Topic 19: Trees
Slides: PPT, PDF, PDF 4up

Topic 20: Binary search trees
Slides: PPT, PDF, PDF 4up

1. Chapter 18
2. Binary Trees at Wikipedia
3. Binary Trees at the NIST Dictionary of Algorithms and Data Structures (See the main page and search for the term traversal to find information the various tree traversal algorithms.)

A. Assignment 9 out

Monday, August 10 Topic 20: Binary search trees

 

1. Chapter 19, sections 19.1 - 19.3
2. Binary Search Trees at Wikipedia
3. Binary Search Trees at the NIST Dictionary of Algorithms and Data Structures

A. Assignment 8 due by 11 pm

Wednesday, August 12 Topic 21: Balanced binary search trees
Slides: PPT, PDF, PDF 4up
1. Chapter 19, section 19.5
2. Red-Black Trees at Wikipedia
3. Red-Black Trees at the NIST Dictionary of Algorithms and Data Structures
4. An Applet showing Red-Black trees in action.
Thursday, August 13 Discussion Section 1. Quiz 9
2. Review for final exam
3. TA evaluations

B. Javabat problem set 9 due.

Friday August 14 Topic 22: Hash tables and maps / dictionaries.

Slides: PPT, PDF, PDF 4up

Course-instructor evaluations in class.

A. Assignment 9 due by 11 pm

Monday, August 17 Final Exam, 7 - 10 pm (Yes, in the evening.) Final Exam 7 - 10 pm, location TBD