Course Description and Objective
Catalog Description
This course discusses fundamental conceptual models for programming languages and illustrates
these with specific programming languages and application problems. Specific topics include
class and object models and inheritance among classes and objects and static and dynamic
systems and implementations.
Course Overview
This course discusses fundamental conceptual models
for object-oriented programming and illustrates these with Java language and application problems.
We will be covering object oriented terminology extensively while emphasising the practical
importance of the concepts.
Students will be responsible for reading the required textbook, creating presentations for the challenges,
and working on a significant and non-trivial team programming project to gain familiarity with
object-oriented analysis, design, and implementation.
An Important Note
This course is geared for motivated, highly capable students who enjoy software development
and abstract thinking. Those merely seeking an easy tech elective will be
deeply unhappy (see grading criteria below); those willing to put forth the time and effort will
likely find this to be very useful in the long run.
Course Objectives
- Learning fundamentals of object-oriented design
- Building a working knowledge of object-oriented programming
- Getting familiar with UML terminology: learn how to incorporate UML in design
- Understanding how to design and implement well built class hierarchies
- Being able to evaluate classes and hierarchies
- Differentiating between object oriented programming and other paradigms
Prerequisites
COP 3530 and a working knowledge of Java
Required textbook
-
Fundamentals of Object-Oriented Design in UML
ISBN: 020169946X
Optional textbook
-
Design Patterns: Elements of Reusable Object-Oriented Software
ISBN-10: 0201633612
ISBN-13: 978-0201633610
Approximate Lecture Schedule and Important Dates
| Week # | First Date of the Week | Topic | Referential Reading | Monday | Wednesday | Friday | |
| 1 | 01/09/12 | Introduction to Computing and Programming Paradigms | Quiz 1 | ||||
| 2 | 01/16/12 | Introduction to Object Oriented Programming | Chapter 1 | Holiday | Quiz 2 | ||
| 3 | 01/23/12 | History of Object Oriented Programming, UML: Basics | Chapter 2 & 3 | Quiz 3 | |||
| 4 | 01/30/12 | UML: Class Diagrams | Chapter 4 | Quiz 4 | |||
| 5 | 02/06/12 | UML: Object Interaction Diagrams | Chapter 5 | Project: 1st iteration | Exam 1 | ||
| 6 | 02/13/12 | UML:State Diagrams | Chapter 6 | Quiz 5 | |||
| 7 | 02/20/12 | UML: Architecture and Interface Diagrams, Competition I | Chapter 7 |
Presentation | |||
| 8 | 02/27/12 | Competition I | Presentation |
Presentation |
|||
| 9 | 03/05/12 | ||||||
| 10 | 03/12/12 | Principles: Encapsulation and Connascence | Chapter 8 | Quiz 6 | |||
| 11 | 03/19/12 | Principles: Domains, Encumbrance, and Cohesion | Chapter 9 | Project: 2nd iteration |
Quiz 7 | ||
| 12 | 03/26/12 | Principles: Class Behavior | Chapter 10 & 11 | Exam 2 | |||
| 13 | 04/02/12 | Principles: Inheritance and Polymorphism | Chapter 12 | ||||
| 14 | 04/09/12 | Principles: Techniques For Organizing Operations, Cohesion and Support of States and Behavior | Chapter 13 & 14 |
Project: Self Critique | |||
| 15 | 04/16/12 | Principles: Designing a Software Component, Design Patterns | Chapter 15, GoF Book |
Quiz 8 |
|||
| 16 | 04/23/12 | Design Patterns | GoF Book |
Project: 3rd iteration |
Final Grades
Your
final grade will be based on the number of grade points you have
accumulated at the end of the semester. The grading scale will
be:
 100-92 = A,
 91-89 = A-,
 88-86 = B+,
 85-82 = B,
 81-79 = B-,
 78-76 = C+,
 76-72 = C,
 71-69 = C-,
 68-66 = D+,
 65-62 = D,
 61-59 = D-,
 58-0 = E.
During the semester you will
accumulate points in categories weighted as follows:
The First Assignment:
The First Assignment is mandatory and failure to provide this assignment within its deadline will result an automatic 'E' letter grade from this class.Quizes %20:
In class quizes will be launched on Fridays at the end of the class, covering weekly lecture material.Exams %20:
There will be 2 in-class exams which comprehensively test understanding of the class subjects.Project %45:
Projects will be done in groups (5 to7 people depending on class size). Each project group is supposed to produce a well structured object oriented program in the end. There will be 3 iterations on the target software, where at each iteration software definition will be extended, thus program design will become more challenging. Primary grading of the project will be done by instructors however each member will also be evaluted by other team members via peer grading system. Also a self grade will be required.Challenge Presentations %15:
Project groups will answer 2 challenge questions by creating 20 minute presentations for each of the challenges. Instructional staff and class will both be grading the presentations.Bonus %?:
Additionally most quizes and exams will have bonus points within.