back to cs203-syllabus
CS203 - Teaching Material - Fall 2006
Lectures
- 9/21/06: Recursion. Method call stack. Examples:
Fibonacci numbers. Exponentiality of the recursive
solution. Memoization. A closed formula for the Fibonacci
numbers.
- 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.
- 9/28/06: Backtracking Algorithms: generating permutations
and binary sequences.
- 10/03/06: Binary and Linear Search. Sorting: SelectionSort
and MergeSort.
- 10/05/06: The class BigInteger. Computing the factorials of
large integers. Data Structures: specification and
implementation. Interfaces and classes in Java.
- 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.
- 10/12/06: Lab project.
- 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.
- 10/19/06: Generic methods. A top-down predictive parser for
arithmetic expressions.
- 10/24/06: Lab project. Review of pj3.
- 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.
- 10/31/06: Exercises on data structures, recursion,
collections and generic programming.
- 11/2/06: Binary Search Trees: insertion and deletion.
- 11/7/06: MT
- 11/9/06: Multithreading. States of a
thread. Time-sharing. Activation of concurrent threads. The
Producer/Consumer problem with a nonsynchronized shared buffer.
- 11/14/06: The Producer/Consumer problem with
Synchronization. Lock and Condition variables. Deadlocks.
- 11/16/06: Networking. Classes ServerSocket and
Socket. Design of a multithreaded Server.
- 11/21/06: Animations and GUIs.
- 11/28/06: Multithreaded Code Animations. Animated Selection
Sort (chapter 23 in Cay Horstmann's Big Java).
- 11/30/06: Project review.
Announcements
- 11/7/06: Midterm Examination. Topics: Recursion, Data
Structures, Collections, Generics.
- Wednesday, November 15, OH will be held from 10am to 12am.
Packages
Projects
- cs203-f06-pj1. Due
Tuesday, Oct 3, 2006, at the beginning of lab class.
- cs203-f06-pj2. Due
Tuesday, Oct 10, 2006, at the beginning of lab class.
- cs203-f06-pj3. Due
Tuesday, Oct 17, 2006, at the beginning of lab class. (Modified
10/11/06 at 9:10pm).
- cs203-f06-pj4. Due
Thursday, Nov 2, 2006, at the end of lab class.
- cs203-f06-mt. Due Tuesday,
Nov 7, 2006, at the end of lab class. ExamPackage-f-06-Solutions.
- cs203-f06-pj5. Due
Tuesday, Nov 28, 2006, at the end of lab class.
- 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.