605.201: Introduction to Programming Using Java, Summer 1999


New! Note: Class on August 17th has been cancelled, however, the final exam is still on August 24th.

New! I will hold an optional review session on Monday, August 23rd at 5:00pm in room K-3. I'll be there to answer questions and do sample problems; attendance on the 23rd is strictly optional.

Paul McNamee


Course Times and Location:

Course Overview
The chief objective of this course is to allow students without a background in computer programming to become proficient programmers through learning the Java programming language. Topics will include syntax, data types, iteration, conditional expressions, arrays, references, methods, and exception handling. In addition, unique aspects of programming with Java will be discussed including object-oriented methods, the syntax for classes and inheritance, Java package APIs. Since this is an introductory course, several non-Java-specific topics will be included such as basic software engineering and debugging techniques. If time allows, some time may be spent on topics such as graphical programming and GUIs. Students with a more extensive background in computer programming who wish to learn Java and other Web topics would be better served taking 605.481: Distributed Development on the World Wide Web. Students interested in a more rigourous treatment of object-oriented programming techniques should consider 605.404: Object-Oriented Programming with C++.
Schedule of Topics
DateTopic Lecture NotesAssignmentExamples, Handouts
June8 Introduction to Programming, Java course-outline.ps
June15 Conditional Expressions, Looping lecture2.ps hw1.ps DropObject.java
June22 Methods, Variable Scoping, Math API lecture3.ps hw2.ps
June29 Arrays, Memory Management, String API lecture4.ps hw3.ps
July6 Object-Oriented Programming I lecture5.ps hw4.ps Places.java
July13 Midterm Exam
July20 Object-Oriented Programming II lecture6.ps hw5.ps IntegerSet.java
July27 Graphical Programming lecture7.ps hw6.ps PieChart.java
August3 Graphical User Interfaces lecture8.ps hw7.ps Scribble.java Scribble.html
McTofu.java McTofu.html
Miner.java Miner.html
August10 Exceptions, Basic Input and Output lecture9.ps hw8.ps DetectClicks.java
DivideByZeroException.java DivideByZeroTest.java DivideByZeroTest.html
DumpFile.java DumpFile.html
August17 Class Cancelled (Data Structures Overview) lecture10.ps StackExample.java
Library.java Book.java VectorOfBooks.java
August24 Stacks and Vectors, Final Exam
Grading Policy
Grades will be based on programming assignments (60%) and on two exams (40%). Students may use computers at home or work for the homework assignments, however more support will be available for students using the University's UNIX system. Homework assignments will be given out approximately weekly and should take between three and six hours to complete.
Academic Integrity
Work for this class is expected to be the result of individual effort. Unless explicitly prohibited, it is perfectly acceptable to make use of published examples and code in the literature with attribution. Furthermore, while it is permissible to discuss the general nature of lecture material and assignments with your peers, this does not extend to revealing solutions or source code. Students are expected to uphold the academic integrity of the university. Students using without reference, published material or copying the work (e.g. source code) of another individual will receive a zero on the assignment and the matter will be referred to the dean. Contact me if you have any questions, no matter how slight, about this policy or questions about a particular assignment.

A small collection of commonly asked questions in 605.201 is kept here.

On-line Java resources

JHU on-line resources

Paul McNamee