Introduction to Computer Science II
The University of Hawaii, Manoa Course Catalog describes ICS 211 as “Algorithms and their complexity, introduction to software engineering, data structures, searching and sorting algorithms, numerical errors.”
This course explores Object Oriented Programming (OOP) and software engineering techniques using Java. The primary focus of this course is problem solving using Abstract Data Structures in programs.
In this course, students will:
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.
This class is a ‘flipped’ class. The learning materials are on this website. Do the assigned readings and watch the screen casts. There will be few if any lectures during the class meetings. Instead, we will meet Tuesdays and Thursdays 1:30pm - 2:45pm in Holmes Hall 243 to evaluate your understanding of the Module’s materials by taking a short quiz. You’ll turn in your quiz to me and I’ll take a few minutes to review your answers then go over the quiz showing you how I would approach the problem and give feedback on the errors that I saw in your quizzes. I will grade the quiz with a score of
After the quiz I will give you a programming problem that you (and a partner) will solve using pencil and paper. You will break down the problem into steps and draw a flow chart or list of the steps you think will solve the problem. After figuring out the steps, you will convert them into Java or pseudo code.
The lab for this class meets Wednesdays and Fridays 3:00pm - 4:15pm in POST 319. During the lab we will be using the flow chart or steps to solve the problem and code developed during lecture to implement, test, and debug your solution to the problem. We will also be solving additional problems in lab.
We will be doing a lot of problem solving in this class. Starting from a problem description, designing a solution, then implementing and testing the solution.
Week 1 - Java Review
Week 2 - Object Oriented Programming
Week 3 - Simple Sorting
Week 4 - Lists (array implementation)
Week 5 - Lists (linked implementation)
Week 6 - Iterators
Week 7 - Midterm 1
Week 8 - Stacks
Week 9 - Queues
Week 10 - Recursion
Week 11 - Midterm 2
Week 12 - Trees
Week 13 - Trees
Week 14 - Hashtables
Week 15 - Complex Sorting Algorithms
Week 16 - Course Review
Week 17 - Final Exam
Use and implement abstract data types such as lists, stacks, queues, and trees.
Select the appropriate searching or sorting algorithm based on the algorithm’s behavior.
Develop recursive algorithms and programs.
Use standard libraries or packages as well as advanced object-oriented programming techniques (polymorphism, inheritance, and encapsulation).
Produce robust and secure programs using exception handling and extensive program testing.
Understand the goals, structures, and procedures for learning in ICS 211.
To learn basics of programming with a modern programming language, Java.
To learn and uses the basics of algorithm analysis, including big-O notation.
To learn and understand the array standard data structure. Know the standard interface for an Array.
To learn and implement standard algorithms for sorting arrays.
To understand Java collection classes and the basics of memory management.
To learn and implement the List standard data structure. Know the standard interface for a List.
To learn and implement the Iterator and Iterable. Know the standard interface for an Iterator and Iterable.
To learn and implement the Queue standard data structure. Know the standard interface for a Queue.
To learn and implement the Stack standard data structure. Know the standard interface for a Stack.
To learn and implement the Tree standard data structure.
To learn and implement the Hash Map standard data structure. Know the difference between open addressing and chained maps.
To understand recursion and how to develop recursive algorithms and programs.
To learn and implement standard algorithms for searching.
An ability to apply mathematical foundations, algorithmic principles, and computer science theory to the modeling and design of computer-based systems.
An ability to define the computing requirements of a problem and to design appropriate solutions based on established design principles and with an understanding of the tradeoffs involved in design choices.
An ability to use sound development principles to implement computer-based and software systems of varying complexity, and to evaluate such systems.
An ability to use current techniques, skills, and tools necessary for computing practice.
Prerequisites: A grade of “B” or higher in 111 or instructor’s consent.
All students wishing to enroll in ICS courses above 211 except ICS 241 must meet the prerequisite grade requirement of B or higher in ICS 111 and 211 prior to registering for the course.
Computer Requirements: You should have have the following computer technology:
Carleton (Cam) Moore
Office: POST 307B.
Hours: Tue and Thu 10:30am - 11:30 am or by appointment.
Email: cmoore@hawaii.edu (Please include ICS211 or ICS 211 in the email subject)
Billy (Troy) Wooton
Office: POST 303-3.
Hours: Mon and Wed 1:30pm - 3:00pm or by appointment.
Email: bwooton@hawaii.edu (Please include ICS211 or ICS 211 in the email subject)
Lecture:
Lab:
The following textbook is required: Data Structures: Abstraction and Design Using Java, Third Edition, by Elliot B. Koffman and Paul A. T. Wolfgang, Wiley 2016 (ISBN 9781119239147). Students are encouraged to visit the Wiley Student Choice for the book.
Students may also wish to consider looking at the book The Java Language Specification. It is free to download the PDF.
This course has three exams (including the final exam) and a number of homework assignments.
Grades are assigned based on your performance on:
Grading will use the standard cutoffs of 90% (A), 80% (B), 70% (C), 60% (D).
The home works are graded by the Teaching Assistant (TA), the exams by the instructor. Any questions should be directed accordingly.
Class participation is encouraged. Comments and questions are particularly helpful to the instructor and generally to the class. If needed to encourage class participation, the instructor may call on students to answer specific questions or contribute opinions. Participation in class should be friendly, relaxed, and mutually respectful.
Turn in your own work. It is okay to discuss homework with others, and in fact is encourage as it can lead to fruitful discussions and discoveries, but the work you turn in should always be your own. Answers should always include how the answer was derived. If you use other people’s work you must give them credit.
All homework assignments are be turned in via Laulima
Assignments are due at 11:55PM on the due day. Late work will be accepted, with a 10% grade penalty for <24 hours of lateness and a 50% grade penalty for <48 hours of lateness. For instance, if the assignment is due on 9/10 and is turned in on 9/11 at 11AM, a 10% penalty if applied to the grade. If the assignment is turned in on 9/12 at 2AM, then a 50% penalty is applied. Turning in assignments more than 48 hours late will always result in a 0.
All occurrences of academic dishonesty, as defined below, will result in a grade of 0 for the assignment or exam, and in a memo in your ICS department file describing the incident. Which will be done for all students involved. Should there be more than one memo of this type in your file, the incident will be referred to the Dean of Students. Disciplinary sanctions range from a warning to expulsion from the university, as seen at: http://www.catalog.hawaii.edu/about-uh/campus-policies1.htm
See relevant excerpts below:
The integrity of a university depends upon academic honesty, which consists of independent learning and research. Academic dishonesty includes cheating and plagiarism. The following are examples of violations of the Student Conduct Code that may result in suspension or expulsion from UH Manoa.
Cheating includes, but is not limited to, giving unauthorized help during an examination, obtaining unauthorized information about an examination before it is administered, using inappropriate sources of information during an examination, altering the record of any grade, altering an answer after an examination has been submitted, falsifying any official UH Manoa record, and misrepresenting the facts in order to obtain exemptions from course requirements.
Plagiarism includes, but is not limited to, submitting, to satisfy an academic requirement, any document that has been copied in whole or in part from another individual’s work without identifying that individual; neglecting to identify as a quotation a documented idea that has not been assimilated into the student’s language and style; paraphrasing a passage so closely that the reader is misled as to the source; submitting the same written or oral material in more than one course without obtaining authorization from the instructors involved; and “dry-labbing,” which includes obtaining and using experimental data from other students without the express consent of the instructor, utilizing experimental data and laboratory write-ups from other sections of the course or from previous terms, and fabricating data to fit the expected results.
The faculty member must notify the student of the alleged academic misconduct and discuss the incident in question. The faculty member may take academic action against the student as the faculty member deems appropriate. These actions may be appealed through the Academic Grievance Procedure, available in the Office of Judicial Affairs. In instances in which the faculty member believes that additional action (i.e., disciplinary sanctions and a UH Manoa record) should be established, the case should be forwarded to the Office of Judicial Affairs.