Course Instructor:
       Name: Kay A. Robbins
       Office: 3.02.01C
       Phone: 210-458-5543
       Email: krobbins@cs.utsa.edu
       Web Page:
http://vip.cs.utsa.edu/personnel/krobbins.html
       Office Hours: MF 11:00 am - noon, W 7:00 - 8 pm
and by appointment
Class Meets:
        MWF 10 am - 11 am in room 3.03.20 BB
Course Web Page:
       
http://vip.cs.utsa.edu/classes/cs4773s2004
Prerequisites:
        Undergraduate operating systems
        Data-structures level knowledge of object-oriented programming
        If you have not met
these prerequisites, you must see me.
This course focuses on the design and implementation of systems using
object-oriented technology.
You
will be programming in Java.
Textbooks:
       
       
Design Patterns Explained: A New Perspective on Object-Oriented Design
by Shalloway and Trott
       
       
Core Java 2 Volume I: Fundamentals by Horstmann and Cornell
       
       
Core Java 2 Volume II: Advanced Features by Horstmann and Cornell
Course Objectives:
Grading:
You must do the reading prior to coming to class and be prepared to discuss the material or ask questions. Teamwork skills and their role in your grade are determined below.
General:
Teamwork:
Rarely is software developed by a single person. As a software developer, you will most likely be working with a team of people. To succeed in such an environment, you must become a "team player".The words "team player" often have negative connotations for software developers, conjuring pictures of someone who goes along with the status quo and suppresses creativity. One of the goals of this course is to develop the positive aspects of teamwork. These skills include honesty, giving appropriate credit to other members of your team, and focusing your skills and creativity on making the project succeed. No matter how good you are, the project will not succeed unless all parts succeed. Weak technical team members or members with poor attitudes can cause a project to fail.
The assignments for this course MUST be your own work. However, I would like class members to support each other in the course. The final project will be a class project, and weak class members will doom the project to failure. The course grading system is designed so that you cannot get an A without teamwork points.
Teamwork and Participation Points:
You need to keep a notebook recording interactions that you have had with members of the class or with other people who help you (include dates). I will look at this notebook at the end of the semester.For each laboratory, you are required to send me a SEPARATE email (to krobbins@cs.utsa.edu) for each person that you have interacted with during the time covered by the laboratory. The email should have a subject line that contains ONLY "Lab X:person's name". The email should summarize the interaction, benefits, etc. These emails should be written independently of the other people.
You must also turn in a self-evaluation (due at the final). This evaluation should be one to two pages single spaced (use a word processor). You should explain your strengths and weaknesses in the course, what aspects of your work need improvement, and what you contributed to overall class success.
Tentative Course Outline and Schedule:
| Topic | Lecture Time | Supporting Lab |
| Object-oriented basics | 5 Lectures | Lab 1, 2 |
| Intro to UML and patterns | 3 Lectures | Lab 3 |
| User interfaces | 3 Lectures | Lab 4 |
| Use cases | 3 Lectures | Lab 5 |
| Advanced Programming Topics | 7 Lectures | Lab 6, 7 |
| Major Project Foundation | 6 Lectures | Project |
| Major Project Design Discussion | 6 Lectures | Project |
| Additional Topics and Project Wrap-up | 5 Lectures | Project |