Schedule - CS 307 - Fall 2008

Date Topic Reading 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 0321322134
Wednesday, August 27 Topic 1: Syllabus and Course Mechanics

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

1.Read the course syllabus, topics list, and schedule. Browse class materials on class web site.

A. Assignment 1 out

Friday, August 29 Topic 2: Java basics
Slides: PPT, PDF, PDF 4up
1. Chapter 1
2. 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
3. Javabat exercises: Warmup 1, Parrot Trouble,   Warmup 1, Every Nth.
Monday, September 1 Labor Day, UT Holiday and no class Labor Day, UT Holiday and no class
Tuesday, September 2 CS307 Discussion Sections DO NOT MEET today No CS307 discussion sections today.
Wednesday, September 3 Topic 2: Java basics 1. Programming with assertions. Online at:
http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html
2. Javabat exercises: Warmup 2, String X,   Warmup 2, No Triples, Array 1, MaxEnd3,   Array 1, Swap Ends,   Array 1, Plus 2

A. Assignment 2 out

Friday, September 5 Topic 2: Java Basics  
Monday, September 8 Topic 3: Pointers and object variables
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
3. Javabat Exercises: String1, seeColor,   String1, MinCat
Tuesday, September 9 Discussion Section 1. Quiz 1
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.
Wednesday, September 10 Topic 4: 2D arrays
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.
Thursday, September 11 Assignment 1 due Assignment 1 due by 11 pm.
Friday, September 12 Topic 5: Exceptions and file I/O
Slides: PPT, PDF, PDF 4up
1. The Java Tutorial online: Lesson: What's an Exception and Why do I Care?
java.sun.com/docs/books/tutorial/essential/exceptions/definition.html
2. Chapter 2, sections 2.5 - 2.6
3. 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/
4. Javabat Exercises: Array 2, Ten Run,   Array 2, Not Alone,   Array 2 Centered Average
Monday, September 15 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
5. Javabat Exercises: String 2, Get Sandwich,   String 2, Star Out,   String 2, Repeat Front
Tuesday, September 16 Discussion Section 1. Quiz 2
2. Q and A for assignment 2
3. Problem 5 from section problem handout 2.
Wednesday, September 17 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.
4. Javabat Exercises: Array 3, Count Clumps,   Array 3, Can Balance

A. Assignment 3 out

Thursday, September 18 Assignment 2 due Assignment 2 due by 11 pm.
Friday, September 19 Topic 6: Designing and Implementing Classes. 1. Javabat Exercises: Array 3, Max Span,   String 3, Not Replace
Monday , September 22 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
Tuesday, September 23 Discussion Section 1. Quiz 3
2. Q and A for assignment 3
3. Problem 9 from section handout 3, building a complex number class.
Wednesday, September 24 Topic 7: Inheritance and polymorphism

Assignment 4 out

Assignment 4 posted
Thursday, September 25 Assignment 3 due Assignment 3 due by 11 pm
Friday, September 26 Topic 7: Inheritance and polymorphism  
Monday, September 29 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
Tuesday, September 30 Discussion Section 1. Quiz 4
2. Q and A for assignment 4
3. Problem 3 from section problem handout 4. Ticket problem.
Wednesday, October 1 Topic 8: Interfaces and abstract classes.  
Friday, October 3 Topic 9: Algorithm analysis
Slides: PPT, PDF, PDF 4up
1. Chapter 5
2. Algorithm Analysis and Big O at Wikipedia
3. The National Institute of Standards and Technology, Dictionary of Data Structures and Algorithms page on Big O notation.
4. Slides on Big O by Owen Astrachan of Duke University. 
Monday, October 6 Topic 9: Algorithm analysis Assignment 4 due by 11 pm
Assignment 5 posted
Tuesday, October 7 Discussion Section 1. Quiz 5
2. Review for midterm 1.
Wednesday, October 8 Topic 9: Algorithm analysis

Midterm 1, 6 - 8 pm in WEL 1.316

Midterm 1, 6 - 8 pm in WEL 1.316
Midterm 1 will cover up to and including all object oriented programming topics. It will not include algorithm analysis or recursion.
Friday, October 10 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
4. Javabat Exercises: Recursion 1, Bunny EarsRecursion 1, Bunny Ears 2,    Recursion 1,  Triangle, Recursion 1, Count 7,    Recursion 1, String Clean,   Recursion 1, Fibonacci
Monday, October 13 Topic 10: Introduction to recursion  
Tuesday, October 14 Discussion Section 1. Quiz 6
2. Q and A for assignment 5.
3. Midterm 1 handed back, cover suggested solutions,
Wednesday, October 15 Topic 11: Recursive backtracking
Slides: PPT, PDF, PDF 4up

