In an important way, this course is about ethics. This does not mean that you will learn a list of do's and don't's. Instead, you will be learning to analyze products of the software development process with regard to quality. This involves careful deliberation and judgment. The deliberation is difficult at first, but with experience, it becomes automatic in part. In words, you develop good habits, both for thinking and for doing.
For this to work, you need two things. First, you need some theory: concepts for understanding the software development process, factors that affect its quality, principles that can guide your choices among alternatives, and common techniques for producing quality software. As is common today, the theory will focus on object-oriented methodology.
Second, you need practice: practice at thinking in terms of the values, concepts, and principles of software engineering, and practice applying them to actual software projects. To get practice applying the theory, you will work with Java Server Faces, a framework for developing web applications. Early in the term you will be working on individual programming assignments. Later you will be working on a team project. Your experience should enhance your understanding of software engineering values, principles, and concepts introduced in the term.
Your grade will be based on the total points you earn on exams and assignments. These points are broken down as follows:
The final grades will be based on the 500 point total. Generally:
These grade cutoffs will never be raised; but they may be lowered.
Project scores are based on your team's score for the project adjusted by an individual participation component. The participation component is based on attendance at mandatory team meetings (about 2 per week in the last third of the term) and team member evaluations.
|Midterm 1||Tuesday, October 6|
|Midterm 2||Tuesday, November 10|
|Final||Thursday, December 17, 8:00AM — 9:55AM|