This page will be removed on August 6th 2026. Please update your links to refer to https://esb.ics.hawaii.edu/2025spring.ics211/index.html instead.
Introduction to Computer Science II, ICS 211
This page is
https://www2.hawaii.edu/~esb/2025spring.ics211/
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 lectures for this class are in ART
room 132 (the Art Auditorium), every Monday and Wednesday 10:30-11:45am.
The labs for this class are in the Pacific Ocean Science and
Technology building (POST) room 319:
- Section 1 (CRN 81456): every
Monday and Wednesday, 4:30pm-5:45pm, TA Rahat Zawad
- Section 2 (CRN 82138): every
Tuesday and Thursday, 1:30pm-2:45pm, TA Benjamin Strauss
- Section 3 (CRN 83983): every
Monday and Wednesday, 3pm-4:15pm, TA Feimei Chen
- Section 4 (CRN 86132): every
Tuesday and Thursday, 4:30pm-5:45pm, TA Benjamin Strauss
- Section 5 (CRN 87860): every
Monday and Wednesday, 12noon-1:15pm, TA Feimei Chen
Office hours and contact information for the TAs and for the
instructor are in the Resources tab of Laulima. The instructor's email
address is esb@hawaii.edu.
The textbook for the course is "Data Structures: Abstraction
and Design Using Java", Third Edition, by Elliot B. Koffman and
Paul A. T. Wolfgang, Wiley 2017. The book is accessible online from
Laulima, in the left-hand menu bar as "Vital Source for UH Manoa IDAP".
Students may also wish to consider looking at these freely accessible
texts:
Schedule
This schedule is subject to change.
- Mon, Jan 13. Course introductions, course summary.
Presentation
- introductions
- course overview
Links for this class:
homework 1 (Java Review) assigned, due Saturday Jan 18th at 11:55pm.
- Wed, Jan 15. Java Basics Review. Appendix A in the book or
Introduction to
Programming Using Java.
Presentation
- basics
- exceptions
- variables
- arrays
- modulo (%) operator
- if statements, booleans, comparisons
- loops: while and for
Links for this class:
homework 2 (Reading and Understanding Programs) assigned, due Saturday Jan 25th at 11:55pm.
Mon, Jan 20. Martin Luther King, Jr. day holiday.
- Wed, Jan 22. Java Review, continued. Java Objects Review. Interfaces, super- and sub-classing, object-oriented programming, Java classes and objects, wrappers, exceptions. Textbook Sections 1.1-1.2, A6-A7, A11.
Presentation
- if statements, booleans, comparisons
- loops: while and for
- Java Interfaces
- Java Classes and Objects
- throwing exceptions
homework 3 (Class Hierarchies) assigned, due Saturday Feb 1st at 11:55pm.
- Mon, Jan 27. Method overriding, overloading, and polymorphism, abstract classes, casting, exception class hierarchy. Sections 1.3-1.6 in the book.
Presentation
- Special class variables
- Class hierarchy and inheritance
- Method overriding and overloading, polymorphism
- Abstract classes
- Casting and instanceof/getClass
- Class Object
- Exception class hierarchy
Links for this class:
- Wed, Jan 29. Selection Sort. Bubble sort. Insertion Sort. Introduction to Algorithm Analysis. Section 2.4 and Sections 8-8.4 in the book.
Presentation
- equality and comparisons in Java
- sorting
- selection sort
- bubble sort
- insertion sort
Links for this class:
homework 4 (Sorting) assigned, due Saturday Feb 8th at 11:55pm.
- Mon, Feb 3. Algorithm runtime analysis. Section 2.1 in the book.
Recursion. Sections 5-5.3 in the book.
Presentation
- insertion sort
- algorithm runtime analysis
- principles of recursion
- recursive factorial
- binary search
Links for this class:
- Wed, Feb 5. Recursion. Sections 5.4-5.6 in the book.
Presentation
- principles of recursion
- printing integers
- fibonacci numbers
- problem solving with recursion
- towers of hanoi
- backtracking
- memory management
Links for this class:
homework 5 (Recursion) assigned, due Saturday February 22nd at 11:55pm.
- Mon, Feb 10. Exam review. Chapter 1, Sections 2.4, 5-5.3, 8-8.4, and Appendix A.
Presentation
- Java review and Java references
- interfaces, class hierarchy, abstract classes, inheritance
- selection sort, bubble sort, insertion sort
- binary search
- runtime analysis
- recursion
- Wed, Feb 12. Midterm Exam 1.
Mon, Feb 17. President's day holiday.
- Wed, Feb 19. Algorithm Analysis and Big-O Notation. Sections 2.1 and 8-8.4 in the book.
Presentation
- review: algorithm runtime analysis
- big-O notation
- figuring out big-O
- figuring out big-O for sorting algorithms
- big-O analysis in practice
Links for this class:
homework 6 (Sorted Array List) assigned, due Saturday March 1st at 11:55pm.
- Mon, Feb 24. List interface. Array lists. Sections 2.1-2.4 in the book.
Presentation
- List interface
- Array lists
Links for this class:
Note that
invariants are not in the book.
- Wed, Feb 26. Linked Lists.
Presentation
- reminder: invariants and lists
- linked lists
homework 7 (Sorted Linked List) assigned, due Saturday March 8th at 11:55pm.
- Mon, Mar 3. Linked lists. Section 2.5 in the book. Doubly-linked lists. Sections 2.6-2.9 in the book.
Presentation
- linked list removal
- different kinds of linked lists:
singly-linked lists,
circular linked lists,
doubly-linked lists
- Wed, Mar 5. Iterators. Section 2.7 in the book.
Presentation
- looping over lists/collections
- iterators
Links for this class:
homework 8 (Iterator) assigned, due Saturday March 29th at 11:55pm.
- Mon, Mar 10. Exam review. Chapters 2-2.9 and 5, and
invariants.
Presentation
- List, ArrayList, LinkedList, class hierarchy, interface hierarchy
- parametrized types
- iterators
- invariants
- reminders: recursion, runtime analysis, binary search
- Wed, Mar 12. Midterm exam 2.
Mar 17-21, Spring recess (no classes)
- Mon, Mar 24. The Collection Interface. Section 2.10 in the book.
Presentation
- the Collection interface
- parametrized classes and interfaces
- the Collection hierarchy
- Sets and Maps
- the AbstractCollection hierarchy
- StringBuilder
Links for this class:
Wed, Mar 26. Prince Kūhiō day holiday.
homework 9 (Recursive Linked List Methods)
assigned, due Saturday April 5th at 11:55pm.
- Mon, Mar 31. Stacks. Sections 4.1-4.4 in the book.
Presentation
- stacks
- array stack implementation
- linked stack implementation
- stack applications
Links for this class:
- Wed, Apr 2. Stacks and stack applications. Sections 4-4.4 in the book.
Presentation
- infix, prefix, and postfix expressions
homework 10 (Stack calculator) assigned, due Saturday April 12th at 11:55pm.
- Mon, Apr 7. Queues. Sections 4.5-4.8 in the book.
Presentation
- queues
- queue interface
- queue applications
- queue implementation: array queue
- queue implementation: linked queue
- application of queues: data structure traversal
- application of queues: simulation of customer queue
Links for this class:
- Wed, Apr 9. Trees. Sections 6.1-6.3 and 6.5 in the book.
Presentation
- trees
- expression trees
- binary tree traversal
- binary search trees
- binary search tree algorithms: add, remove, traverse
- binary node class
Links for this class:
homework 11 (Binary Search Trees) assigned, due Saturday April 26th at 11:55pm.
- Mon, Apr 14. Exam review. Chapters 2.10, 4, 6.1-6.3, and 6.5.
Presentation
- iterators
- collection interface
- recursive linked list methods
- stacks
- infix, prefix, and postfix expressions, and expression trees
- queues
- trees, including binary search trees
- reminders: recursion, runtime analysis, binary search
classes and interfaces, lists, iterators, parametrized classes,
invariants
- Wed, Apr 16. Midterm exam 3.
- Mon, Apr 21. Heaps and priority queues. Section 6.6 in the book.
Presentation
- heaps
- heap storage in arrays
- heap insertion and removal
- heap sort
- priority queues
- Wed, Apr 23. Hash tables. Sections 7-7.4 in the book.
Presentation
- heap sort
- priority queues
- hash tables
- hash functions
- chained hashing
- open addressing
Links for this class:
homework 12 (Language Model) assigned, due Wednesday May 7th at 11:55pm.
- Mon, Apr 28. Hash tables. Huffman Trees. Section 6.7 in the book.
Presentation
- hash tables with chained hashing
- hash tables with open addressing
- applications of hash tables
- Huffman trees
- Huffman coding
- implementation of Huffman coding
Links for this class:
- Wed, Apr 30. Huffman Trees. Lambda Expressions, Section 6.4 in the book.
Heap Sort, Merge Sort, Sections 8.5 and 8.6 in the book.
Presentation
- applications of hash tables
- Huffman trees
- Huffman coding
- implementation of Huffman coding
- applications of hash tables
- lambda expressions
Links for this class:
- Mon, May 5. Merge Sort, Quicksort.
Sections 8.5 and 8.6 in the book.
Presentation
- reminder of sorting so far
- heap sort
- merge sort
- quicksort
Links for this class:
- Wed, May 7. Course review.
Presentation
- exam 1 material: Java, references and pointers, recursion, selection/bubble/insertion sort, binary search
- exam 2 material: algorithm analysis, array lists and linked lists, iterators, invariants
- exam 3 material: stacks, queues, trees including binary search trees and tree traversal, expression evaluation, heaps, huffman coding
- hash functions and hash tables
- merge sort, heap sort, quicksort
- concepts and ideas
- Monday, May 12, 9:45am-11:45am,
final exam in the Art Auditorium, ART 132 (the usual lecture room).
Organization
Generally speaking, the instructor (see Laulima resources for office
hours) is responsible for the lectures, and the TAs are responsible for
the labs. The instructor assigns the homeworks and the TAs grade them.
The instructor grades lecture quizzes.
Homeworks are posted on this web site (usually) no later than Friday
each week and are due by 11:55pm on Saturday the following week (8 days later).
All assignments must be turned in on time. Assignments turned in
within 24 hours of the deadline (i.e. by 11:55pm on Sunday) will have
a 5% (5-point) penalty.
Assignments must turned in via Laulima. Contact your TA if you have
any questions about the assignments or how they are graded.
Grading
This course has weekly homework assignments, and quizzes to record
attendance and test knowledge of the material. Each of these must be
done individually by each student with no collaboration allowed, except
for those homework assignments that explicitly allow teamwork.
Quizzes are made available on paper at the beginning of class (you
are responsible for providing your own writing instrument), and must be
turned in at the assigned time.
- Assignments: 40%.
- Three midterms and the final, for a total of 45%.
- Attendance at lecture: 10%.
- Attendance at lab: 5%.
To accomodate the potential for emergencies affecting academic performance,
- the lowest 2 assignment grades will be dropped
- the lowest exam grade will be dropped
- attendance at 20 lectures and 15 labs over the course of the semester
is enough to get full credit for lecture and lab attendance, respectively.
The lower number for lab attendance is in recognition that not everyone
needs to be in lab twice a week.
- if the instructor or a TA has to take time off for health reason
or other emergencies, the students must study the corresponding material
on their own.
This is intended for use with illness or other emergencies. It need not
be justified, but will also not be extended in any way, so students
should not take advantage of it unless actually needed (or until the
end of the semester, whichever comes first).
Exams may be taken early, if requested at least one week before the scheduled time. Under no circumstances may an exam be taken late.
Grading will use the standard cutoffs of
97% (A+), 93% (A), 90% (A-), 87% (B+), 83% (B), 80% (B-), 77% (C+),
73% (C), 70% (C-), 67% (D+), 63% (D), 60% (D-).
To get a good grade in ICS 211, students are expected to be able to
write Java programs under time pressure (and without help from an IDE) on
the quizzes and exams, and more substantial programs on the assignments.
Reviewing the textbook before the lectures is strongly recommended,
and practicing for the quizzes at home is encouraged.
Accomodations
If you feel you need reasonable accomodations because of the impact of
a disability, please (1) contact the Kokua (Disability Access) Program at
808-956-7511 or in room 013 of the Queen Lili'uokalani Center for Student
Services, and/or (2) speak privately with the instructor to discuss your
specific needs. I will be happy to work with you and the Kokua program
to meet your access needs related to your documented disability. Only
the staff at Kokua is qualified to make determinations of disability.
Please note that the Laulima space is shared by all students in the
entire lecture. If you do not wish to be in a shared Laulima course
space, please drop this course.
Cheating
In this course, in completing quizzes, assignments, and exams,
students may only use materials from sources provided by the instructor or
TAs. In particular, students are encouraged to use anything posted
to the course website and any material from the textbook(s).
Code must be written by the student, not copied from the web,
another student, or any other source. Any violation of this is considered
cheating.
In the past, TAs and the instructor have detected cheating, and
student grades have been affected. Don't do it!!!
In general, cheating means presenting the work of somebody else as
one's own, or providing one's work to somebody else to help them cheat.
Policy: any cheating will result in a grade of 0 for the exam,
assignment or quiz the first time it is detected, and a grade of F for
the entire course for any subsequent instance. Any instance of cheating
may also be recorded in departmental files and reported to the office of
the Dean of Students, possibly resulting in disciplinary action against
the student.
The
Student Conduct Code has more details on both impermissible behavior
(see for example section IV.B.1 of the policies, Acts of dishonesty)
and possible disciplinary sanctions.
Use of AI: Students may use AI tools as assistants in
creating their assignments (not on exams or quizzes). Even if such
assistance is used, students remain entirely responsible for thoroughly
understanding what they turn in and making sure it is fit for purpose.
Please see this page for some examples
of how AI results, while superficially appearing to be suitable, can
also be very misleading.
If such tools are used, students must credit the tool used and
include a paragraph describing their interaction with the tool.
Goals of this Course and Learning Objectives
From the UH
catalog:
ICS 211 Introduction to Computer Science II (4)
Reinforce and strengthen problem-solving skills using abstract data types and introduce software development practices. Emphasize the use of searching and sorting algorithms and their complexity, recursion, object-oriented programming, and data structures. Pre: 111 or consent.
Student Learning Objectives for the Spring 2025 ICS 211 are:
- learn and implement standard data structures, including linked lists, stacks, queues, hash tables, and binary trees.
- learn and implement standard algorithms for sorting and searching and tree traversal
- learn and use the basics of algorithm analysis and complexity, including big-O notation
- be exposed to software engineering techniques such as: separation of definition and implementation, encapsulation, and information hiding
- write substantial Java programs, when appropriate reusing previously created classes, and writing programs requiring multiple classes. Overall, students can expect to program well over 1,000 lines of Java code over the course of the semester.
- understand Java collection classes and the basics of memory management
- appropriately use exception handling and recursion in Java
- learn to write algebraic equations in prefix, infix and postfix notation
- learn preorder, inorder and postorder tree traversal
Learning to program in Java is only one of the goals for this course, but may be the most important: fluency in Java is needed to apply many of the other tools and information presented in this course as well as in subsequent ICS courses. The homeworks and exams assume students are comfortable programming in Java at the level required for this course. Students who are not comfortable with programming, as determined either by individual difficulty or by lack of overall success on homework assignments, should consult with the TAs or instructor for additional (optional) assignments to help them come up to speed. Students who did not learn the basics of programming in Java in ICS 211 are (unfortunately) not qualified to take this course.
University of Hawaiʻi at Mānoa (UHM) Title IX Syllabus Information
UHM is committed to providing a learning, working and living environment that promotes personal integrity, civility, and mutual respect and is free of all forms of sex discrimination and gender-based violence, including sexual assault, sexual harassment, gender-based harassment, domestic violence, dating violence, and stalking. If you or someone you know experiences any of these, UHM has staff and resources on campus to support and assist you. Staff also can direct you to resources in the community. Here are some:
If you wish to remain ANONYMOUS, speak with someone CONFIDENTIALLY, or would like to receive information and support in a CONFIDENTIAL setting, contact: (* Confidential Resource)
Counseling & Student Development Center* (808) 956-7927 • manoa.hawaii.edu/counseling/
Office of Gender Equity* (808) 956-9499 • manoaadv@hawaii.edu
Lesbian, Gay, Bisexual, Transgender, Queer (LGBTQ+) Center (808) 956-9250 • manoa.hawaii.edu/lgbt
Respondent Support (808) 956-4392 • PAUrs@hawaii.edu
Student Parents at Mānoa (SP@M)* (808) 956-8059 • manoa.hawaii.edu/studentparents/
UH Confidential Advocacy* • advocate@hawaii.edu
University Health Services Mānoa* (808) 956-8965 • hawaii.edu/shs/
http://www.manoa.hawaii.edu/titleix/resources.html#confidential
If you wish to REPORT an incident of sex discrimination or gender-based violence including sexual assault, sexual harassment, gender-based harassment, domestic violence, dating violence or stalking as well as receive information and support, contact:
Dee Uwono
Director and Title IX Coordinator
Hawaiʻi Hall 124
2500 Campus Road
Honolulu, HI 96822
(808) 956-2299
t9uhm@hawaii.edu
As a member of the University faculty, I am required to immediately report any incident of sex discrimination or gender-based violence to the campus Title IX Coordinator. Although the Title IX Coordinator and I cannot guarantee confidentiality, you will still have options about how your case will be handled. My goal is to make sure you are aware of the range of options available to you and have access to the resources and support you need. For more information regarding sex discrimination and gender-based violence, the University’s Title IX resources and the University’s Policy, EP 1.204, go to: http://www.manoa.hawaii.edu/titleix/
Improvements
Any suggestions for improvement to this web page or to the course are welcome.