Textbook:
Course Summary: Students successfully completing the course will understand the fundamentals of software engineering, including requirements analysis, design, disciplined and coordinated implementation and evaluation. The course consists of three components: a team-based, semester-long software project, an oral presentation (a lecture) concerning a topic of software engineering, and homeworks concerning those presentation topics.
You must be registered for the online component of this course at canvas.emich.edu. This is the official mechanism for distributing information about the course, including changes to assignments (such as due dates). All students in the class are required to attend to Canvas.
Graduate Students: Students registered for the 500-level version of this class will be expected to complete more difficult projects, and their homeworks will be graded on a separate scale.
This is a student-oriented and -implemented course.
Students will work in a number of different groups. One of the groups (4-5 students each) will be for the entire semester and will design, implement, and analyse a major software project. The projects will be developed with and for clients either on or off campus. Each group will demonstrate their completed project at the end of the semester.
Students also will work within a different group (the membership of each students' two groups should be mutually exclusive) to develop and provide an oral presentation (a lecture) on one of the software engineering topics listed below. Each of these groups will also be responsible for writing and grading a homework assignment for their topic. (The groups will provide the grades to me so I can place them in the Canvas grading records.)
Each presentation team is responsible for
Date | Topics |
1/6 | Introduction |
1/11, 13 | What is Software Engineering, Ch. 1 |
MLK Day, 1/20 | Waterfall Development, |
1/25, 27 | Agile Development, Use Case Diagrams |
2/1,3 | Requirements |
2/8,10 | Software Repositories |
2/15, 17 | UML |
Winter Break | |
2/29, 3/2 | UML Tools |
3/7, 9 | Testing, JUnit Testing |
3/14, 16 | |
3/21, 23 | Refactoring |
3/28, 30 | |
4/4,6 | Software Patterns |
4/11, 13 | |
4/18 | |
FRIDAY 4/22 1:30-3:00 |
The final course grade will be a weighted average of the grades received in each of the following categories, as specified:
Tardiness Policy: Programming and other homework assignments will be due at the beginning of class. After that, assignments will be accepted through the start of the next scheduled class, but will suffer a full grade penalty. E.g., if a late programming assignment is worthy of an 'A', we will mark it a 'B'. Assignments more than one class late will not be accepted, and will receive a grade of 'F'.
Attendance Policy: We're all grown-ups, when and whether you attend class is up to you. However, missed assignments shall only be excused by a doctor's written note, verifying that the student was medically indisposed to attend class that day.
Grading of Programs: Grading of the semester-long project will be explained in class.