Course Information

Prerequisites

Knowledge of an object-oriented language such as C++ or Smalltalk
OR Strong knowledge of C and instructor's permission.
Prior knowledge of Java a major plus.

List of topics
 
Basic Java programming 6-7 lectures
UML 1-2 lectures
Basic OO concepts  4-5 lectures
OO modeling 3-4 lectures
Design Patterns 2-3 lectures
Model-View-Controller  1-2 lectures
Client/server programming 1-2 lectures
Threads in Java 2-3 lectures
Case studies in large-scale SE 2-3 lectures
Project presentations 2-3 lectures

Structure

Students will be divided into groups of 3 either by choice or by assignment.
Every group should choose a name and elect a leader, who will be responsible
for coordination of group's code. Students will be graded primarily on programming.
Throughout the class students will incrementally develop a system, which will be
completed by the end of the semester.
This class will require a lot of programming (I mean a lot!).
 

During midterms instructor and assitant will check on the progress of the students.
There will be no final examination, instead students will present class projects to the
classmates and guests.