This page will be removed on August 6th 2026. Please update your links to refer to https://esb.ics.hawaii.edu/2007fall.ics211/index.html instead.
Introduction to Computer Science II, ICS 211
This page is
http://www2.ics.hawaii.edu/~esb/2007fall.ics211/index.html
This page is subject to change without notice -- please reload it
in your browser if an item that might affect you may have changed.
The organization of the course is described here. Please review it at the beginning of the
course and occasionally during the course. It includes information
about course goals, class time and location, contacting the
instructor, office hours, the textbook, grading,
and the no cheating policy.
If you have any questions, please contact the instructor.
Schedule
This schedule is subject to change.
Presentation notes are in HTML. I usually post notes no later than the
day before the lecture.
- Wed, Aug 22: class introductions, course summary
Outline
- introductions
- course overview
Extra
credit assignment, due in class Aug 22nd (preferable),
or Aug 24th.
Some links for this class:
- Fri, Aug 24, Java review, Appendix A and Chapter 2-2.4
Outline
- survey
- announcements
- Java review: basics, exceptions, variables, arrays, compound statements
Assignment 1, due at noon on August 28th.
Some links for this class:
- Wed, Aug 29, Recursion, Chapter 7.
Outline
- recursive thinking
- recursion in Java
- principles of recursion
- examples
- Java command line arguments
Assignment 2, due at noon on August 30th.
example code for this class.
- Fri, Aug 31. Recursion, Chapter 7. Testing and debugging,
Chapter 2.1, 2.5, 2.6
Outline
- recursion reminder
- recursion with return values
- examples: fibonacci, factorial, power
- infinite recursion
- debugging
Assignment 3, due at noon on September 4th.
Some links for this class:
- Wed, Sep 5. Big O notation, Chapter 2.8
Outline
- runtime of programs
- program runtime analysis
- big O notation
- sequential and binary search
Assignment 4, due at noon on September 6th.
example code for this class.
- Fri, Sep 7. Abstract Data Types, Chapters 1.2-1.3
Outline
- program design
- abstraction
- Java interfaces
- abstract data types
- Java classes
- scope
- inheritance
- exceptions
Assignment 5, due at noon on September 11th. The example code mentioned
in the assignment is
here
example code for this class.
- Wed, Sep 12, Stacks and implementation using arrays, Chapter 5
Outline
- stacks
- stack ADT
- method signatures
- array stack implementation
- Java types and operators
- expressions, parsing, evaluating
- File I/O
Assignment 6, due at noon on September 13th.
example code for this class.
- Fri, Sep 14, Stack implementation using linked lists, Chapter 5
Outline
- linked list implementation of stack ADT
- nodes
- linked lists
- stack applications
Assignment 7, due at 5pm on September 19th.
Some links for this class:
- Wed, Sep 19. Exam review.
Outline
- Java constructs
- Abstract Data Types
- stacks and stack implementations
- run-time analysis and big-O
- objects, references, and pointers
Assignment 8, due at noon on September 25th.
- Fri, Sep 21. Exam 1, on all the material up until now (including
assignment 7).
- Wed, Sep 26. Generic types, Chapter 4.
Outline
- Post-exam review
- shopping list implementation
- generic types
- generic linked lists
- menu implementation
- Fri, Sep 28. Ordered linked lists, Chapter 4.7
Outline
- generic linked lists
- menu implementation
- ordered linked lists
- Comparable interface
- ordered linked list add
- database
Assignment 9, due at noon on October 4th.
- Wed, Oct 3. Iterators, Chapter 4.5
Outline
- generic ordered linked list
- database
- iterators
- iterator use
- iterator implementation
Assignment 10, due at noon on October 9th.
- Fri, Oct 5. Queues, Chapter 6.
Outline
- Queues
- queue interface
- queue implementation: array queue
- using queues
Assignment 11, due at 10am on October 12th.
- Wed, Oct 10. Queues, Chapter 6.
Outline
- queue implementation: linked queues
- queue exercises
Assignment 12, due at noon on October 18th.
- Fri, Oct 12. Binary search, trees. Chapter 7.3, 8.1.
Outline
- binary search
- trees
- binary search trees
- tree traversal
- Wed, Oct 17. Tree traversal, tree algorithms. Chapter 8.2, 8.3
Outline
- tree traversal
- binary search tree algorithms: add, remove, traverse
- binary node class
Assignment 13, due at noon on October 23rd.
- Fri, Oct 19. Binary search tree implementation. Chapter 8.3, 8.4.
Outline
- binary search tree implementation
- databases
- runtime analysis
Assignment 14, due at noon on October 26th.
- Wed, Oct 24. Binary search tree implementation. Chapter 8.3, 8.4.
Outline
- binary search tree algorithms
- runtime analysis
- heaps
Assignment 15, due at noon November 6th.
- Fri, Oct 26 Exam review.
Outline
- exam review
- generic types
- ordered linked lists
- databases
- iterators
- invariants
- queues
- binary search
- binary trees
- binary search trees and operations
- tree traversal
- runtime analysis
- ability to implement needed methods
- recursion
- Wed, Oct 31 Exam 2, on all the material up till now, including
assignment 14 and chapters 4, 6, 7.3, 8.1-8.4. The exam may assume knowledge
of material previously covered in class, including parts or all of
chapters 1-3, 5, and 7 and appendix A.
- Fri, Nov 2. Priority queues. Chapter 8.5.
Outline
- heap reminder
- priority queues
Assignment 16, due at 11:59pm (midnight) November 8th.
- Wed, Nov 7. Priority queues and hashing. Chapter 8.5, Chapter 9.
Outline
- priority queues
- implementation
- hash tables
Assignment 17, due at noon November 13th.
- Fri, Nov 9. Hashing, Chapter 9.
Outline
- hash functions
- chained hashing
- open addressing
- double hashing
- chained hashing
Assignment 18, due at 11:59pm (midnight) November 15th.
- Wed, Nov 14. Sorting, selection sort, Chapter 10.1 and 10.2
Outline
- sorting
- equality and comparisons
- selection sort
Assignment 19, due at noon November 20th.
- Fri, Nov 16. Bubble sort, insertion sort, shell sort. Chapter 10.3-10.6.
Outline
- bubble sort
- insertion sort
- shell sort
- Wed, Nov 21. Merge sort. Chapter 10.7
Outline
Assignment 20, due at 11pm November 30th.
- Wed, Nov 28. Heap sort, quick sort. Chapter 10.8-10.10.
Outline
- Fri, Nov 30. Huffman trees. Chapter 8.6
Outline
- huffman coding
- huffman trees
- implementation
Assignment 21, due at 11pm December 5th.
- Wed, Dec 5. Review.
Outline
- course review
- exam 1 material: Java, ADTs, stacks,
run-time big-O, objects, references and pointers, recursion
- exam 2 material: generic types and
container classes, linked lists, queues, binary (search) trees, binary
search, tree traversal, invariants
- heaps, priority queues, hashing, sorting, huffman coding
The final exam for this class is
scheduled for Monday, December 10th, from 9:45am to 11:45am