back to cs203-syllabus

CS203 - Teaching Material - Fall 2006

Lectures

  1. 9/21/06: Recursion. Method call stack. Examples: Fibonacci numbers. Exponentiality of the recursive solution. Memoization. A closed formula for the Fibonacci numbers.

  2. 9/26/06: Binary representation of integers: 2-complement and length of the representation. Robustness: estimation of the largest integer whose Fibonacci value can be stored in a Java int variable.

  3. 9/28/06: Backtracking Algorithms: generating permutations and binary sequences.

  4. 10/03/06: Binary and Linear Search. Sorting: SelectionSort and MergeSort.

  5. 10/05/06: The class BigInteger. Computing the factorials of large integers. Data Structures: specification and implementation. Interfaces and classes in Java.

  6. 10/10/06: Type-wrapper classes for primitive types. Auto-boxing and auto-unboxing. Self-referencing classes. Linked Lists. Data Structures: Stacks. Array implementation and Linked List implementation. Overriding methods equals and hashCode. Hashtables.

  7. 10/12/06: Lab project.

  8. 10/17/06: Generic classes and type variables. Data Structures: Trees and Queues. Generic Queues. Preorder, inorder, postorder. Operators trees. Evaluating postfix expressions with a Stack. Parsing arithmetic expressions: a simple LL(1) grammar.

  9. 10/19/06: Generic methods. A top-down predictive parser for arithmetic expressions.

  10. 10/24/06: Lab project. Review of pj3.

  11. 10/26/06: The Java Collections Framework. Interfaces List, Set, Map and Queue. Classes LinkedList, ArrayList, HashSet, HashMap, TreeSet, TreeMap, Queue and PriorityQueue. Use of iterators to traverse collections.

  12. 10/31/06: Exercises on data structures, recursion, collections and generic programming.

  13. 11/2/06: Binary Search Trees: insertion and deletion.

  14. 11/7/06: MT

  15. 11/9/06: Multithreading. States of a thread. Time-sharing. Activation of concurrent threads. The Producer/Consumer problem with a nonsynchronized shared buffer.

  16. 11/14/06: The Producer/Consumer problem with Synchronization. Lock and Condition variables. Deadlocks.

  17. 11/16/06: Networking. Classes ServerSocket and Socket. Design of a multithreaded Server.

  18. 11/21/06: Animations and GUIs.

  19. 11/28/06: Multithreaded Code Animations. Animated Selection Sort (chapter 23 in Cay Horstmann's Big Java).

  20. 11/30/06: Project review.

Announcements

  1. 11/7/06: Midterm Examination. Topics: Recursion, Data Structures, Collections, Generics.

  2. Wednesday, November 15, OH will be held from 10am to 12am.

Packages


Projects

  1. cs203-f06-pj1. Due Tuesday, Oct 3, 2006, at the beginning of lab class.
  2. cs203-f06-pj2. Due Tuesday, Oct 10, 2006, at the beginning of lab class.
  3. cs203-f06-pj3. Due Tuesday, Oct 17, 2006, at the beginning of lab class. (Modified 10/11/06 at 9:10pm).
  4. cs203-f06-pj4. Due Thursday, Nov 2, 2006, at the end of lab class.
  5. cs203-f06-mt. Due Tuesday, Nov 7, 2006, at the end of lab class. ExamPackage-f-06-Solutions.
  6. cs203-f06-pj5. Due Tuesday, Nov 28, 2006, at the end of lab class.
  7. cs203-f06-final. Due Tuesday, Dec 5, 2006, at the end of lab class.

CSNS - Computer Science Network Services

Assignments and exams should be uploaded by the due date through the CSNS - Computer Science Network Services website. If you have never used this system before then follow the instructions for students.