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 Mondays and Wednesdays 1:30pm - 2:45pm online to take quizzes to evaluate your understanding of the Module’s materials. I will give you a short quiz, less than 15 minutes. The quiz will ask you to answer a few questions or write a short program or snippet of code. You’ll submit your answers in Laulima. After that I’ll go over the quiz showing you how I would approach the problem. Your TA will grade the quiz with a score of
After the quiz I will give you a few programming problems that you will solve using pencil and paper. You will break down the problem into 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:
Section 001 Tuesdays and Thursdays 9 am to 10:15 am Online. Section 002 Tuesdays and Thursdays 9 am to 10:15 am Online. Section 003 Tuesdays and Thursdays 10:30 am to 11:45 am Online. Section 004 Tuesdays and Thursdays 1:30 pm to 2:45 pm Online. Section 005 Tuesdays and Thursdays 1:30 pm to 2:45 pm Online. Section 006 Tuesdays and Thursdays 3 pm to 4:15 pm Online.
During the lab we will be using the steps 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, RadGrad
Week 2: Java Environment, Names and Things, RadGrad
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.
Variables
Expressions
Looping
Branching
Exceptions
Methods / Subroutines / Functions
Classes, Interfaces and Inheritance
Graphical User Interfaces
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.
None
Recommended: Computer experience.
Computer Requirements: You should have have the following computer technology:
Carleton (Cam) Moore
Office: POST 307B.
Hours: M,W 9 am - 1:30 pm and T,R 9 am - 10 am via Discord
Email: cmoore@hawaii.edu (Please include ICS111 or ICS 111 in the email subject)
TBA
Office:
Hours:
Email: (Please include ICS111 or ICS 111 in the email subject)
Lecture: Mondays and Wednesdays 1:30 pm to 2:45 pm via Zoom.
Lab:
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 100% A+, 95% 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 encouraged 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. 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. Turning in assignments more than 24h late will always result in a 0.
Students are strongly encouraged to familiarize themselves with the Systemwide Student Conduct Code. I expect you to behave with integrity and hold both yourself and your peers to the highest standards of ethical behavior.
The Student Conduct Code (EP 7.208) expressly prohibits Academic Dishonesty among the standards and values in the UH Community. Engaging in any of these behaviors subjects a student to the disciplinary process and sanctions on campus. I expect you to behave with integrity and hold both yourself and your peers to the highest standards of ethical behavior.
All occurrences of academic dishonesty, as defined below, will result in a grade of 0 for the assignment or exam. The incident will be referred to the Student Conduct Administrator for action under the Student Conduct Code.
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 is an act of academic dishonesty and includes, but is not limited to: (1) use of any unauthorized assistance in taking quizzes, tests, or examinations; (2) use of sources beyond those authorized by the instructor in writing papers, preparing reports, solving problems, or carrying out other assignments; (3) the acquisition, without permission, of tests or other academic material belonging to a member of the UH faculty, staff or student body; and (4) engaging in any behavior specifically prohibited by a faculty member in the course syllabus or class discussion.
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.
In cases of suspected or admitted academic dishonesty, the instructor involved shall attempt to resolve the matter with the student. Actions may include allowing the student to redo the assignment or giving a failing or reduced grade for the course. Instructors are encouraged to bring the matter to the attention of the departmental chairperson and/or academic dean of the instructor’s school or college, and provide an informational report to the Student Conduct Administrator. Additionally, an instructor may formally refer any case of academic dishonesty to the Student Conduct Administrator for action under the Student Conduct Code. The Student Conduct Administrator or designee shall pursue such cases to determine appropriate disciplinary actions if, after a preliminary investigation, it is their determination that sufficient information exists to establish that an act of academic dishonesty took place.