ClassInfo

SE 450 Object-Oriented Software Development

Christopher Hield

Office: CDM M106
Fall 2011-2012
Class number: 15154
Section number: 711
-
Online Campus

Summary

The objective of this course is to teach the student the concepts and practice of object oriented software development. The purpose of studying object-oriented development is to acquaint students with the concepts and terminology required in the object-oriented community. A foundation will be built by studying the concepts behind object orientation. Using this foundation, the student will learn the real-world aspects of object orientation by putting the concepts into practice.
Among the topics of the course are:

  • Principles of object-orientation.
  • Principles of object-oriented design.
  • UML class, object and interaction diagrams.
  • Testing methodologies.
  • Design Patterns.
  • Advanced Java Techniques.
Java and the UML will be used for source code examples, homework assignments, and the exams.




Texts

Course Textbook:

Recommended Books on Design Patterns (Pick One):
  • Head First Design Patterns, by Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra, by Craig Larman, O'Reilly, October 25, 2004).
  • Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway & James R. Trott, Addison-Wesley Professional, 2nd Edition (October 22, 2004).

  • NOTE: I do not assign specific readings from these texts - they are needed to support your knowledge of Java and Design Patterns. I recommend "Head First Design Patterns" as an optional text because it's easy to follow and understand.


Recommended Books emphasizing Java (not required):




Grading

Course Grade Evaluation:

Midterm 30%
Project 40%
Final 30%
Total 100%


All assignments in this course must be completed in a timely manner. For full credit on a given assignment, it must be submitted on time. Late assignments will be accepted with a 10% penalty per class period past the deadline. (i.e., turned in from 1 minute to 1 week late = 10% penalty, 1 minute past 1 week to 2 weeks late = 20% penalty, 1 minute past 2 week to 3 weeks late = 30% penalty, etc.).

Be advised that a significant amount of project and exam assistance is given in class, and missing that assistance can severely compromise your ability to perform adequately in this course.
  • Course grades are solely based upon the student's academic performance. This means a student's grade is based only upon their performance on the Midterm Exam, Programming Project, and Final Exam.



Grading Scale

A : total >= 93
A-: 93 > total >= 90
B+: 90 > total >= 87
B : 87 > total >= 83
B-: 83 > total >= 80
C+: 80 > total >= 77
C : 77 > total >= 73
C-: 73 > total >= 70
D+: 70 > total >= 67
D : 67 > total >= 63
D-: 63 > total >= 60
F : 60 > total



Prerequisites

You must have taken the following:

  • CSC383 or CSC393 or equivalent courses on data structures (linked lists, stacks and queues, trees, priority queues, hash tables). You should have written some code in this class. You should be happy implementing simple linked lists, stacks, queues, and trees. You should be happy using all of the above, plus priority queues and hash tables.
  • CSC 224 (or 211 and 212) or equivalent experience programming in Java.

  • NOTE: This is not an introductory Java course.



Course Performance Requirements

A programming project and two examinations comprise the general requirements of the course. Assigned reading is essential to understand and appreciate the foundations and philosophy of object-oriented design. The programming assignments are designed so the student can master the true object-oriented programming concepts, as well as insure that the student leaves the course with a working knowledge of object-oriented concepts.

This course will be conducted using Java and some of its many APIs. I expect you to be able to work your way through the APIs without guidance from me. The course requires that you actively engage the material on your own. You should not only read the example code given in class, but modify and run it.

The dates/deadlines assigned to the various assignments and exams in this course are firm, and will not be changed. There are too many students in the in-class & online sections of this course to tailor the schedule to each student's desires. If this will be a problem for you, you should not take this class.
There will be no make-up exams nor extra credit assignments - please don't ask. If there is an extreme emergency and you must miss an exam, you must notify me in advance and provide documented evidence of the emergency.



Instructor

The official office hours for this class are approximately 4:30 - 5:45 p.m. before class and 9-10:00 pm after class.



NOTE: The schedule of topics and topic appearance is subject to change based upon class performance and instructor discretion.



- Course Introduction & Discussion
- OO Principles 1

    Abstraction
    Separation
    Encapsulation
    Information Hiding
- Software Tools
    -NetBeans
    -Java (Comes as a part of the NetBeans installation)
    -Ant (Comes as a part of the NetBeans installation)
    -JUnit Comes as a part of the NetBeans installation)