Assignment 6 out

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.
6. Javabat Exercises: Recursion 1, Nested Parenthesis,    Recursion 1 Count X,    Recursion 1,  No X,  
Thursday, October 16 Assignment 5 due Assignment 5 due by 11 pm
Friday, October 17 Topic 11: Recursive backtracking  
Monday, October 20 Topic 12: Sorting and searching
Slides: PPT, PDF, PDF 4up
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. 
7. Javabat Exercises: Recursion 2, Group Sum,   Recursion 2, Split 10 Odd,  
Tuesday, October 21 Discussion Section 1. Quiz 7
2. Q and A for assignment 6
3. Problems 4, 8, and 11 from section problem handout 6.
Wednesday, October 22 Topic 12: Sorting and searching
Slides: PPT, PDF, PDF 4up

Assignment 7 out

 
Thursday, October 23 Assignment 6 due Assignment 6 due by 11 pm
Friday,
October 24
Topic 12: Sorting and searching
Slides: PPT, PDF, PDF 4up
 
Monday, October 27 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.
Tuesday, October 28 Discussion Section 1. Quiz 8
2. Q and A for assignment 7
3. Part 1 from section problems 8.
Wednesday, October 29 Topic 14: Generic Data Structures
Slides: PPT, PDF, PDF 4up

Assignment 8 out

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
Thursday, October 30 Assignment 7 due Assignment 7 due by 11 pm
Friday,
October 31
Topic 15:  Iterators
Slides: PPT, PDF, PDF 4up
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
Monday, November 3 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
Tuesday, November 4 Discussion Section 1. Quiz 9
2. Q and A for assignment 8
Wednesday, November 5 Topic 16: Linked Lists

Assignment 9 out

 
Friday,
November 7
Topic 16: Linked Lists  
Monday, November 10 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
Tuesday, November 11 Discussion Section 1. Quiz 10
2. Review for midterm 2
Wednesday, November 12 Topic 17: Stacks

Midterm 2, 6 - 8 pm in GEO WEL 1.316

Midterm 2, 6 - 8 pm in WEL 1.316
Midterm 2 will cover up to and including Linked Lists.
Friday,
November 14

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

Assignment 8 due

1. Chapter 16
2. Queues at Wikipedia.
3. Queues at the NIST Dictionary of Algorithms and Data Structures

A. Assignment 8 due by 11 pm

Monday, November 17 Topic 18: Queues  
Tuesday, November 18 Discussion Section 1. Quiz 11
2. Q and A for assignment 9
3. Midterm 2 handed back, cover suggested solutions,
Wednesday, November 19 Topic 19: Trees
Slides: PPT, PDF, PDF 4up

Assignment 10 out

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.)
Thursday, November 20 Assignment 9 due Assignment 9 due by 11 pm
Friday,
November 21
Topic 20: Binary search trees
Slides: PPT, PDF, PDF 4up
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
Monday, November 24 Topic 20: Binary search trees

Assignment 11 out

 
Tuesday, November 25 Discussion Section 1. Quiz 12
2. Q and A for assignment 10
Wednesday, November 26 No class today, CS307 only. No class today, CS 307 only. Compensation for evening midterms.
Friday,
November 28
Thanksgiving Holiday, UT closed, no class. Thanksgiving Holiday, UT closed, no class.
Monday, December 1 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.
Tuesday, December 2 Discussion Section

Assignment 10 due

1. Quiz 13
2. Review for the final
3. TA evaluations

A. Assignment 10 due by 11 pm.

Wednesday, December 3 Topic 22: Hash tables
Slides: PPT, PDF, PDF 4up

Course-Instructor Evaluations

1. Chapter 20
2. Hash tables at Wikipedia
3. Hash tables at NIST DADS
Friday,
December 5
Topic 23: Maps / dictionaries
Slides: PPT, PDF, PDF 4up

Assignment 11 due. No slip days may be used on assignment 11.

1. Section 6.8
2. Maps / Dictionaries at Wikipedia (a.k.a. associative arrays)
3. Maps / Dictionaries at NIST DADS

Assignment 11 due by 11 pm.
No slip days may be used on assignment 11.

 December 8 & 9 Dead Days Dead Days
Wednesday, December 10 First Day of Finals The CS307 final will be given at a uniform time for both lecture sections. The final time will NOT follow the time listed in the course schedule. The data and time for the final will be available towards the end of October. Traditionally the Registrar schedules the final for either Wednesday, Thursday, or Friday evening of finals week, but could be as late as Tuesday, December 16.
Tuesday,
December 16
Finals End