CS 202: Transition to Java

Fall 2001


Administrative Notes


This course assumes that you have had previous experience in imperative programming, probably in C or C++, and that you are familiar with the material listed below. The amount of work given in this class is calibrated to students who meet the prerequisites.  Don't take this course if you don't meet the prerequisites.

The Drop Deadline for this course is:  Friday, September 7, 2001

Course Overview

This course will show you how the material listed in the prerequisites appears in Java.  Beyond that, the course serves the important function of teaching you the object-oriented features of Java: classes and objects, static and non-static fields and methods, constructors, subclasses and inheritance, and interfaces. Less importantly, the course will touch briefly on other topics, like exceptions, packages, threads, and I/O.  Time permitting we will also cover some Java specific topics such as applets and the swing libraries.

The course has two types of students in mind: (1) students who want to prepare to take other courses that use Java, like CS211 and some of the upper level courses, and (2) students who want Java experience in order to seek employment in jobs that require experience with Java.

Lecture-paced or Self-paced?

The text for the course, ProgramLive, contains over 250 recorded lectures (with synched animation) on programming (in Java). This text, along with its paper Companion, make it feasible to allow you to take the course at your own speed (provided you finish it in four weeks). Liberal office hours will be provided for you to ask questions and get some one-on-one help, and you can also email your questions at any time. Live lectures, of course, can be extremely useful. You can take the course in the self-paced mode but still attend the MWF lectures, if you wish.

The assignments are the same, whichever way you take the course.

For more information on taking CS202 in a self-paced mode, click here.

Due to the fast pace at which we will be covering material, we will not be able to cover everything in lecture.  You must seek out information on your own.  Be Resourceful!  The lectures are intended to present examples and insight into the language and to provide a forum for questions.


This course is listed as one credit S/U.

There will be weekly programming assignments that will usually require you to understand a partial implementation in the JAVA language and extend it to conclusion.  The goal of these exercises will be to give you experience in using the language constructs presented in class.  The intention is that if you have done the required reading and attended class or listened to the appropriate lectures in ProgramLive, then each problem should be doable in a single sitting (~1-2 hours).  We reserve the right to ask you to demo an assignment if we have questions.

With regard to the assignments, you may talk about the assignments among yourselves (discuss techniques in the language, etc.), but you may not work in groups and you absolutely may not share code. All the code that you submit must be your own.

An 'S' will be given to those students who successfully complete ALL four assignments and thus demonstrate sufficient proficiency in programming in Java.

There are four assignments. We urge you to complete them well before their due dates, which are listed here:

  1. Assignment 1. Do on your own before beginning next assignment.  (Strongly recommended that you do this before the drop date.)
  2. Assignment 2. Final Acceptance Date:  Monday, September 17, 2001 - 5:00 PM
  3. Assignment 3. Final Acceptance Date:  Friday, September 21, 2001 - 6:30 PM
  4. Assignment 4: Final Acceptance Date:  Friday, September 28, 2001 - 6:30 PM


Grading procedure

Each assignment is graded on a pass-fail basis. If you fail, you work on it some more until you pass.

Here's how we hope to grade your assignments. Whenever you are finished with an assignment, take it on a floppy disk to one of the graders, to James Ezick, or to Professor David Gries during their office hours. That person will look at the assignment with you on their computer, ask you questions, and give you pointers. If your program is not suitably presented --indentation, method specifications, definitions of variables, etc.-- you will be asked to leave immediately and come back after you make the program presentable. However, in most cases, we anticipate that grading your assignment will take about 5 minutes, perhaps 10, with a positive outcome.

We repeat: come to have your program assignment graded whenever it is ready. You can come whenever you want, as long as it is before the deadline for that assignment. Waiting until the dealing to have it checked will probably mean waiting in line for someone to look at it.

You can complete the assignments as early as you wish. Once the fourth one is passed, you are officially done with the course. 

Development Environment

The choice of development environment is left to the discretion of the student.  The code samples presented in class and made available on this site will have developed and tested using Sun's JDK 1.3.  This course will stick to the core Java language and not make use of existing platform dependent libraries (Xlib, WFC, etc.), so any compiler that implements the language properly can be used.  Part of the first assignment is getting your development environment in order.

CS100 used the integrated development environment (IDE) CodeWarrior, and it is available in the Cornell computing labs. Moreover, ProgramLive contains extensive lectures on using CodeWarrior. Therefore, CodeWarrior is a good choice if you want to use an IDE.

Last Modified:  Friday, September 14, 2001 12:37:37 PM