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

Contents


Lecture Notes

Chapter Slides

Objects, Variables
Making Objects
Programming
Methods
Classes
Programming Style
Constructors & Static
Interfaces
Inheritance
Primitive Types
Selection Statements
Repetition Statements

Arrays
Exceptions
File IO
Design Patterns

1.objects.ppt
2.making objects.ppt
3.programming.ppt
4.methods.ppt
5.classes.ppt
6.programming style.ppt
7.constructors static.ppt
8.interfaces.ppt
9.inheritance.ppt
10. primitive types.ppt
11.selection.ppt
12.repetition.ppt
13.arrays.ppt
14.exceptions.ppt
15.fileIO.ppt
16.design patterns.ppt

Programs


Syllabus

Goal

  1. To learn the basic tools and methodology needed in computer science - developing software in object-oriented way using an object-oriented programming language.
  2. To conceptualize the computer science as being based on algorithms.
  3. To be able to write and understand algorithms that employ the basic constructs of modern computer languages, including variables, arrays, conditionals, and iteration.
  4. 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:

Also, the following restrictions apply:

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:

  1. on the due date and time you must send the source code to the TA as an attachment of an email message
  2. 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:

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


Grades


Assignments and labs


Midterm


Resources

Computing Account

Textbook


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.)