CMSI 186 Programming Laboratory
Home Page and Course Syllabus
spring, 2007
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: Dr. Dorin - Doolan 102 - (310) 338-2832 - pdorin@lmu.edu
- Secretary: Jacqi Davis - Doolan 101 - (310) 338-7351- jadavis@lmu.edu
- Labs Manager: Caskey Dickson - Doolan 104 - (310) 338-5100- caskey@technocage.com
- 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.
- Prerequisites
- You should majoring or minoring in Computer Science.
- You must have completed CMSI 185, or an equivalent course using Java, with a grade of C or better.
- 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
It is not necessary to have the latest editions of these texts- recent editions will work:
- Flanagan. Java in a Nutshell.
- Flanagan. Java Examples in a Nutshell.
- Flanagan. Java Foundation Classes in a Nutshell.
- Problem Sets
- A New Dice Game - due January 25
- Discrete Simulation - due February 8
- Changemaking Revisited - due February 22
- Arithmetic with Arbitrarily Large Numbers - due March 15
- Riemann Integration - due March 29
- Randomized Estimation - due April 12
- Function Plotter - due May 3
Revised: January 17, 2008