| ICS 111: |
|
Introduction to Computer Science
I
Section 001 CRN: 72555
|
| |
|
Lecture: We, Fr 3:00 - 4:15
in Kuy 210
Lab: We, Fr 4:30 - 5:45 in POST 318A |
Fall
2007 |
home: www2.hawaii.edu/~janst/111
use "ztomasze at AT hawaii DOT edu" for all questions, comments, etc.
|
|
|
| |
office hours |
office |
email |
phone |
| Dr. Jan Stelovsky |
Th 2:00 -4:00
and by appointment |
POST 305C |
janst AT hawaii DOT edu |
956-7175 |
| TA: Zach Tomaszewski |
TBA
and by appointment
|
POST 314-2 |
ztomasze AT hawaii DOT edu |
N/A |
|
News
- Sample final exam available (12/04/07)
- Final exam will be held on Monday Dec. 10 at 2:15-4:15
in Kuy 210
- Lecture Notes slides Design
Patterns posted (12/03/07)
- Program for file input/output posted to File IO
section - see below (12/03/07)
- Program for Exceptions posted see below (11/27/07)
- Program for multidimensional arrays posted to Arrays section see
below (11/19/07)
- Lecture Notes slides Exceptions
posted (11/19/07)
- Programs for Arrays and updated List.java
posted- see below (11/15/07); also: slide 12.repetition.ppt
is now accessible
- Lecture Notes slides Arrays
posted (11/09/07)
- Additional programs for Repetition posted - see below
(11/09/07)
- Deadline for Assignment 8 has been extended till 11/7Arrays/07
- Programs for Repetition posted - see below (11/02/07)
- Updated Repetition Statements
posted (11/02/07)
- Lecture Notes slides Repetition
Statements posted (10/31/07)
- Program for selection demos posted - see below (10/31/07)
- Midterm key (for midterm
exam) posted (10/26/07)
- Lecture Notes slides Selection
Statements posted (10/19/07)
- Sample program exercising primitive
types posted (10/16/07); to be covered on (10/17/07)
- Key to the sample midterm (Fall 06) posted
(10/16/07)
- Important date: Friday 10/19/07 is the last day
to withdraw from courses
- Midterm is on 10/24/07
- Sample midterm (Fall 06) posted (issue re:"study
guide" will be adressed in the 10/12/07 lecture)
- Lecture Notes slides "Primitive
Types" posted (10/12/07)
- Program "OO_Concepts.java"
posted
- Lecture Notes slides "Inheritance"
posted (10/03/07)
- Lecture Notes slides "Interfaces"
posted (9/28/07)
- Lecture Notes slides "Constructors
& Static" posted (9/28/07)
- Lecture Notes slides "Programming
Style" posted (9/28/07)
- Lecture Notes slides "Methods"
posted (9/15/07)
- Demo program Test.java
posted (9/15/07)
- Lecture Notes slides "Programming"
posted (9/7/07)
- extended Lecture Notes slides "Making
Objects" posted (9/1/07)
- Assignment 2 posted (9/5/07)
- Lecture Notes slides "Making
Objects" posted (9/1/07)
- Important Dates:
- Monday 8/27: Last day to drop courses (tentative)
- Wednesday 8/29 Last day to register/add courses/change grading option
(tentative)
Contents
Lecture Notes
Programs
- File IO
- Exceptions
- Arrays
- Repetition Statements
- Selection Statements
- Primitive Types
- Inheritance
- Programming
Syllabus
Goal
- To learn the basic tools and methodology needed in computer science - developing software in object-oriented way using an object-oriented programming language.
- To conceptualize the computer science as being based on algorithms.
- To be able to write and understand algorithms that employ the basic constructs
of modern computer languages, including variables, arrays, conditionals, and
iteration.
- To be able to take a specification of a moderately difficult problem, model
the problem in terms of objects, and transform the model into a working object-oriented
program that solves the problem.
Grading
There will be numerous assignments, typically one every week usually consisting of one or more programming problems.
Each assignment will have the same weight. No late assignments will be accepted.
A sample solution to each of the problems will be published one week after
the deadline (or later).
There will be one midterm and a final exam.
There will be numerous (mostly every week) quizzes that are intended either
as a control of whether you understood the most recent topic or to stimulate
your curiosity about the next topic. You will have typically about 5 minutes to answer 2 questions.They will be graded mostly only as good
(or even just turned in) or not so good (or not turned in). The quizzes will be administered either in the lecture or in the lab sessions.
Your final grade will be computed as weighted sum of the following components:
- finals: 40% of the final grade
- midterm: 20% of the final grade
- assignments: 30% of the final grade
- quizzes: 5% of the final grade
- attendance: 5% of the final grade
Also, the following restrictions apply:
- In order to get A grade, you will have to complete all but one assignments
- In order to get B grade , you will have to complete all but two
assignments
This means that your grade might be lower that than the avearge if you miss
assignments. (Note: you may end up getting a C even though you have an A average!)
All assignments must be turned in the following way:
- on the due date and time you must send the source code to the TA as an attachment of an email message
- one day later you must publish a web page for the assignment under your
uhunix account on WWW with your program
There must be clearly recognizable paths of links from your
home page for 111 that lead to the solutions of your assignments: the home page
of your 111 site should be located in your home directory in /public_html/ics/111/
on uhunix, i.e. it should be accessible via http://www2/hawaii.edu/~youraccount/ics/111/.
(Don't use any large graphic files (or anything else that takes long to download)
in the pages on the path - they impede our efficiency in correcting your assignments.)
For each problem, you have to send the TA:
- 1) your source text, and
- 2) sufficient number of sample input/outputs to convince us that the program
solves the problem correctly
- 1) in typical case as well as
- 2) for boundary cases.
While we encourage you to discuss the problem statements and solution alternatives
with each other, but that's where the collaboration must end. Once you begin to write the pseudocode and the final code, you must do it completely by
yourself.
No copying will be tolerated.
Topics
- Introduction to Java
- Objects and strings
- Classes and Objects
- Methods
- Parameters
- Inheritance
- Polymorphism
- Interfaces
- Numeric processing
- Conditionals
- Iteration
- Loops
- Arrays
- Collections
- Exceptions
Grades
Midterm
Resources
Computing Account
- You
will need a UHUNIX account and an ICS Educational Computing Lab account in
order to use the ICS PC lab. See instructions on the ICS webpage under the ics facilities link. (If you have a computer at
home, you can use that instead.) You also need an email account. This can
be a University or non-University account.
Textbook
- Object-Oriented Programming in Java: A Graphical Approach
Kathryn E. Sanders,
Andy van Dam,
Addison-Wesley,
2004 (ISBN: 0-321-24574-1). (Required)
JDK (Java Development Kit) and Java IDE Eclipse
In order to write computer programs, you need to have a set of tools installed on your computer. These tools support a programming language, in our case the programming language Java. The basic tools for Java are called JDK (Java Development Kit). We recommend Java SE 6 Update 2.
JDK can be (freely) downloaded from java.sun.com
for all the common platforms (PC, Mac, UNIX). It includes a compiler (which understands the Java language, e.g. in bin\javac.exe), an executive
interpreter (which runs the program, e.g. in bin\java.exe), and a collection of libraries (ready-made support software called API - Application Programming Interfaces, e.g. in jre\lib\rt.jar
- don't unzip/unjar) and some documentation. The documentation of the APIs (in
HTML format) has to be downloaded separately. JDK contains
all the tools you need to compile and run Java programs. Besides JDK, all you need to develop
software in Java is a text editor. That's because we write all programs as text and this text is then translated by the compiler and then run by the executive.
There is, however a better tool than just a text editor - an IDE (Integrated Development Environments) integrates the tools necessary
for Java programming; it includes an editor, formats the source code, simplifies
access to the API documentation, recompilation, execution and debugging. We
will use Eclipse - a very functional and popular IDE. Eclipse is free and can
be downloaded from www.eclipse.org.
You will need to install JDK as well as Eclipse before you run Eclipse for the first time, then Eclipse will discover JDK itself. (More in the lab sessions.)