The goal of this course is to teach the skills necessary for building a software product as a team. The lecture portion of the class will cover the broader picture of software engineering that includes a wide range of software development projects in terms of size, complexity, and criticality.
This year there will be a written final exam. Because of the size of the class, we cannot do final presentations during the final period exam and the final presentations will be on the second reading day of exam period (Wednesday, December 13) from 3-7 pm. Pizza will be provided.
There will be individual assignments given to cover the key concepts of the course that are not well reinforced through the project and to expose you to the literature in the field. Specifically, there will be weekly readings with a question about the readings to be posted on Sakai. Responses will be at 5 pm on Sundays. The next assignment will be available at that time.
Each team will also present a technical talk during the semester. There are a lot of new things happening in the field of software engineering that you are not exposed to within the department's curriculum. Each team will present a technology that they are using that has not been taught in other classes. If there is no appropriate technology the team is using, the team and instructor will select an appropriate technology. Teams will give a 30-35 minute presentation to the class. Preparation for the presentation includes two required meetings with the instructor: a discussion about what is going to be covered two weeks before the presentation and a walkthrough at least 48 hours before the presentation. Topics will be selected significantly before the presentations in order to schedule an appropriate order.
The essence of the course, however, is the faculty-coached team project. Teams of 2-4 students spend the semester negotiating, estimating, scheduling, specifying, coding, debugging, integrating, documenting and testing a substantial programming product. Each project has a real client that is expecting a completed project. Each document will be submitted to the professor at each sprint and will be revised based on comments and to reflect changes in the product that is being produced. Documents will be reviewed and graded as part of the team meeting.
The project is being broken up into 7 "sprints": the first one focuses on requirements and a prototype. Additional ones require full documentation and working code: with a complete grade being given.
You will be required to demo for your client for three of the sprints. The definition of a client demo requires that it be run on their machinery (client and server) and that they are able to run the program -- not just you.
Project grades are based on code, documentation, ambition, effort, teamwork, and accomplishment.
Classes will not be taught on Friday. The Friday cleass is available for team or client meetings. This assures that every team does have a weekday daytime slot available.
At the end of the course, each student will have experienced all aspects of a software development project, including
- working with a client to define goals and priorities
- designing a system
- scheduling and planning a multi-person project
- effective communications
- running meetings
- writing technical documentation
- preparing web content
- writing and testing code
- deploying the system
- public presentations
Class Meetings: Monday, Wednesday, Friday 1:25-2:40 SN011
Each team also meets wth the instructor for an additional instructional hour each week. This time is based on the recitation session that you registered for. Meetings are in my office, FB 134.
Team meetings begin Wednesday, August 30
Since software engineering is about process and not just results, you will be graded on your performance as a team and individual as the semester progresses. At each team meeting, we will review what you intended to accomplish in the past week, have a demo of your current state, review where you are on your schedule, and your plan for the following week. At sprint conclusions, we will review documentation you will be graded. Individual feedback will be given by email following each sprint end. In order to help students improve during the semester, you will be doing peer evaluations prior to the end of every sprint.
In addition to the meeting with the instructor, you should plan on weekly meetings with your client and your team.
General Education Requirements
Satisfies the Communication Intensive Connection and the Experiential Education Requirement. This is also an APPLES course.
This is a 4-credit course.