CMSC 220:  Java Programming



Instructor:  Dr. R. P. Webber


Office location and hours:  East Ruffner 332.  Hours MF, 2:00 - 3:00;  T 1:30 – 3:00; and by appointment or coincidence.  I am not normally on campus on Thursdays.

Telephone:  395-2192





Course description and prerequisite:  This class develops the skills for programming using the Java programming language.  This is an advanced programming course and it is assumed that the student has the required programming skills acquired from previous C and C++ programming courses.  Prequisite:  CMSC 160 or permission of instructor.  3 credits. 


Text:   Cohoon and Davidson, Java 5.0 Program Design.  McGraw Hill, 2004.  ISBN 0-07-296113-9.


Course objectives:


  1. Master the basic syntax of Java.
  2. Demonstrate good program design.
  3. Implement concurrent algorithms.
  4. Use Java applets in web programming.
  5. Incorporate a graphical user interface into a program.
  6. Implement exception handling routines.



Course requirements and grading:


Two tests …………….…………………………...……..12% each


Exam .…………..……………………………………….16%


90-100 A; 80-90 B;  70-80 C;  60-70 D;  below 60 F.  Plus and minus grades will ordinarily be given for grades in the upper and lower 2 points, respectively, of each range. 



Assignments:  Unless otherwise specified, assignments are to be done individually.  You may help each other debug work, but each person is to key in his or her own program, and each person must submit each assignment individually.  For programs, hand in


-          a printed copy of the program and output  (unless the teacher specifies otherwise)

-          a listing of any input used

-          external documentation as appropriate, including pseudocode and an account of testing


Non-programming assignments may be done in small groups, depending on the teacher’s instructions.  The tests and exam will be taken individually and are closed book. 


Each assignment will have a due date.  It is due by the beginning of class on that date.  Failure to hand it in on time will result in a penalty of 25% for each class day it is late.  No assignment will be accepted after the scheduled exam period for this course for any reason.  Click here to see the rubric for grading programs.



Tentative Schedule:


Week 1  Aug 22 – 26

Ch.1, 2:  Introduction, history of Java, basic syntax

Week 2  Aug 29 – Sep 2

Ch. 3, 4:  Objects, classes

September 5 Labor Day – no classes

Week 3  Sep 7 – 9

Ch. 5,6:  Decisions, iteration

Week 4  Sep 12 – 16

Ch. 6:  External files

Week 5  Sep 19 – 23

GUI Interlude 1

Week 6  Sep 26 - 30

Ch. 7:  Methods and parameters

Week 7  Oct 3 - 7

Ch. 8, 9:  Arrays

Fall break October 10 - 11

Week 8  Oct 12 - 14

Catch up, review, TEST

Week 9  Oct 17 – 21

Ch. 9:  Inheritance, polymorphism

Week 10  Oct 24 – 28

Ch. 10, 11:  Exception handling

Week 11  Oct 31 – Nov 4

Ch. 11:  Recursion

Week 12  Nov 7 – 11

Ch. 12:  Threads

Week 13  Nov 14 – 18

Ch. 12:  Threads; review, TEST

Week 14  Nov 21

Appendix D:  Applets

Thanksgiving break November 23 - 25

Week 15 Nov 28 – Dec 2

Appendix D:  Applets; review

Friday, December 9, 8 – 10:30 a.m.




Attendance Policy: Your attendance is expected at all classes.  Makeup tests will be given reluctantly, and then only upon presentation of a doctor’s excuse.  Makeup tests are always more difficult than regular tests, regardless of the reason of absences. 


Honor Code:  The teacher subscribes to the Longwood University Honor System, which, among other things, assumes you do not cheat and that you take responsibility to see that others do not.  Infractions will be dealt with harshly.  A student who is convicted of an Honor Code offense involving this class will receive a course grade of F, in addition to penalties imposed by the Honor Board.


Computer:  Each student in the class will be assigned an account on Longwood’s LINUX system.  You may do your programs on this system.  You may want to get a copy of Java on your PC.  I recommend Sun Java.  It is free, and instructions for downloading it will be distributed in class.  You may use other versions of Java if you wish, but you will not be able to get help from me in implementing them.  Programs must run correctly on Longwood’s LINUX Java or on Sun Java to be acceptable for this class.