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 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 from a provided list or one that they are using that has not been taught in other classes. 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.
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.
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, there will be some of the content delivered through videos that are to be watched at home. Elements covered in these videos are needed for the project deliverables.
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 and Wednesday 9:30-10:45 Sitterson 011
Each team also meets wth the instructor for an additional instructional hour each week. Team meetings begin Tuesday, September 2
- 3:00 pm htmllint
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, 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. Comments and grades will be captured on Sakai. I will be creating an id for each team that you will be able to access; this will eliminate the need for me to replicate comments and information to each team member.
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.