This page will be removed on August 6th 2026. Please update your links to refer to https://esb.ics.hawaii.edu/2025fall.ics211/index.html instead.
Introduction to Computer Science II, ICS 211
This page is
https://www2.hawaii.edu/~esb/2025fall.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 Bilger 150 every Monday and
Wednesday 12-1:15pm.
The labs for this class are in the Pacific Ocean Science and
Technology building (POST) room 319:
- Section 1 (CRN 72037): every Tuesday and Thursday, 9-10:15am
- Section 2 (CRN 73559): every Tuesday and Thursday, 10:30-11:45pm
Office hours for the instructor are MW 10:30-11 in POST 305F.
Edo Biagioni can be reached at 808-956-3891, esb@hawaii.edu,
and http://www2.hawaii.edu/~esb/.
Office hours for the TA are Thursdays 12-1pm.
The textbook for the course is "Data Structures: Abstraction
and Design Using Java", Fourth Edition, by Elliot B. Koffman and
Paul A. T. Wolfgang, Wiley 2021.
The book should be accessible online from Lamakū: under the
Content tab, on the left-hand side is VitalSource, which gives
access to the textbook. The textbook has also been
placed on reserve in the UH library, for up to 3 students to access
simultaneously.
Students may also wish to consider looking at these freely accessible
texts:
Schedule
This schedule is subject to change.
- Mon, Aug 25. Course introductions, course summary.
Presentation
- introductions
- course overview
Links for this class:
homework 1 (Java Review) assigned, due Sunday Aug 31st at 11:55pm.
- Wed, Aug 27. 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 (Finance Calculator) assigned, due Sunday Sep 7th at 11:55pm.
- Mon, Sep 1 is a holiday, Labor day.
- Wed, Sep 3. 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 Sunday September 14th at 11:55pm.
- Mon, Sep 8. 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, Sep 10.
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 Sunday September 21st at 11:55pm.
- Mon, Sep 15. Algorithm runtime analysis. Section 2.1 in the book.
Recursion. Sections 5-5.3 in the book.
Presentation
- algorithm runtime analysis
- principles of recursion
- recursive factorial
- binary search
- using recursion to print integers
Links for this class:
- Wed, Sep 17. 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 Sunday October 5th at 11:55pm.
- Mon, Sep 22. 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, Sep 24. Midterm Exam 1.
- Mon, Sep 29. 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 5 (Recursion) assigned, due Sunday October 5th at 11:55pm.
- Wed, Oct 1.
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.
homework 6 (Array Lists) assigned, due Sunday October 12th at 11:55pm.
- Mon, Oct 6. Linked Lists.
Presentation
- reminder: invariants and lists
- linked lists
- Wed, Oct 8.
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
homework 7 (Linked List) assigned, due Sunday October 19th at 11:55pm.
- Mon, Oct 13. Iterators. Section 2.7 in the book.
Presentation
- doubly-linked lists, continued
- looping over lists/collections
- iterators
Links for this class:
- Wed, Oct 15. Testing and Debugging, Chapter 3 in the book.
Presentation
- iterators
- testing and debugging
- StringBuilder
- stacks
Links for this class:
homework 8 (Iterators) assigned, due Sunday November 2nd at 11:55pm.
- Mon, Oct 20. Exam review. Chapters 2-2.9 and 3 and 5, and
invariants.
Presentation
- List, ArrayList, LinkedList
- parametrized types
- iterators
- invariants
- reminders: recursion, runtime analysis, binary search
- Wed, Oct 22. Midterm Exam 2.
- Mon, Oct 27. The Collection Interface. Section 2.10 in the book.
Presentation
- StringBuilder
- the Collection interface
- parametrized classes and interfaces
- the Collection hierarchy
- Sets and Maps
Links for this class:
- Wed, Oct 29. Stacks. Sections 4.1-4.4 in the book.
Presentation
- the AbstractCollection hierarchy
- stacks
- array stack implementation
- linked stack implementation
- stack applications
Links for this class:
homework 9 (Calculator) assigned, due Sunday November 9th at 11:55pm.
- Mon, Nov 3.
Stacks and stack applications. Sections 4-4.4 in the book.
Presentation
- infix, prefix, and postfix expressions
- Wed, Nov 5.
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:
homework 10 (Priority Queue) assigned, due Sunday November 16th at 11:55pm.
- Mon, Nov 10.
Simulation and Random Numbers. Trees. Sections 6.1-6.3 and 6.5 in the book.
Presentation
- application of queues: simulation of customer queue
- random numbers
- trees
- expression trees
- binary tree traversal
- Wed, Nov 12. Binary Search Trees. Heaps. Section 6.6 in the book.
Presentation
- binary search trees
- binary search tree algorithms: add, remove, traverse
- binary node class
Links for this class:
homework 11 (Binary Search Trees) assigned, due Sunday November 30th at 11:55pm.
- Mon, Nov 17.
Exam review. Chapters 2.10, 4, 5.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, Nov 19. Midterm Exam 3.
- Mon, Nov 24. Heaps. Sections 6.6 and 8.8 in the book.
Presentation
- heaps
- heap storage in arrays
- heap insertion and removal
- heap sort
- priority queues
- Wed, Nov 26.
Hash tables. Sections 7-7.4 in the book.
Presentation
- heap sort
- priority queues
- hash tables
- hash functions
Links for this class:
- Mon, Dec 1.
Hash Tables, continued. Section 7-7.4 in the book.
Lambda Expressions, Section 6.4 in the book.
Presentation
- chained hashing
- open addressing
- applications of hash tables
- lambda expressions
homework 12 (Language Model) assigned, due Monday December 8th at 11:55pm.
- Wed, Dec 3.
Huffman Trees. Section 6.7 in the book.
Merge Sort, Quicksort.
Sections 8.5 and 8.6 in the book.
Presentation
- Huffman trees
- Huffman coding
- implementation of Huffman coding
- reminder of heap sort
- merge sort
Links for this class:
- Mon, Dec 8.
Merge sort. Quicksort. Shell sort. Sections 8.5, 8.8, 8.9 in the book.
Beginning of course review.
Presentation
- merge sort
- Quicksort
- course review
Links for this class:
- Wed, Dec 10. 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
The final exam for this class is
scheduled for
Friday, Dec 19th, 12-2pm, in Bilger 150 (the usual lecture room).
If there is an interest, the instructor will also schedule an early
final exam. Please contact the instructor for details.
Organization
Generally speaking, the instructor is responsible for the lectures,
and the TA is responsible for the labs. The instructor assigns the
homeworks and the TA grades 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 Monday) will have
a 5% (5-point) penalty.
Assignments must turned in via Lamakū. 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: 45%.
- Three midterms and the final, for a total of 45%.
- Attendance at lecture: 10%.
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
over the course of the semester
is enough to get full credit for lecture attendance.
- 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 or AI) 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.
Use of Artificial Intelligence
AI may be used without limitation to improve student
understanding of concepts in this class. Please see
this page for some examples of how AI results, while superficially
appearing to be suitable, can also be very misleading. All responsibility
rests with the student, so please be akamai and make sure that what
you submit is correct in reflecting your own understanding.
New this semester, experimental, and may change during the
semester: Students in this class are allowed to use AI to write code
for assignments. Since one of the goals of this class is for students
to thoroughly learn a programming language, students remain responsible
for understanding every detail of what they turn in. And since it
doesn't make sense for a TA to grade what may have been created by an AI,
assignment grades will be determined by the TA (or instructor) speaking
in person with the student to find out how much the student understands
about the code they turned in. Assignments are still due on time.
Whether or not students write the code themselves, students are
welcome to ask AI to grade their own programs (before submission), and
see how the program(s) can be improved to better satisfy what is assigned.
Course Information, Policies and Resources
Attendance policy
Students who are enrolled in this course, but never attend will be flagged
by the course instructor for non-participation before the last day to
add/drop (for 100% tuition refund) deadline. Flagged students will be
administratively dropped by the Office of the Registrar. Any changes
to a student’s enrollment status may affect financial aid eligibility
and can result in the return of some of all of federal student financial
aid. (specify for your course; may also be covered under Grading section)
Use of Internet, mobile devices, and social media
Use of the Internet, mobile devices, and social media are allowed
for this course except during evaluation of assignments and exams.
Statement on Disability: KOKUA Program
If you have a disability and related access needs, please contact the
KOKUA Program (Office for Students with Disabilities) at 956-7511,
KOKUA@hawaii.edu, or go to Room 013 in the Queen Lili‘uokalani Center
for Student Services. Please know that I will work with you and KOKUA
to meet your access needs based on disability documentation. Kokua’s
services are confidential and offered free of charge.
Academic Integrity and Ethical Behavior: Office of Student Conduct
Cheating, plagiarism, or other forms of academic dishonesty are not permitted within this course and are prohibited within the System-wide Student Conduct Code (EP 7.208). Examples include: fabrication, falsification, cheating, plagiarism, and use of improper materials. Any incident of suspected academic dishonesty will be reported to the Office of Student Conduct for review and possible adjudication. Additionally, the instructor may take action in regards to the grade for the deliverable or course as they see fit.
Office of Title IX:
(808) 956-2299 / t9uhm@hawaii.edu / https://manoa.hawaii.edu/titleix/
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/
- 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:
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/
Department of Public Safety:
(808)956-6911 (Emergency) / (808)956-8211 (Non-Emergency)
http://manoa.hawaii.edu/dps/
UH System Basic Needs
Include food and housing, childcare, mental health, financial resources
and transportation, among others. Student basic needs security is critical
for ensuring strong academic performance, persistence and graduation and
overall student well being. If you or someone you know are experiencing
basic needs insecurity, please see the following resources:
UH System Basic Needs
(https://www.hawaii.edu/student-basic-needs/resources/manoa/)
Student Success Resources:
The Division of Student Success (DSS) houses student support
services to build success inside and outside the classroom. If you
want learning assistance, academic advising, career resources and
guidance, counseling, family and relationship support, identity-based
support, services for underrepresented groups, health and wellness
services, opportunities for leadership growth, and community
engagement, you will find this and more in DSS, (808) 956-3290,
https://manoa.hawaii.edu/studentsuccess/departments/