This page will be removed on August 6th 2026. Please update your links to refer to https://esb.ics.hawaii.edu/2010spring.ics211/index.html instead.
Introduction to Computer Science II, ICS 211
This page is
http://www2.ics.hawaii.edu/~esb/2010spring.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. I also have some
suggestions for doing well in this course.
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.
- Tue, Jan 12, class introductions, course summary
Outline
- introductions
- course overview
extra credit assignment, due in
class Jan 14th (preferably) or Jan 19th.
Some links for this class:
- Thu, Jan 14, Java review, Appendix A and Chapter 2-2.4
Outline
- announcements
- Java review: basics, exceptions, variables, arrays, compound statements
Homework 1 assigned, due Sunday January 24th
Some links for this class:
- Tue Jan 19, Recursion, Chapter 7.
Outline
- Java review: if statements, booleans, comparisons,
while and for loops
- recursive thinking
- recursion in Java
- principles of recursion
- examples
Code examples for today's lecture
- Thu Jan 21, Recursion, Chapter 7.
Outline
- example of recursion
- Java command line arguments
- recursion with return values
- examples: fibonacci, factorial, power
- infinite recursion
- debugging
Homework 2 assigned, due Sunday January 31st.
Some links for this class:
- Tue Jan 26. Testing and debugging, Chapter 2.1, 2.5, 2.6.
Big O notation, Chapter 2.8
Outline
- debugging
- tracing programs
- runtime of programs
- program runtime analysis
- big O notation
Links for this class:
- Thu Jan 28. Abstract Data Types, Chapters 1.2-1.3. Class Hierarchy,
Chapter 3.
Outline
- big O notation
- sequential and binary search
- program design
- abstraction
Homework 3 assigned, due Sunday February 7th.
Code examples for today's lecture
- Tue Feb 2. Program design, abstraction, ADTs, Java interfaces.
Outline
- Abstract Data Types
- ADT attributes and behaviors
- Java classes -- review
- scope
- inheritance
- exceptions -- details
Code examples for today's lecture
- Thu Feb 4. Stacks, Chapter 5.
Outline
- inheritance
- exceptions -- details
- stacks
- stack ADT
- method signatures
- array stack implementation
Homework 4 assigned, due Sunday February 21st.
- Tue Feb 9. Exam review. Infix expressions.
Outline
- exam review:
- Java constructs
- Abstract Data Types
- stacks and array stack implementation
- run-time analysis and big-O
- objects, references, and pointers
- infix expressions
Note: in 2008, one of the students posted this
study
guide, partly taken from the quizzes that I gave that year (some
may look familiar). It may have some mistakes, but I link to it here
in case it is useful.
- Thu Feb 11. Exam 1, on all the material in the lectures,
the assignments, the quizzes, and Chapters 1.2-1.3, 2, 5.1, 5.3, and 7
and Appendix A in the textbook.
- Tue Feb 16.
Stacks implemented using linked lists, Chapter 5.
Outline
- expressions, parsing, evaluating
- infix expressions
- Java types and operators
- file I/O
- linked list implementation of stack ADT
- nodes
- linked lists
- Thu Feb 18. Post-exam review. Generic Types, Chapter 4.
Outline
- file I/O
- linked list implementation of stack ADT
- nodes
- linked lists
- shopping list implementation
- generic types
- generic linked lists
- menu implementation
Homework 5 assigned, due Sunday February 28th.
- Tue Feb 23. Generic Types, Chapter 4.
Outline
- nodes
- linked lists
- shopping list implementation
- generic types
- generic linked lists
- Thu Feb 25. Ordered linked lists, Chapter 4.7
Outline
- generic linked lists
- menu implementation
- database
- ordered linked lists
- Comparable interface
- ordered linked list add
- iterators
- iterator use
- iterator implementation
Homework 6 assigned, due Sunday March 7th.
- Tue Mar 2. Iterators, Chapter 4.5. Collections, Chapter 4.7.
Outline
- Comparable interface
- ordered linked list add
- iterators
- iterator use
- iterator implementation
- Thu Mar 4 Queues, chapter 6.
Outline
- iterator implementation
- queues
- queue interface
- queue implementation: array queue
- using queues
Homework 7 assigned, due Sunday March 14th.
- Tue Mar 9. Queues, chapter 6.
Outline
- queue implementation: linked queues
- queue exercises
- binary search
- trees
- binary search trees
- tree traversal
- binary search tree algorithms: add, remove, traverse
- binary node class
- Thu Mar 11. Binary search, Chapter 7.3. Trees, Chapter 8.1.
Binary trees, Chapter 8.2, 8.3.
Binary Search Trees. Chapter 8.4.
Outline
- trees
- binary search trees
- tree traversal
- binary search tree algorithms: add, remove, traverse
- binary node class
Homework 8 assigned, due Tuesday April 6th.
- Tue Mar 16. Exam review.
Outline
- exam review
- generic types
- databases
- iterators
- invariants
- queues
- binary search
- binary trees
- binary search trees
- tree traversal
- runtime analysis
- ability to implement needed methods
- recursion
- Thu Mar 18. Exam 2, on all the material since Exam 1 in the
lectures, the assignments, the quizzes, and Chapters 3-3.2, 4, 5 (partly
review, partly new material), 6, 7.3,
8.1-8.2. The exam will assume, but not
specifically test, general familiarity with the remainder of the
material in Chapter 7 and all material in the first exam.
- Tue Mar 30.
Binary Search Trees. Chapter 8.4.
Outline
- exam review
- trees
- binary search trees
- tree traversal
- binary search tree algorithms: add, remove, traverse
- binary node class
- Thu Apr 1. Binary Search trees. Chapter 8.4. Heaps, Chapter 8.5.
Outline
- binary node class
- binary search tree implementation
- binary search tree algorithms: get, add, remove, traverse
- databases
- runtime analysis of trees
Homework 9 assigned, due Tuesday April 13th.
- Tue Apr 6. Heaps and Priority Queues, Chapter 8.5.
Outline
- heaps
- heap storage in arrays
- heap insertion and removal
- Thu Apr 8. Sorting, Chapter 10.
Outline
- priority queues
- priority queues implementation
- equality and comparisons in Java
- sorting
- selection sort
Homework 10 assigned, due Tuesday April 20th.
- Tue Apr 13. Sorting, Chapter 10.
Outline
- bubble sort
- insertion sort
- merge sort
- Thu Apr 15. Sorting, Chapter 10.
Outline
- heap sort
- quick sort
- Shell sort
- hash tables
- hash functions
- open addressing
- chained hashing
Homework 11 assigned, due Tuesday April 27th.
- Tue Apr 20. Hashing, Chapter 9.3 and 9.4.
Outline
- hash tables
- hash functions
- open addressing
- chained hashing
- Thu Apr 22. Chapter 9.3 and 9.4. Vectors, Chapter 4.1-4.3.
Outline
- open addressing
- chained hashing
- vectors
- vector implementation
- Huffman coding
- Huffman trees
- Huffman tree implementation
Homework 12 assigned, due Tuesday May 4th.
- Tue Apr 27. Huffman coding and Huffman trees. Chapter 8.6.
Outline
- Huffman coding
- Huffman trees
- implementation
- java types, classes, and interfaces
- Thu Apr 29. Course review, part 1.
Outline
- Tue May 4. Course review, part 2.
Outline
See also:
The final exam for this class is
scheduled for Thursday May 13th, from 2:15pm to 4:15pm