Programming Lab in Medical Informatics III
BIOMED 223C, University of California, Los Angeles
Syllabus for Spring 2006


Instructor:
Jason Corso (jcorso@mii.ucla.edu)

News:
Course Webpage:

http://www.mii.ucla.edu/~jcorso/teaching/biomed223c-spring06.
Intranet site on the MII wiki: courses/biomed223c-spring06.

Course Overview:
The course is designed to expose the students to both relevant topics in medical informatics and the process of developing these topics into large software systems. The topic of emphasis for this quarter will be pattern classification. As a group, we will design the software framework necessary for a comprehensive pattern classification system. Collectively, the students will implement the designed framework. Individually, each student will implement a particular pattern classification algorithm in this framework. This project will be developed through the duration of the quarter as new topics in both software engineering and pattern classification are learned; the result will be a practical and complete system that the students can take with them into their future research.

Course Goals:
In this course, it is expected that the students will have gained knowledge and experience in
  1. Object-Oriented software design and analysis.
  2. Pattern classification algorithms and the associated implementation problems.
  3. Participation in a long-term software design project.
  4. The use of mainstream software tools for large system engineering (Eclipse, UML, JUnit, CVS/SVN, JavaDoc).
  5. Presenting the work in an oral presentation.

Textbooks:
Required material distributed by instructor.
Recommended (in MII):
UML Distilled by Fowler (2nd or 3rd Ed.).
Pattern Classification by Duda, Hart and Stork.
Software Engineering, A Practitioner's Approach by Pressman.

Meeting Times:
MW 1:30-3

Grading:
Letter grading distributed as follows:

Programming Language:
Java.

Final:
The final oral presentations will take place during finals week and will be publicly announced.

Calendar



Part I: Introduction to Software Engineering

  Week Topics Readings Assignments
1 April 3


1. Course Overview.
2. Assessment and Java Review.
3. Software Lifecycle.

Pressman Ch. 2, 5.
Short programming assignment (due end of week 3).
2 April 10


1. Object-Oriented Design.

Pressman Ch. 19-21.  
3 April 17


1. The UML.
2. Class Responsibility Collaboration (CRC) cards.

Fowler Ch. 3-5,9 (2nd Ed.).


Written 1 (due end of week 4).



Part II: Quarter Focus: Pattern Classification

  Week Topics Readings Assignments
4 April 24


1. Introduction to Pattern Classification.
2. Dimensionality Reduction and Data Quantization.

Duda Ch. 1 and Handout.


Project Design
(due end of week 5).

5 May 1


1. Support Vector Machines.

Handout.


Project Programming 1
(due end of week 7).

6 May 8


1. Hidden Markov Models.

Handout.  


Part III: Advanced Software Engineering Concepts

  Week Topics Readings Assignments
7 May 15


1. Software Testing.

Pressman Ch. 16, 17, 22.


Project Programming 2
(due end of week 10).

8 May 22


1. Design Patterns.

Handout.  
9 May 29


1. Refactoring.

Handout.  
10 June 5


1. Extreme Programming.

Handout. Quiz.



Jason Corso 2006-04-03