Introduction to Computer Science II, ICS 211
This page is
http://www2.ics.hawaii.edu/~esb/2008fall.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, Aug 26, class introductions, course summary
Outline
- introductions
- course overview
extra credit assignment, due in
class Aug 28th (preferably) or Sep 2nd.
Some links for this class:
- Thu, Aug 28, Java review, Appendix A and Chapter 2-2.4
Outline
- announcements
- Java review: basics, exceptions, variables, arrays, compound statements
- Homework 1 assigned, due Sunday September 7
Some links for this class:
- Tue Sep 2, Recursion, Chapter 7.
Outline
- Java review: arrays, if statements, booleans, comparisons,
while and for loops
- recursive thinking
- recursion in Java
- principles of recursion
- examples
Code examples for today's lecture
- Thu Sep 4, 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 September 14th.
Some links for this class:
- Tue Sep 9. Testing and debugging, Chapter2.1, 2.5, 2.6.
Big O notation, Chapter 2.8
Outline
- debugging
- runtime of programs
- program runtime analysis
- big O notation
Links for this class:
- Thu Sep 11. Abstract Data Types, Chapters 1.2-1.3. Class Hierarchy,
Chapter 3.
Outline
- big O notation
- sequential and binary search
- program design
- abstraction
- Java interfaces
- abstract data types
- Java classes -- review
- scope
- inheritance
- exceptions -- details
Homework 3 assigned, due Sunday September 21st.
Code examples for today's lecture
- Tue Sep 16.
Outline
- program design
- abstraction
- Java interfaces
- abstract data types
Code examples for today's lecture
- Thu Sep 18. Stacks, Chapter 5.
Outline
- ADT attributes and behaviors
- Java classes -- review
- scope
- inheritance
- exceptions -- details
- stacks
- stack ADT
- method signatures
- array stack implementation
Homework 4 assigned, due Sunday October 5th.
- Tue Sep 23. 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
a study
guide maintained by one of the students.
- Thu Sep 25. 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 Sep 30. Post-exam review.
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 Oct 2. Generic Types, Chapter 4.
Outline
- file I/O
- linked list implementation of stack ADT
- nodes
- linked lists
Homework 5 assigned, due Sunday October 12th.
- Tue Oct 7. Generic Types, Chapter 4.
Outline
- shopping list implementation
- generic types
- generic linked lists
- menu implementation
- Thu Oct 9. Ordered linked lists, Chapter 4.7
Outline
- database
- ordered linked lists
- Comparable interface
- ordered linked list add
Homework 6 assigned, due Sunday October 19th.
- Tue Oct 14. Iterators, Chapter 4.5. Collections, Chapter 4.7.
Outline
- iterators
- iterator use
- iterator implementation
Code examples for today's lecture
- Thu Oct 16 Queues, chapter 6.
Outline
- queues
- queue interface
- queue implementation: array queue
- using queues
- queue implementation: linked queues
- queue exercises
Homework 7 assigned, due Sunday October 26th.
- Tue Oct 21. Queues, chapter 6.
Binary trees, Chapter 8.2, 8.3.
Outline
- queue implementation: linked queues
- queue exercises
- Thu Oct 23. Binary search, Chapter 7.3. Trees, Chapter 8.1.
Binary Search Trees. Chapter 8.4.
Outline
- binary search
- trees
- binary search trees
- tree traversal
- binary search tree algorithms: add, remove, traverse
- binary node class
- Tue Oct 28. Exam review.
Outline
- generic types
- databases
- iterators
- invariants
- queues
- binary search
- binary trees
- binary search trees
- tree traversal
- runtime analysis
- ability to implement needed methods
- recursion
- Thu Oct 30. 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.
See also the
study
guide provided by Remy.
Homework 8 assigned, due Sunday November 9th.
- Thu Nov 6.
Binary Search Trees. Chapter 8.4.
Outline
- binary node class
- binary search tree implementation
- binary search tree algorithms: get, add, remove, traverse
- databases
- runtime analysis
Homework 9 assigned, due Sunday November 16th.
- Thu Nov 13. Binary Search trees. Chapter 8.4. Heaps, Chapter 8.5.
Outline
- binary search tree algorithms: add, remove, traverse
- runtime analysis of binary search trees
- heaps
Homework 10 assigned, due Sunday November 23rd.
- Tue Nov 18. Heaps and Priority Queues, Chapter 8.5.
Outline
- heaps
- heap storage in arrays
- priority queues
- priority queue implementation
- Thu Nov 20. Sorting, Chapter 10.
Outline
- priority queues implementation
- equality and comparisons in Java
- sorting
- selection sort
- bubble sort
- insertion sort
Homework 11 assigned, due Sunday November 30th.
- Tue Nov 25. Sorting, Chapter 10.
Outline
- merge sort
- heap sort
- quick sort
- shell sort
- Tue Dec 2. Hashing, Chapter 9.3 and 9.4.
Outline
- hash tables
- hash functions
- open addressing
- chained hashing
Homework 12 assigned, due Thursday December 11th
(there is no lab on December 12th).
- Thu Dec 4. Chapter 9.3 and 9.4. Vectors, Chapter 4.1-4.3.
Outline
- vectors
- vector implementation
- Tue Dec 9. Huffman coding and Huffman trees. Chapter 8.6.
Outline
- Huffman coding
- Huffman trees
- implementation
- Thu Dec 11. Course 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 (plus vectors), linked lists, queues,
binary trees, binary search, binary search trees, tree traversal, invariants
- heaps, priority queues, hashing, sorting (insertion, selection,
bubble, mergsort, heapsort, quicksort), huffman coding
The final exam for this class is
scheduled for Thursday Dec 18th, from 2:15pm to 4:15pm
See also: