The focal point of this course is the construction of an intelligent system to perform a non-trivial task. In many respects, development of such a system is the same as the development of any large software system, and so many of the phases and tasks of the project will seem familiar, at least in name. But there are special features to the construction of intelligent software, such as knowledge acquisition, task analysis, and so on, that guide the content of the course.
The project will be done as a part of a team of three or four class members. In completing the project, you will participate in all phases of software development: analysis, specification, design, coding, module integration, acceptance testing, and documentation. As a part of the design and coding phases, you will conduct team walkthroughs with the instructor.
The deadlines are fixed. They will not be adjusted during the semester except for significant events such as snow closing.
| Deliverable | Specifics | Suggestions and Resources |
| #1 - Team Info Sheet Due Wed, September 2nd |
|
|
| #2 - Paper suggestions Due Friday, September 11th |
|
|
| #3 - Initial Project Analysis Due Monday, September 14th |
This is commonly referred to as the knowledge acquisition phase of the project.
Prepare your formal deliverable
|
See these suggestions for how to approach knowledge acquisition. |
|
#4 - Formal Project Proposal Due Friday, September 25th |
Produce your
Formal Project Proposal This formal proposal should demonstrate that your team
This is the documentation that you will use as a guide during the production of your team's final project and loosely speaking, a contract between your team and the instructor regarding what you will build. Obviously, the final deliverable may differ from this original proposal (sometimes even very significantly) but all changes from this proposal should be able to be clearly defended come final presentation time. |
Begin to think seriously about the project. Although you won't start building quite yet, consider these team/project management suggestions. |
| #5 - #8, Sprints Due : several Fridays - 10/16, 10/30, 11/13, 12/4 |
For each of these four deliverables you should be completing a single iteration of your final project and producing a "sprint report" [sample report will be provided prior to the due date for deliverable #5] In other words, implement your solution in a series of iterations of growing and refactoring the system. Test your solution at each step. Document your system on an ongoing basis. Working as a team, you will want to be sure to integrate your code into the working program at frequent intervals. You will also want to conduct regular walkthroughs of your pseudo-code and code as a team. |
Maintain a team library of code, test results, and documentation. This will make management of the developing system and changes to it much more convenient. |
| #9 Final Project paperwork and code Due Friday, December 11th |
Finish up the project and prepare your final
code/deliverable. To do this:
|
|
| #10 Final evaluations Due Monday, December 14th |
Finish up the project and prepare your final
code/deliverable. To do this:
|