Developing software systems involves much more than coding. The objective of this course is to look at software development from a human and organizational perspective. We will thus look at the software development process, which seeks to bridge the gap between software clients and users, who typically have little computational knowledge, and system developers, who often begin a project with little knowledge of the domain content and organizational context in which their software will ultimately be used. We will also explore issues of professionalism and ethical behavior for software engineers. The principles discussed in this course will find practical expression in a term-length, group software project.
Specific topics include: models of the software lifecycle, requirements elicitation, system analysis and design, object and system modeling, validation and verification, software quality, and professional codes of ethics.
Successful completion of TCSS 350 Managing Technical Teams and TCSS 343 Mathematical Principles of Computing II, are both required for entry into this course. These requirements will be rigorously enforced, and any students enrolled in this course without this prerequisite will be dropped unless he or she has received prior permission for a prerequisite waiver through the CSS program office.
If you would like to request academic accommodations due to a permanent or temporary physical, sensory, psychological/emotional or learning disability, please contact Lisa Tice, Coordinator for Disability Support Services (DSS). An appointment can be made through the front desk of Student Affairs (692-4400), by phoning Lisa directly at 692-4493 (voice), 692-4413 (TTY), or by e-mail (ltice@u.washington.edu). Appropriate accommodations are arranged after you've presented the required documentation of your disability to DSS, and you've conferred with the DSS Coordinator.
This course involves the specification, design, coding, testing, and documentation of a significant software project within a group. As indicated below, most of the course credit is assigned to the different aspects of this group project. Each group will meet outside of class on average between 2 to 4 hours weekly. The following are a minimal set of commitments that each student is expected to uphold:
If you believe that you are unable to meet these commitments due to external constraints, then please discuss this with the instructor immediately. This may result in your reducing some of your external commitments or deferring attendance in this course for a term in which you have fewer such constraints.
The coursework involves a project, weekly group reports, and 3 quizes. The course grade is calculated as follows.
| Description | Final Grade % |
|---|---|
| Project | 50% |
| Participation | 20% |
| Quizes | 20% |
| Weekly Reports | 10% |
Quizes will be given on the dates specified in the master course schedule. Each quiz will consist of one or more short problems, and will last 30" unless otherwise specified. Quizes are closed book unless otherwise specified. Quiz makeups will only be given by pre-arrangement or if there is an emergency, but only if I am contacted within 24 hours of the emergency. Each quiz will cover material from the classes and assigned readings since the previous quiz.
Each assignment will receive an integer score between 0 and 4, inclusive. Your final grade will be calculated by taking the weighted sum of grades on all work that you have handed in, and rounding to the closest 1/10th. That is, multiply each score that you receive by the weight of the assignment, add these together, then round to the nearest 0.1. The correspondence between numeric grades and letter grades (i.e., A, B, C, etc.) can be found in the UW University Handbook, v.4, Ch.11.
Here is a description of roughly what each numeric score means:
Due dates for each handin are indicated in the master course schedule. Each handin is to be handed in no later than the start of class on the specified due date. Unless indicated otherwise in the individual coursework descriptions, late handins will not be accepted. With due cause, exceptions to this policy will need to be negotiated with the instructor; emergency documentation may be required and/or late penalties may be accrued, depending upon the circumstances.
It is often necessary or desirable to reuse the code, ideas, algorithms, writings, or other creative work that others have written. I have developed a plagiarism guideline that defines plagiarism, how to properly cite the work of others in your own work, and specifically how this applies to the legitimate use of source code written by others. I have also written a collaboration guideline on what constitutes legitimate and illegitimate collaboration. It is expected that all students will read and follow these guidelines; violations of these policies may have severe consequences, as detailed in the UW Student Conduct Code
Shortly after the start of the semester, I will establish a course mailing list for course-related discussion, to which everyone in the class will be a member. Information on the email list policy, and how to post to this list, are detailed in the Email section of the course homepage.