Apply for Admission Mercer Software Engineering Mercer Engineering Mercer University
Home Distance Learning Courses Frequently Asked Questions

Schedule Contact Us

Syllabus for SSE 658

Design Problems and Solutions

Spring Semester 2014 (14S)

Early version, changes are possible.

 


Instructor: Dr. Paul E. MacNeil

Office:       Suite 223a, School of Engineering

Phone:       478-301-2185

Email:        macneil_pe@mercer.edu

Back to Top

 

Textbooks and Supplies:

Texts (including web sites):

 

Back to Top

Software (including web sites):

Back to Top

Other Useful Resources (including web sites):

Back to Top

Catalog Description (Course Purpose):

Advanced topics in object oriented design (OOD), emphasizing the reuse of successful designs via design patterns.

The text is written in Java. Your implementation language may be Java, C#, or (object-oriented) C++.

This Online Learning course begins on January 6, 2014.

Back to Top

Course Objectives:

Breadth and Depth in Defining, Analyzing, and Solving Complex Problems:

Communicate Technical Aspects of the Solution of Complex Software Engineering Problems to a Technical Audience:

Back to Top

Prerequisites:

SSE 550.

Back to Top

Class Location:

Back to Top

Grading:

Item
Percent of Term Grade
Direct Activity Report 1
10
Direct Activity Report 2
10
Direct Activity Report 3
10
Project 1
20
Project 2
20
Project 3
30

Credit will be given only for original work.

The Mercer University Student Handbook, including its provisions for academic honesty (including plagiarism), apply to all Mercer students.

Project reports are to be submitted complete, not as incremental partial submissions.

All course work is categorized as either Direct or Non-Direct (but not both). More information about the Direct and Non-Direct categories is contained in the Direct and Non-Direct and Report Logs. Please read these pages very carefully.

Instruction Time

Federal and regional accreditation requirements stipulate that a 3-credit hour course must include 150 minutes of direct instruction time per week. For this course, that direct instruction time includes"

In addition to the 150 minutes of direct instruction time each week, students are expected to spend a minimum of 300 additional minutes per week completing reading and writing assignments:

More information about the Direct and Non-Direct categories is contained in the Direct and Non-Direct and Report Logs. Please read these pages very carefully.

Use the Report Logs to help you to manage your time and keep on schedule. You should schedule your work evenly throughout the term. If you fall behind schedule for your Direct Activities, and you "catch up" by your last Direct Activity Report, your previous Direct Activity Report grades can be raised to reflect your success in meeting this requirement, provided that your previous Direct Activity Reports were submitted in a timely manner. Direct Activity Reports not submitted in a timely manner will receive a grade of 0 (zero) unless the professor has approved an extension in advance.

The Non-Direct Activity reports do not receive a separate grade, but are used to help in evaluating your project reports.

More information about project grading is contained in the General Project Rubric .

  • If you have a question about any of this, please ask.
  • Back to Top

    Assignments:

  • Project 1 - (solo or team)
    1. Demonstrate the four design patterns (not including Singleton) covered in the assigned readings in "Head First Design Patterns".
    2. If you include a pattern that is partially or wholly included in a programming language (such as Observer or Iterator in Java), then do and present your own implementation of that pattern (those patterns); don't just apply what someone else has already programmed (such as Java's event handling capabilities for Observer).
    3. For each design pattern, explain in detail what your alternative design would be, and what problem with that design the use of this pattern solves (if it does).
    4. Explain in detail what is good about your Design Pattern (DP)-based design, and what is problematic about your DP-based design.
    5. Create implementations for your designs, and test them in such a way that you clearly demonstrate the success of your design.
    6. Presume that you are writing your report to convince a hiring manager with whom you will otherwise have no contact that you are competent in the topics covered in this assignment. Assume that this manager is an experienced and intelligent software developer, but has not read our text. Presume that this manager is skeptical, and that your report will have to be clearly convincing in supporting your claim that you are competent (in the topics covered in this assignment). Clarity, completeness, and correctness count, as does your coverage of design patterns. You probably can't cover all of the DPs in the text, so make a judicious selection from among them.
    7. As a check on how well you are doing with regard to convincing that hypothetical manager of your competence, try to reverse roles in your own mind. Imagine that you are the manager, and your success/raise/continued employment depend on you hiring someone who does this job well. How well does the report convince you that the person who wrote it really can "do patterns" well?
    8. If you create new designs for an existing piece of code, include this code in your report.
    9. If you create new designs for an existing piece of code, you may use any piece of code that you wish, subject to conformance to any legal requirements (e.g., don't release anyone's proprietary code), and the dictates of morality, ethics, and good taste.
    10. Manage the scope; don't try to do something too big or too small.
  • Project 2 - (solo or team):
    1. Same as Project 1, except please cover design patterns that you did not cover in Project 1.
  • Project 3 - (solo or team):
    1. Same a Project 2, except please cover design patterns that you did not cover in Projects 1 and/or 2.