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.
There will be no written exams; there will be two (or three) essays 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. Essay prompts will be posted 10 days prior to due date and will be due at 5 pm on a Sunday.
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 the team is not using an appropriate technoogy, we will select one based on team interest. Teams will give a 25-30 minute presentation to the class. Teams will review the outline of their presentations with me at their team meetings two weeks prior to the presentation and do a walkthrough with me at their team meeting the week prior to the presentation. THESE ARE MANDATORY.
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 in draft form and will be revised based on comments. All document deliverables are due either on a Sunday at 5 pm or on a Thursday at midnight. In addition, documentation needs to be maintained to reflect changes in the product that is being produced. Documents will be reviewed as part of the team meeting.
You will be required to demo for your client the same week that you do your class demos. 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.
The final exam is a presentation of the end product.
Because there is a lot of material to cover quickly at the beginning of the semester, the class schedule will begin with 3 classes a week. By the end of the semester, we will only have 1 class per week.
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 FB 007
Each team also meets wth the instructor for an additional instructional hour each week. Meetings are in my office, FB 146.
Team meetings begin Monday, August 31
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 any documents that have been completed in the last week, have a demo of your current state, review where you are on your schedule, and you will be earning points as individuals and a team toward your process grade. We will fill in a form with grades and comments as a team each week.
In addition to the meeting with the instructor, you should plan on weekly meetings with your client and your team.
If you are developing a native app for the iPad, you will need to get a provisioning profile in order to test it on the iPad. You will need to go to the iOS Dev Center. Summary of instructions are at iOS_Instructions.pdf.
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.