SWENG 311: Object Oriented Design

Textbook Information

Sign in and create an account at learn.zybooks.com. Enter zyBook code: (will be given after class starts).

A subscription is $58 and will last until the end of the semester. The textbook will serve as a supplement to the module notes available on Canvas. The notes are directly to the points while the textbook has more detailed descriptions with exercises.

Published Remarks

None

Hardware Requirements

Software Requirements

Proctored Exams

Course Description

This course conveys 10 important object-oriented (OO) properties with an acronym called MICE OR PIGS. The understanding of these 10 vital properties will help you realize the characteristics of OO programming languages, learn to apply OO design and development API, utilize formal notations for software design, and achieve software reuse. You are going to take advantage of CASE tools to facilitate fast software development. Besides, you apply the learned object-oriented design knowledge to specialize in 2D computer graphics and graphical user interface design, and practice simple 2-tier network programming.

This course orientation introduces me (the instructor) to you. Please take advantage of the virtual office hours (appointment only between 9:00AM ~ 5:00PM Eastern Time), emails and discussion forums to resolve your questions. The Canvas website will be the portal to view course materials and submit your work. The course progression and submission due dates are detailed in the course schedule.  To be successful, please conform to the schedule without delay.

Prerequisite: CMPSC 122 (Intermediate Programming)--Introduction to the object-oriented programming, recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, and trees), the basics of algorithmic analysis, and an introduction to the principles of language translation.

Overview

SWENG 311 has a strong focus on design. The main goal is to learn object-oriented (OO) design utilizing the Java programming language as the learning tool. The programming exercises aim at guiding you to apply the understanding of design.

Course Outline: 

Module 1 – OO Technology Module 2 – Intro to Java Module 3 – Classes, Objects, and Data Types Module 4 – Fields, Methods, and Parameters Module 5 – Control Statements Module 6 – Arrays and ArrayLists Module 7 – Information and Implementation Hiding Module 8 – Inheritance Module 9 – Polymorphism Module 10 – Class Relationships Module 11 – Data Streams and File I/O Module 12 – Exception Handling Module 13 – Multi Threading Module 14 – Generics Module 15: Final Project

Learning Goals

By the end of this semester, you  will …

  • employ the principles of object-oriented design and its merits on software re-usability.
  • interpret encapsulation, state retention, inheritance, polymorphism, and generics in object-oriented design.
  • apply the concept of data types, classes, objects, attributes, operations, and messages.
  • demonstrate how to perform information hiding and sharing using access modifiers, overriding and static variables.
  • show how to implement constructors and operations, and define interfaces, abstract operations and classes for generalization / inheritance purposes.
  • demonstrate how to design and develop client / server programs, and concurrent applications.
  • operate software tools to do design, implement systems, and generate API documents.
  • practice the formal UML notations to draw class diagrams and the static relationships among classes.
  • employ GUI designs, printing control, graphics, and file I/O.
  • produce Exception classes for errors control at compile time and run time.
  • apply APIs and double buffering technique for graphical development and applications.

Course Requirements and Grading

1. Grading Policy

Required (Graded) Discussion Forums 5% Due by the end of each module, 11:59 pm Thursday (your own post); 11:59 pm Sunday (replies to others)
 Mid Term 1 14%  The end of Module 6–Check your course schedule
 Mid Term 2 15%  The end of Module 10–Check your course schedule
 Final Exam 18%  Dates to be announced
 Quiz 8%  Due by the end of each module, 11:59 pm Saturdays
 Labs / Assignments 30%  Due by 11:59 pm on Sunday
 Final Project 10%  Due by 11:59 pm of Module 15.

2. Grade Assignments

   A    >  92.5  A-    88.5 – 92.5  B+    84.5 – 88.5
 B    80.5 – 84.5  B-    76.5 – 80.5  C+    72.5 – 76.5
 C    68.5 – 72.5  D     64.5 – 68.5  F       < 64.5