Objective Textbook Workload Schedule Grading Teamwork Porformance

CSE 5322/4361 SOFTWARE DESIGN PATTERNS

Instructor: Dr. David Kung

Course Objective

5322. SOFTWARE DESIGN PATTERNS (3-0). Study and application of object-oriented software design patterns to software development in the object-oriented paradigm. Prerequisite: CSE 5324.

Textbook

E. Gamma, et al. ``Design Patterns: Elements of Reusable Object-Oriented Software,'' Addison-Wesley, 1995.

Reference Books and Articles

Craig Larman, ``Applying UML and Patterns,'' Prentice Hall, 2001.

Tentative Schedule

Workload

1 team project 50%. Requires the students to apply at least 10 patterns. The project weight includes 3 team member peer evaluation, 1% each submission, submitted at the end of each increment. Team member peer evaluation will affect your score, the deduction may range widely from 5% to 80%.

2 individual homework assignments, 15% each.

1 midterm exam 20%, may be waived for teams that perform excellent project work.

Grade Distribution

Total Score >= 85 >= 70 >= 60 >= 50 < 50
Grade A B C D F

The grades are computed by a program according to your scores. If you get 84.95 then you will get a ``B'', not an ``A'' even if the score is so close to 85.

General Grading Criteria

Individual Assignments:

1) Correctness -- the solution adequately solves the given problem
2) Soundness -- the solution is well justified
3) Efficiency -- the solution is among the simplest ones possible
4) Organization -- the presentation of the solution is easy to understand and logically organized
5) Clarity -- the solution is clearly stated
6) Grammar, spelling, and writing -- correct grammar and spelling, and legible writing

1) -- 2) are worth about 60% of the weight and 3) - 6) about 40%.

Team Project:

1) Requirements -- identification, formulation and presentation of the requirements, evaluated in terms of completeness, consistency, validity and understandability. 15 %

2) Design -- fulfillment of the requirements, software design considerations, user interface design and component interface design, evaluated in terms of completeness, consistency, validity, user-friendly, effectiveness and efficiency. 15 %

3) Implementation -- evaluated in terms of correctness, efficiency, and coding style. 15 %

4) Teamwork -- teamwork spirit, evaluated in terms of cooperativeness, enthusiasm and unity. 15 %

5) Documentation -- professionally produced reports and models, evaluated in terms of report organization, completeness of standard report items, art work, expression and spelling. 15 %

6) Oral presentation -- evaluated in terms of informativeness to the audience, well-organized and well-prepared vugraphs and dynamic oral communication skills. Make sure that your demo will work in the classroom rather than in the lab. 15 %

7) Oral presentation attendance -- timely attending all the presentations and actively participating in the discussions (such as asking questions, making remarks, etc.) are an important part of the course project. Each absence (without prior permission) will result in 10 % deduction for the part of the project work. You can request only one or two permissions for the whole semester.

Assignment Rules

Email Project Team Information

If the course has a team project, please email the following to the TA and the instructor by the deadline (the deadline is one day after the census date):

Team project (with 1 -- 3 priorities) and team leader and team member names, email addresses and phone numbers in the following format:

Team leader
member name, email, phone number

Team Member Evaluation Form

1% for each evaluation to be submitted.

Enclosed at the end of this syllabus is a team member evaluation form which must be submitted by every team member after each increment. The form is also available from the course ftp site.

Use this form to appraise those team members that you feel their contributions should be credited and provide the instructor information about team members who need improvement. I will keep this confidential.

Class Email Alias

I will broadcast, using an email alias, important messages, homework assignments, project descriptions etc. to students of the class. The messages will be delivered to your omega account. If you do not receive such messages, please contact me immediately so that I can add you to the list. It is your responsibility to contact me when your omega account has changed.

Your Standing and Class Statistics

After each assignment or test has been graded, I will distribute to each of you your scores and grade up to that assignment or test. You will also receive class performance statistics. Timely distribution of such information requires that the TA email me the scores in time. Please help me to remind the TA to email me such information.

ABET Stuff

The following ABET stuff is related to the CSE4361 section only and is required by the Undergraduate Studies Committee to inform the students what will be individually assessed and how. For this course, the outcomes will be assessed by the individual assignments/tests. Students must pass all the individual assignments and tests to pass this course. For materials relating to ethics and professional practice, see the next section.

The following highlighted program outcomes will be individually assessed in this course:

PO1. Achieve proficiency in several education areas through knowledge of fundamentals of mathematics, basic science, and computing systems and science.

PO2. Possess the skills to analyze complex computing systems, design solutions and engineer these solutions using computer software tools and technologies.

PO3. Be able to effectively communicate both orally and in writing.

PO4. Have the ability to practice software engineering in industry-like situations and appreciate the need for ethical and professional behavior.

The following highlighted ABET outcomes will be individually assessed in this course:

a) Ability to apply knowledge of mathematics, science and engineering

b) Ability to design and conduct experiments, analyze and interpret data

c) An ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability

d) Ability to function on multi-disciplinary teams

e) Ability to identify, formulate, and solve engineering problems

f) Understanding of professional and ethical responsibility

g) Ability to communicate effectively

h) Broad education necessary to understand the impact of engineering solutions in a global and societal context

i) Recognition of the need for, and the ability to engage in life-long learning

j) Knowledge of contemporary computer science and engineering issues

k) Ability to use techniques, skills, and modern engineering tools necessary for engineering practice

SE Code of Ethics and Professional Practice

ACM/IEEE Software Engineering Code of Ethics and Professional Practice

For the full version, see http://www.acm.org/serving/se/code.htm#full.

Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:

1. PUBLIC - Software engineers shall act consistently with the public interest.

2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.

3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.

5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.

7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.

8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

Request for Early Leave

Requests for permission to go home before the final exam date will never be granted except for medical reasons and with a proof from a doctor. Students who do not participate in the final exam will not receive the scores for the final exam except that the final exam is waived

Library Information

(817) 272-3000, ext. 4938; email lsmith@library.uta.edu
http://www.uta.edu/library/research/rt-cse.html for CSE research information.

Project Team Member Evaluation Form

Most team members perform well in a project team. However some members perform extremely well and some very poorly. It is constructive to encourage the outstanding members and inform those who need improvements. This form allows you to convey such information to your team members whenever you deem there is such a need.

Please give an integer rating of -2 (poor), -1 (below average), 0 (average), +1 (above average), or +2 (excellent) for some of the aspects of the members you want to convey your assessment. Your evaluation might be reproduced (to hide your identity) and presented to the relevant members. The identity of the evaluator will be kept absolutely confidential in all cases.

Member name     
Group meeting attendance     
Group discussion     
Individual assignment     
Technical contribution     
Organizational contribution     
Overall performance     

Comments: (use additional sheets if needed)

Name:


Date: