Syllabus for SSE 658
Design Problems and
Solutions
Spring Semester 2012
Nearly complete, but updates are
certain
Textbooks and Supplies:
Texts (including web
sites):
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 the course begins on January 10, 2012.
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 550 Object-Oriented Design I or permission of the program
director.
Back to Top
Class
Location:
- The Distance Learning asynchronous "meetings" take place in Cyberspace;
i.e., on the Internet via the course listserv.
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 .pdf, .html or
.doc/.docx 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 (not including Singleton) 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 as Project 1, except please cover design patterns that you did not
cover in Project 1.
For Project 2, the additional grading rubric is particularly important.
- 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.
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
- 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 10, 2012 |
April 30, 2012 |
Course in Progress |
| January 10, 2012 |
February 13, 2012 |
Study Intro - Chapter 5 in the text.
Work on Project 1
|
| |
February 13, 2012 |
Project 1 due. Post to our FTP server. |
| February 14, 2012 |
March 19, 2012 |
Study Chapters 5 - 10 in the text.
Work on Project 2.
|
| |
March 19, 2012 |
Project 2 due. Post to our FTP site. |
| March 20, 2012 |
April 30, 2012 |
Study Chapter 11 - Appendix in the text.
Work on Project 3.
|
| |
April 30, 2012 |
Project 3 due. Post to our FTP site. |
| |
April 30, 2012 |
Course ends. |
Notes:
tbd
Back to Top
Contact
Information
- My Name: Dr. Paul E. MacNeil
- 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.