Introduction to Computer Science I
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 homework 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 12:00pm - 01:15pm in Holmes Hall 247 to take quizzes to evaluate your understanding of the Module’s materials. I will give you a short quiz, less than 20 minutes. The quiz will ask you to answer a few questions or write a short program or snippet of code. 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 few programming problems that you and possibly 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. These problems are for practicing your programming abilities.
The lab for this class meets Wednesdays and Fridays 12:00pm - 01:15pm in POST 318A. During the lab we will be using the flow chart and code developed in the 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: Introduction, Computer Fundamentals, Java Environment
Week 2: Java Environment, Names and Things
Week 3: Names and Things
Week 4: Control
Week 5: Control
Week 6: Subroutines
Week 7: Subroutines
Week 8: Midterm Exam
Week 9: Objects and Classes
Week 10: Objects and Classes
Week 11: Introduction to GUI Programming
Week 12: Introduction to GUI Programming
Week 13: Arrays and ArrayLists
Week 14: Arrays and ArrayLists
Week 15: Recursion
Week 16: Recursion
Week 17: Final Exam
Use an appropriate programming environment to design, code, compile, run and debug computer programs.
Demonstrate basic problem solving skills: analyzing problems, modeling a problem as a system of objects, creating algorithms, and implementing models and algorithms in an object-oriented computer language (classes, objects, methods with parameters, abstract classes, interfaces, inheritance and polymorphism).
Illustrate basic programming concepts such as program flow and syntax of a high-level general purpose language.
Demonstrate working with primitive data types, strings and arrays.
Understand the goals, structures, and procedures for learning in ICS 111.
Understand the fundamentals how a computer works.
To learn how to take a problem, figure out the algorithm to solve it, the write the code.
To learn basics of programming with a modern programming language, Java.
Understand how to install and use a good Java development environment.
To learn how to produce robust programs in Java using exception handling and extensive program testing.
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.
Recommended: Computer experience.
Computer Requirements: You should have have the following computer technology:
We will be using an Introduction to Programming Using Java, Seventh Edition and other internet resources to explain the concepts.
This course has two exams, a midterm and a final, several homework assignments, in class quizzes and in lab exercises. Grades are assigned based upon your performance on:
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-).
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
When to turn in?
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 3/10 and is turned in on 3/11 at 11AM, a 10% penalty if applied to the grade. If the assignment is turned in on 3/12 at 2AM, then a 50% penalty is applied. Turning in assignments more than 48h 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.