-Download Software:
    - Windows & Linux Users: You can download both the latest version of Java and NetBeans At This Link (Or go to java.sun.com -> Java SE -> NetBeans (JDK & NetBeans Bundle) -> Download)
    - Mac Users: Mac's come with Java pre-installed. You can download both the latest version of NetBeans from: http://netbeans.org/downloads/index.html (Be sure to select the "Mac" platform in the upper right)

-Textbook Reading: Chapter 1 (1.1 - 1.7, 1.9) Ignore the "BlueJ" part, we will not be using it
-Textbook Reading: Chapter 2 (2.1 - 2.5, 2.8 & 2.11)

- Exception Handling
- Debugging
- OO Principles 2
    Inheritance
    Polymorphism
    Composition
- OO Principles 3
    Interface
    Interface Polymorphism
    Delegation
-Textbook Reading: Chapter 1 (1.8 & 1.11 - 1.14)
-Textbook Reading: Chapter 3 (3.1 - 3.6)
- Interfaces & Implementation Objects
- Design Pattern: Singleton
- Design Pattern: Monostate
-Textbook Reading: Chapter 4 (4.1 - 4.5)
- JUnit
- Design Pattern: Facade
- Design Pattern: Data Transfer Object
- Design Pattern: Strategy
- Design Pattern: Null Object
-Textbook Reading: Chapter 7 (7.1 - 7.7)
- Midterm

- Reflection & the Strategy Pattern
- Design Pattern: Factory
- Design Pattern: Power Type
- OO Foundations 1
    Single Responsibility Principle
    Open-Closed Principle
    Liskov Substitution Principle
    Dependency Inversion Principle
    Interface Segregation Principle
-Textbook Reading: Chapter 10 (10.3)
- UML
    Class Diagrams
    Sequence Diagrams

-Textbook Reading: Chapter 10 (10.1, 10.4, 10.6)
- Design Pattern: Observer
- Other Design Patterns
- Concurrency in Java
- More on Creating/Copying Objects

-Textbook Reading: Chapter 9 (9.1 - 9.2)
- Distributed Computing
    RMI
    Sockets
- Persistence
    JDBC
    Serialization
- Refactoring
- Patterns for Performance
- Contemporary OO Topics
- Final Exam Review


NOTE: The schedule of topics and topic appearance is subject to change based upon class performance and instructor discretion.

School policies:

Changes to Syllabus

This syllabus is subject to change as necessary during the quarter. If a change occurs, it will be thoroughly addressed during class, posted under Announcements in D2L and sent via email.

Online Course Evaluations

Evaluations are a way for students to provide valuable feedback regarding their instructor and the course. Detailed feedback will enable the instructor to continuously tailor teaching methods and course content to meet the learning goals of the course and the academic needs of the students. They are a requirement of the course and are key to continue to provide you with the highest quality of teaching. The evaluations are anonymous; the instructor and administration do not track who entered what responses. A program is used to check if the student completed the evaluations, but the evaluation is completely separate from the student’s identity. Since 100% participation is our goal, students are sent periodic reminders over three weeks. Students do not receive reminders once they complete the evaluation. Students complete the evaluation online in CampusConnect.

Academic Integrity and Plagiarism

This course will be subject to the university's academic integrity policy. More information can be found at http://academicintegrity.depaul.edu/ If you have any questions be sure to consult with your professor.

All students are expected to abide by the University's Academic Integrity Policy which prohibits cheating and other misconduct in student coursework. Publicly sharing or posting online any prior or current materials from this course (including exam questions or answers), is considered to be providing unauthorized assistance prohibited by the policy. Both students who share/post and students who access or use such materials are considered to be cheating under the Policy and will be subject to sanctions for violations of Academic Integrity.

Academic Policies

All students are required to manage their class schedules each term in accordance with the deadlines for enrolling and withdrawing as indicated in the University Academic Calendar. Information on enrollment, withdrawal, grading and incompletes can be found at http://www.cdm.depaul.edu/Current%20Students/Pages/PoliciesandProcedures.aspx.

Students with Disabilities

Students who feel they may need an accommodation based on the impact of a disability should contact the instructor privately to discuss their specific needs. All discussions will remain confidential.
To ensure that you receive the most appropriate accommodation based on your needs, contact the instructor as early as possible in the quarter (preferably within the first week of class), and make sure that you have contacted the Center for Students with Disabilities (CSD) at:
Lewis Center 1420, 25 East Jackson Blvd.
Phone number: (312)362-8002
Fax: (312)362-6544
TTY: (773)325.7296