Schedule - CS 307 - Fall 2009
| 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 26 | 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. |
| Friday, August 28 | 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 |
| Monday, August 31 | Topic 2: Java basics |
1. Programming with assertions. Online at: http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html (4th class day) Last day of the official add/drop period; after this date, changes in registration require the approval of the department chair and usually the student’s dean. |
| Tuesday, September 1 | Optional discussion sections. Assignment 1A help session during discussion section. | Optional discussion sections. Assignment 1 help session during discussion section. |
| Wednesday, September 2 | Topic 2: Java basics | Assignment 1B posted. |
| Thursday, September 3 | Assignment 1A due | Assignment 1A due by 11 pm |
| Friday, September 4 | 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 |
| Monday, September 7 | Labor Day Holiday | Labor Day Holiday, No Class |
| Tuesday, September 8 | Discussion Section | 1. Quiz 1 2. Q and A (questions and answers) for assignment 2 3. If time remaining go over the Roman Numeral problem (number 4) from section problem handout 1. |
| Wednesday, September 9 | 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. Assignment 2 posted. |
| Thursday, September 10 | Assignment 1B due | Assignment 1B due by 11 pm. |
| Friday, September 11 | 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/ (12th class day) Last day to drop for a possible refund. Last day to add a course. |
| Monday, September 14 | 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 |
| Tuesday, September 15 | Discussion Section |
1. Quiz 2 2. Q and A for assignment 3 3. Problem 5 from section problem handout 2. |
| Wednesday, September 16 | 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 Assignment 3 posted |
| Thursday, September 17 | Assignment 2 due | Assignment 2 due by 11 pm. |
| Friday, September 18 | Topic 6: Designing and Implementing Classes. | |
| Monday , September 21 | 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 22 | Discussion Section |
1. Quiz 3 2. Q and A for assignment 4 3. Problem 9 from section handout 3, building a complex number class. |
| Wednesday, September 23 | Topic 7: Inheritance and polymorphism |
Assignment 4 posted (20th class day) Last day to drop a course without a possible academic penalty. |
| Thursday, September 24 | Assignment 3 due | Assignment 3 due by 11 pm |
| Friday, September 25 | Topic 7: Inheritance and polymorphism | |
| Monday, September 28 | 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 29 | Discussion Section |
1. Quiz 4 2. Q and A for assignment 5 3. Problem 3 from section problem handout 4. Ticket problem. |
| Wednesday, September 30 | Topic 8: Interfaces and abstract classes. | Assignment 5 posted |
| Thursday, October 1 | Assignment 4 due | Assignment 4 due by 11 pm |
| Friday, October 2 |
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. |
| Monday, October 5 | Topic 9: Algorithm analysis | |
| Tuesday, October 6 | Discussion Section |
1. Quiz 5 2. Q and A for assignment 6 3. Midterm 1 review |
| Wednesday, October 7 | Topic 9: Algorithm analysis Midterm 1, 6 - 8 pm. Location JES A121A. |
Midterm 1, 6 - 8 pm. Location
JES A121A Midterm 1 covers up to and including all object oriented programming topics. (Topics 1 - 9.) Algorithm analysis will not be tested on midterm 1. |
| Friday, October 9 | 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 |
| Monday, October 12 | Topic 10: Introduction to recursion | |
| Tuesday, October 13 | Discussion Section |
1. Quiz 6 2. Midterm 1 handed back, review suggested solution 2. Q and A for assignment 7. |
| Wednesday, October 14 | 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. Assignment 6 posted |
| Thursday, October 15 | Assignment 5 due | Assignment 5 due by 11 pm |
| Friday, October 16 | Topic 11: Recursive backtracking | |
| Monday, October 19 | 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. |
| Tuesday, October 20 | Discussion Section |
1. Quiz 7 2. Q and A for assignment 8 4. Problems 4, 8, and 11 from section problem handout 6. |
| Wednesday, October 21 | Topic 12: Sorting and searching Slides: PPT, PDF, PDF 4up
|
Mid semester. Last day an undergraduate student may, with the dean's approval, withdraw from the University or drop a course except for urgent and substantiated, nonacademic reasons. ("Q drop" a course.) Last day a student may change registration in a course to or from the pass/fail or credit/no credit basis. In practice I always grant approval for "Q drops" up to this date as long as their are no issues with academic integrity. Assignment 7 posted |
| Thursday, October 22 | Assignment 6 due | Assignment 6 due by 11 pm |
| Friday, October 23 |
Topic 12: Sorting and searching Slides: PPT, PDF, PDF 4up |
|
| Monday, October 26 | 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 27 | Discussion Section |
1. Quiz 8 2. Q and A for assignment 8 3. Part 1 from section problems 8. |
| Wednesday, October 28 | Topic 14: Generic Data Structures 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 Assignment 8 posted. |
| Thursday, October 29 | Assignment 7 due | Assignment 7 due by 11 pm |
| Friday, October 30 |
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 2 | Topic 15: Iterators | |
| Tuesday, November 3 | Discussion Section |
1. Quiz 9 2. Q and A for assignment 9 |
| Wednesday, November 4 | 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
|
| Friday, November 6 |
Topic 16: Linked Lists | |
| Monday, November 9 | Topic 16: Linked Lists | |
| Tuesday, November 10 | Discussion Section |
1. Quiz 10 2. Q and A for assignment 9 |
| Wednesday, November 11 | 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 Assignment 9 posted. |
| Thursday, November 12 | Assignment 8 due. | Assignment 8 due by 11 pm |
| Friday, November 13 |
Topic 17: Stacks |
|
| Monday, November 16 | 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
|
| Tuesday, November 17 | Discussion Section |
1. Quiz 11 2. Review for Midterm 2 |
| Wednesday, November 18 | Topic 19: Trees Slides: PPT, PDF, PDF 4up Midterm 2, 6 - 8 pm, Location WEL 1.316 |
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.) Midterm
2, 6 - 8 pm. Location
WEL 1.316 Assignment 10 posted. No more than 3 slip days may be used on Assignment 10. |
| Friday, November 20 |
Topic 20: Binary search trees Slides: PPT, PDF, PDF 4up Assignment 9 due |
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 Assignment 9 due by 11 pm, |
| Monday, November 23 | Topic 20: Binary search trees | Assignment 11 posted. Slip days may not be used on assignment 11. |
| Tuesday, November 24 | Discussion Section
|
1. Quiz 12 2. Midterm 2 handed back, review suggested solution |
| Wednesday, November 25 | No Class, CS307 only | No Class, CS307 only |
| Thursday, November 26 | Thanksgiving Holiday | Thanksgiving Holiday, no class |
| Friday, November 27 |
Thanksgiving Holiday | Thanksgiving Holiday, no class |
| Monday, November 30 | 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 1 | Discussion Section Assignment 10 due. |
1. Quiz 13 2. Height method for binary tree 3. TA evaluations Assignment 10 due by 11 pm. No more than 3 slip days may be used on Assignment 10. |
| Wednesday, December 2 | Topic 22: Hash tables, Maps / Dictionaries Course-Instructor Evaluations |
1. Chapter 20 2. Hash tables at Wikipedia 3. Hash tables at NIST DADS Course-Instructor Evaluations |
| Friday, December 4 |
Topic 22: Hash tables, Maps / Dictionaries Assignment 11 due. |
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. Slip days may NOT be used on assignment 11. |
| December 7 & 8 | Dead Days | Dead Days |
| Wednesday, December 9 | 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, but will be listed in the final exam schedule as a uniform exam. 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 15. |
| Tuesday, December 15 |
Finals End |