ClassInfo

SE 350 Object-Oriented Software Development

Christopher Hield

Office: CDM M106
Fall 2014-2015
Class number: 10102
Section number: 701
Tu 5:45PM - 9:00PM
LEWIS 01217 Loop 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. The student's programming foundation will be enhanced by studying advanced concepts behind object orientation including role-based programming, advanced concepts of inheritance, interface development, design patterns, unit testing, and test-driven development. Using this foundation, the student will learn the real-world aspects of object orientation by putting the concepts into practice. Java and the UML will be used for source code examples, homework assignments, and exams. Among the topics of the course are:

    -Principles of object-orientation.
    -Principles of object-oriented design.
    -UML class diagrams.
    -Testing methodologies.
    -Design Patterns.
    -Advanced Java Techniques.



Texts

Course Textbook: - Object-Oriented Design and Patterns, 2nd Ed., by Cay S. Horstmann, Wiley, June 2005
 Online companion to the book: http://horstmann.com/design_and_patterns.html
- NOTE: Assigned readings will come from this text.


Recommended (optional) Books on Design Patterns:
- Head First Design Patterns, by Eric Freeman, Bert Bates, Kathy Sierra and Elisabeth Robson, O'Reilly, October 25, 2004).
 Online companion to the book: http://www.oreilly.com/catalog/hfdesignpat/
- Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway & James R. Trott, Addison-Wesley Professional, 2nd Edition (October 22, 2004).
 Online companion to the book: http://www.netobjectives.com/resources/books/design-patterns-explained/

Recommended (optional) Books emphasizing Java:
- Java How to Program (Early Objects), 10th Ed, by Harvey M. Deitel & Paul J. Deitel, Prentice Hall, March 2011.
 Online companion to the book: http://www.deitel.com/Books/Java/JavaHowtoProgram10eEarlyObjects/tabid/3656/Default.aspx


NOTE: I do not assign specific readings from the optional texts, but they can be useful in supporting your knowledge of Java and Design Patterns.


Grading

Course Grade Evaluation:
-Midterm 30%
-Program 35%
-Final 35%
-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.). THIS POLICY WILL BE STRICTLY ENFORCED. If you are not comfortable with this policy, please drop the class now.

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. No other factors will be considered. THIS POLICY WILL BE STRICTLY ENFORCED. If you are not comfortable with this policy, please drop the class now.



Prerequisites

You must have taken the following:

- CSC 301 or CSC 383 or equivalent courses on data structures using Java (linked lists, stacks and queues, trees, priority queues, hash tables). You should have written some code in this class. You should be comfortable implementing simple linked lists, stacks, queues, and trees. You should be comfortable using all of these concepts, plus priority queues and hash tables.

- NOTE: This is not an introductory Java course.



Grading Scale

A: 100 > 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


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 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 and provide documented evidence of the emergency.

NOTE: Student grades are based solely upon course performance. Requests for special grading treatment, requests for "extra credit", and requests for "more points to make the next grade" will not be considered. If you are not comfortable with this policy, please drop the class now.



Week 1 (9/16)
- Course Introduction
- OO Principles I
?? o Abstraction
?? o Separation
?? o Encapsulation
?? o Information Hiding
- OO Principles II
?? o Abstraction
?? o Inheritance
?? o Polymorphism
?? o Composition
- Basic Class Design
- Java Quick Review

- Exception Handling
- Collections
- Packages
- Inner Classes
- Java Naming Conventions
- NetBeans
?? o Overview
?? o Debugging

- OO Principles III
?? o Interface
?? o Interface Polymorphism
?? o Delegation
- Impl Objects & Delegation
- Design Pattern: Strategy
- Java Concurrency & Multithreading

- Design Pattern: Factory
- Design Pattern: Singleton
- Design Pattern: Facade
- Design Pattern: Data Transfer Object (DTO)
- Midterm Review
- Impl Objects & Delegation
- Design Pattern: Strategy
- Java Concurrency & Multithreading

- MIDTERM EXAM

Sorting
- Javadoc
- JUnit

- UML Class Diagrams
- Object Oriented Foundations
?? o Single Responsibility Principle
?? o Open-Closed Principle
?? o Liskov Substitution Principle
- Concurrency Classes
?? o CountDownLatch
?? o CyclicBarrier
- Design Pattern: Monostate
- Design Pattern: PowerType
- Version Control Systems

- Java Regular Expressions
- Design Pattern: Flyweight
- Design Pattern: Composite
- Design Pattern: Memento

- Deploying Java Applications
- Design Pattern: Observer
- Java Serialization

- Design Pattern: Decorator
- Java Reflection
- Final Exam Review

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