CMSC 131 - Object-Oriented Programming I

Fall 2004


This is a first programming course for Computer Science majors with a focus on object-oriented programming. The goal of the course is to develop skills such as program design and testing as well as the implementation of programs using a graphical IDE. All programming will be done in Java.

Course Coordinators

Name Office
Dave Mount AVW 3373  
Nelson Padua-Perez   AVW 1129

For office hours and other contact information, visit the contact web page.

Required Text

Java Software Solutions: Foundations of Program Design, Java 1.4 Edition, Lewis & Loftus, Addison Wesley (2004 or 2005), ISBN 0-321-28611-1. (Beware: There are two editions floating around in the bookstores. The one to buy has a black cover with a picture of a big sand castle, and not the one with the picture of leaves.)

Recommended Text

Head First Java, Bert Bates and Kathy Sierra, O'Reilly, ISBN 0-596-00465-6.



There will be assignments almost every week, and they will roughly alternate between "closed" assignments which you must complete by yourself and "open" assignments where collaboration is permitted. (More information about the open policy will be provided in class and can be found in the Policy Regarding Open/Closed Homework.) There will also be two midterms, a final exam, and occasional (announced) quizzes.


All assignments can be done on the machines of your choice. You are welcome to do the work on a home computer if you have one. You will also obtain a special WAM account for this class, and can use WAM machines on campus for your assignments. There should not be any machine-specific dependencies in your code. However, if we are not able to run your program because there is a difference between your and our computer environments, you must work with us to get your program to work in our environment.


All assignments are due at 6pm on the day they are due. They are to be submitted electronically according to instructions given with the assignments. Late assignments will be strictly penalized. Exceptional circumstances will be considered only if discussed with the instructor before the assignment is due. Late assignments will have points deducted as follows:

Final grades will be computed according the following weights. (These weights are tentative and subject to future adjustment.)

40% Homeworks/Programming Assignments (8)
10% Quizzes
12% Midterm #1
12% Midterm #2
26% Final Exam

The weights of the individual homeworks are: 1%, 2%, 3%, 4%, 7%, 7%, 8%, 8%.

Challenge Problems

We often add a special "Challenge Problem" to the end of each homework assignment. Challenge problems are entirely optional, and your grade cannot be adversely affected if you do not attempt them.

Successfully completing a challenge problem is not reflected in your homework grade. Instead, you will awarded special "gold-star points." We do not consider these gold-star points when computing cutoffs for the final grade. These points are used entirely for certain intangibles. For example, this might arise if you need a recommendation for a part-time job on campus, or if another professor is considering oversubscribing you into a full class, and asks me how good a student you were. In such cases, these points can give me additional information beyond your letter grade.

Gold-star points cannot be traded for regular homework or exam points. So, do not attempt the challenge problem unless you have successfully completed the basic project. The reason is that challenge problems are designed for students that are willing to work beyond the current course material. Solving a challenge problem may involve searching the web, reading ahead in our textbook, or simply doing some clever thinking to come up with a solution. We do not want to penalize students who come into the class without additional programming knowledge. Nonetheless, we do want to challenge the more experienced students to try to do more.

Note that the rules of academic honesty apply, and all challenge problems are to be treated as if they are closed homeworks, that is, they are to be done individually. (See the Policy Regarding Open/Closed Homework.)

Academic Honesty

All individual assignments/exams must be done individually. (The only exception to this are "open" assignments, which will be discussed in class.) Please visit the webpage of the Student Honor Council for a detailed explanation of what constitutes academic dishonesty. Note that it includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. You are allowed to use the Web for reference purposes, but you may not copy code from any website or any other source. In short, all submitted work must be your own.

Cases of academic dishonesty will be dealt with harshly. Each such case will be referred to the University's Office of Judicial Programs. If the student is found to be responsible of academic dishonesty, the typical sanction results in a special grade "XF", indicating that the course was failed due to academic dishonesty. More serious instances can result in expulsion from the university. If you have any doubt as to whether an act of yours might constitute academic dishonesty, please contact your TA or one of the course coordinators.