Syllabus for SSE 658
Design Problems and
Solutions
Spring Semester 2010
Early draft; changes are
certain.
revised
February 4, 2009 11:11 AM
Eastern Time
Instructor: Dr. Paul E. MacNeil
Office: Suite
223a, School of Engineering
Phone: 478-301-2185
478-301-2732
Email: macneil_pe@mercer.edu
Back to Top
Textbooks and Supplies:
Texts
(including web sites):
(Read the note after the list of texts
before you buy!)
Back to Top
Software
(including web sites):
- Note that this course is intended to be OS neutral.
- TBD - more information will be available later.
- An Internet ftp client of your choice. Core FTP LE is
free and works well http://www.coreftp.com/
. (Required, but your choice)
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++.
Please note that this course is conducted
*asynchronously* with regard to the face-to-face class meeting
schedule. That is, the course begins on January 12, 2010, for
*all* students.
Back to Top
Course
Objectives:
Breadth and Depth in Defining, Analyzing, and Solving Complex
Problems:
- After successfully completing this course, you should be able
to demonstrate a basic capability to apply design patterns
development techniques to solve complex problems.
Communicate Technical Aspects of the Solution for Complex
Software Engineering Problems to a Technical Audience:
- After successfully completing this course, you should be able
to demonstrate a basic ability to communicate regarding the
application of design pattern development techniques to a
technical audience.
Back to Top
Prerequisites:
SSE 556 Java Design I or permission of the program
director.
Back to Top
Class
Location:
Back to Top
Grading:
|
Item
|
Percent of Term Grade
|
| Project 1 |
20
|
| Project 2 |
40
|
| Project 3 |
30
|
| Listserv contributions |
10
|
More information about grading is contained in the General Project Rubric.
This course will also use an additional grading rubric.
Back to Top
Assignments:
- Purpose of projects:
- Use the projects to develop your capabilities, and
- Use the projects to demonstrate your capabilities.
- Deliverables for all projects:
- Your report should be a single, standalone document in .html
or .doc format.
- Your report should be organized in such a way as to make the
topics that you want credit for covering easy to find, and
demonstrate your capabilities clearly and convincingly.
Everything you want considered for credit, including code and
tests (including test results), should be included in the
report.
- Each project can be a single, integrated project that tries
to actually do something, or a collection of exercises that
demonstrate your capabilities but don't accomplish anything
else, or any combination of these two alternatives that you
find convenient.
- You may include other material outside of the report, if you
wish, but this material may or may not be considered in
evaluating your work.
- For each capability that you demonstrate within a report or
major section of that report, you may present only the final
result of your work; you need not demonstrate every step in
the development of that result.
- Some suggestions for doing a project are contained in
the One Way to Do a Project page.
- Project 1 (solo) Demonstrate use of Design Patterns in
design and code :
- Demonstrate the four design patterns covered the assigned readings in "Head First Design
Patterns".
- 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).
- 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).
- Explain in detail what is good about your Design Pattern
(DP)-based design, and what is problematic about your DP-based
design.
- Create implementations for your designs, and test them in
such a way that you clearly demonstrate the success of your
design.
- Document your work in a report in .htm, .html, or .doc
format.
- 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.
- 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?
- If you create new designs for an existing piece of code,
include this code in your report.
- 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.
- Manage the scope; don't try to do something too big or two
small.
- Project 2 (solo) Demonstrate use of Design Patterns in
design and code :
- Same a Project 1, except please cover design patterns that
you did not cover in Project 1.
- Project 3 (team) Demonstrate use of Design Patterns in
design and code :
- Form teams of two persons; teams of other than two persons
require my prior written approval.
- Same a Project 2, except please cover design patterns that
you did not cover in Projects 1 and/or 2.
- TBD
Back to Top
Additional
Information:
- Asynchronous Learning Nets (ALNs)
- Self Study: You study the texts and any other course study
material on your own.
- Collaborative Projects: After your self-study, you
collaborate (via the Internet [email, ftp]) with your
partner(s) to produce a team product. Your collaborative work
is substantial, asynchronous, and rapid.
- This course is a distance learning course with 100% optional
face-to-face class meetings Please read this Distance Learning web page
regarding distance learning in this course and this program.
Back to Top
What Do I Do?
- Subscribe to the course email listserv and be able to access
our FTP server; your professor
can tell you how to do this.
- Study the assigned material.
- Write and read email messages about ideas, problems and
solutions to do with the assigned study material.
- Do the assigned exercises.
- Write and read email messages (to/from the listserv) about
ideas, problems and solutions to do with the assigned homework.
- Review the exercises done by other people, as assigned by the
professor.
Back to Top
Changes to this Syllabus:
There will be changes to this syllabus, so check back
frequently, and don't forget to hit "Reload" or "Refresh".
Schedule of Events
and Assignments:
|
Start Date
|
End Date
|
Activity/Event
|
| January 08, 2008 |
April 25 , 2008 |
Course in Progress |
| January 08, 2008 |
February 06, 2008 |
Study Intro - Chapter 5 in the text.
Work on Project 1
|
| |
February 06, 2008 |
Project 1 due. Post to our FTP server. |
| February 07, 2008 |
March 26, 2008 |
Study Chapters 5 - 10 in the text.
Work on Project 2.
|
| |
March 26, 2008 |
Project 2 due. Post to our FTP site. |
| March 27, 2008 |
April 25, 2008 |
Study Chapter 11 - Appendix in the text.
Work on Project 3.
|
| |
April 25, 2008 |
Project 3 due. Post to our FTP site. |
| |
April 25 , 2008 |
Course ends. |
Notes:
tbd
Back to Top
Schedule of Macon
Face-to-face Class Meetings:
attendance is 100% optional.
|
Date
|
| January 9, 2008 |
| January 16, 2008 |
| January 23, 2008 |
| January 30, 2008 |
| February 6, 2008 |
| February 13, 2008 |
| February 20, 2008 |
| February 27, 2008 |
| No Class - Spring Break March 5, 2008 |
| March 12, 2008 |
| March 19, 2008 |
| March 26, 2008 |
| April 2, 2008 |
| April 9, 2008 |
| April 16, 2008 |
| April 23, 2008 |
All Macon face-to-face meetings are from 6:00 pm to 9:00 pm.
Back to Top
List of all courses.
Contact
Information
- My Name: Dr. Paul E. MacNeil (Atlanta, Macon and DL Section)
- My E-mail: macneil_pe@mercer.edu
.
- My Office Phone: 478 301-2185
- My FAX: 478 301-2732
- US Mail:
- Dr. Paul E. MacNeil
- School of Engineering
- Mercer University
- 1400 Coleman Ave.
- Macon, GA 31207
Back to Top
Important Additional Information:
Students requiring accommodations for a disability should inform
the instructor at the close of the first class meeting or as soon
as possible. If you are not registered with Disability
Services, the instructor will refer you to the Disability Support
Services office for consultation regarding documentation of your
disability and eligibility for accommodations under the
ADA/504. In order to receive accommodations, eligible
students must provide each instructor with a “Faculty
Accommodation Form” from Disability Services. Students must
return the completed and signed form to the Disability Services
Coordinator on the 3rd floor of the Connell Student Center.
Students with a documented disability who do not wish to use
academic accommodations are also strongly encouraged to register
with Disability Services and complete a Faculty Accommodation Form
each semester. For further information, please contact
Carole Burrowbridge, Disability Services Coordinator, at 301-2778
or visit the web site at http://www.mercer.edu/stu_support/swd.htm
Accreditation: Mercer University is accredited by SACS.
revised
February 4, 2009 11:11 AM
Eastern Time