CSCI N307 Introduction to Programming with Java

Section Notes

Lecture: Mon, Weds 4:00 - 5:15 PM BS3006
Lab: Mon, Weds, 5:30 - 7:00 PM SL 070B

Final exam is now available. Good Luck!!

Official Syllabus

Course Syllabus

Class Roster

class roster
Please send me an email if you are not on this roster.


Synopsis of topics (this is the order of topics, but at the moment I am not sure of the speed with which we will proceed. These are all the subjects I plan to cover, although we will certainly visit some other areas.
Unit Topic Readings Project
1 Your First Applet Chap 01  
2 Objects Chap 02 Hello World
3 Basic Layout Chap 03  
4 Action Events Chap 04 Alphabet Game
5 More advanced layouts Chap 05  
6 String Manipulation Chap 06 Fuddifier
7 Numbers and Primitives Chap 07 Math Quiz
8 Classes and Constructors Chap 08  
9 Method and Variable Modifiers Chap 09 The rectangle
10 Item components Chap 10  
11 Scrollbars Chap 11 Order Form
12 Mouse and Key Handling Chap 12  
13 Frames and Inner Classes Chap 13  
14 Dialogs, menus, and loops Chap 14 Preferences page
15 Threads Chap 15  
16 Multimedia Chap 16 animation
17 Animation Chap 17 (online)  
18 Case Study: Arcade game Chap 18 (online)  
19 Case Study: Database Chap 19 (online)  
20 Applications, JDBC, Swing Chap 20 (online) Final Project


This course is targeted towards students who have some comfort level in computing, but not necessarily any programming background. Some experience in HTML and UNIX would be helpful, but not absolutely necessary.

Course Objective

The purpose of this course is to provide the student with an understanding of object oriented problem - solving, especially as it relates to the Java programming language. We will be investigating the problem solving process as it relates to multi-platform computing, and the event-driven approach. We will see how these unique aspects of java require us to change the way we think about algorithm design, program testing, and implimentation.

Required Text

Recommended references

In addition to the textbook, you might want to have a reference guide available. Here are two of the top contenders:
If you are interested in using another book, feel free to do so, but note that we are currently using the 1.3 version of the JDK sometimes called Java2) , so any books which refer only to the 1.2 version will be slightly different. The 1.0 version is quite outdated, so you will probably want to stay away from it.

Assignments & Projects

Students will create a number of small applications illustrating the concepts they have learned. Most of these assignments will be distributed on web pages for ease of grading, although we will also have at least one example of a stand-alone application. Although lab time will be provided, students are encouraged to do much of the work at home if they wish. One of the joys of Java programming is the freedom from any particular browser or editor. However, I will require you to be fluent with a text editor and JDK. Most of the IDEs (like Visual Studio, Cafe, and so on) are prone to adding strange code. You should know how it's done with a plain text editor first. I recommend JEXT and EMACS. Both are included on the CD that accompanies the text.

The Java 1.3 JDK, the online help system for Java, a couple of good text editors and some other stuff are all on the CD that accompanies the textbook.

Grading (subject to change)

Final grades will be based upon the following point apportionments (subject to change):

Late Assignments & Incompletes

Lab assignments will be worth 10 points apiece and shall be due one week from the day on which they were assigned. All late assignments will be assessed a 20% penalty. It should be noted that if the instructor is unable to view a file (due to a student's misconfiguration) on the due date, that assignment shall be considered late for grading purposes.

A grade of incomplete is not intended to serve as a drop or withdrawal after the time period for submitting a drop has expired. Incompletes will only be permitted under the following conditions:

  1. The student has satisfactorily completed all course requirements up until the time of the incomplete.
  2. The student demonstrates that being required to complete the course within the semester's time constraints would cause extreme personal hardship.
  3. The student and instructor agree to a plan to complete the remaining coursework in a reasonable time period not unduly burdensome upon the student. In no case will the student be permitted to complete coursework any later than the mid-term examination of the semester following that in which the incomplete was issued.
  4. All paperwork required to issue the incomplete is completed and turned in to the CSCI office staff before final grades are issued.

Important Dates

Please see the academic calendar for details on important dates

Keeping Informed

Since this is an Internet course, we will utilize Internet technology as our primary communications medium. During one of the earlier sessions, you will be provided an email account and access to a class mailing list. You will need to check your email regularly, because we will post important information, such as assignment or schedule modifications, to the list. In addition, the mailing list is a great forum to engage in general class discussion. The instructors will also maintain materials relevant to this class on their home pages. Check them frequently for examples, hints, great links and other goodies!

Reaching Us:

Instructor: Andy Harris

Office: SL 280 D
Office Hours: Daily by appointment Phone: 274-8491

Home Page:



Streaming Media

2000 Andrew J. Harris. All Rights Reserved.
Indiana University, Purdue University, Indianapolis
Department of Computer & Information Science