CMSI 186 Programming Laboratory
Home Page and Course Syllabus
spring, 2009
Brief contents
- Class Meetings and Personnel
- Class Meetings - 10:50-12:05 pm - Tuesdays and Thursdays - at the Keck Lab (Doolan Hall 112-114)
- Instructor - Philip Dorin - Doolan 102 - (310) 338-2832 - pdorin@lmu.edu
- Secretary - Jacqi Davis - Doolan 101 - (310) 338-735 1- jadavis@lmu.edu
- Labs Manager - Andres Buritica - Doolan 104 - (310) 338-5100 - andres.buritica@lmu.edu
- Objectives
- We will attempt to perfect your programming style and methodology by working closely, in the Keck Lab, on about seven medium-sized applications. The problem areas usually include discrete simulation, algorithms for arithmetic, dynamic programming, backtrack search, Riemann integration, randomized estimation, plotting numerical functions and constructing simple GUI's.
- We will begin to use diagrams to help clarify our designs, especially the various relationships among classes and objects.
- We will concern ourselves with the build environment; to this end, we will construct simple build scripts.
- We will pay close attention to unit testing, and we will design countless such tests as a routine part of program development.
- We will cover more of the language Java, including multi-dimensional arrays, exception handling, event handling, and programming with graphical components.
- We will further explore issues of object-oriented programming that we only touched upon in CMSI 185, e.g., constructing packages and classes, subclassing existing classes, overriding methods, etc.
- Prerequisite
You ought to have successfully completed CMSI 185, or an equivalent course, using Java.
- Coursework and Grading
- A new problem will be assigned approximately every other week. For each one, we will discuss several possible algorithms, finally singling out one of them for implementation. I will then provide sketches of the important program structures, and your mission will be to complete the program. You will submit a formal lab report at the conclusion of each problem.
- You will do a lot of programming during the workshop itself; the remainder is to be done for homework. Your grade will be determined according to two factors:
- The overall quality of the programs and lab reports that you submit.
- Your class participation, including your attendance at the workshop and your preparation for them. Regular attendance is expected; absences should be formally excused prior to the scheduled class time.
- A word about collaboration with other classmates: It should be kept to a minimum. You may ask a classmate for help in diagnosing a syntax problem, or discuss the assignment in general terms; but, unless the assignment explicitly calls for pair programming, you may not share any code.
- Recommended Texts
You may find one or more of these helpful, especially Java Examples in a Nutshell.
All are published by O"Reilly.
It is not necessary to have the latest editions of each of these texts; any recent edition will do:
- Flanagan. Java in a Nutshell.
- Flanagan. Java Examples in a Nutshell.
- Flanagan. Java Foundation Classes in a Nutshell.
- Problem Sets
Revised: April 14, 2009