The Course Project


810:162

Intelligent Systems


The Project

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.


Project Timeline

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 Thursday 1/24

  • Select a team (including a team leader) and a general project.
  • Complete the team information sheet as a starting point.
 
#2 - Initial Project Analysis

Due Tuesday 2/12

This is commonly referred to as the knowledge acquisition phase of the project.

  • Research your problem.
  • Come to understand the task in detail.
  • Understand the context in which the task is performed.
  • Conduct interviews with relevant parties, including your domain experts.
  • Begin to conceptualize the knowledge that underlies the task.

Prepare your formal deliverable

 

See these suggestions for how to approach knowledge acquisition.

#3 - Informal Project Proposal

Due Thursday 2/21

Look ahead at the requirements for the Formal Project Proposal.
  • Produce a draft analysis of the problem that begins to address the issues needed for the formals proposal.

Begin to think seriously about the project.  Although you won't start building quite yet, consider these team/project management suggestions.

#4 - Formal Project Proposal ("midterm deliverable")

Due Wednesday, 3/5 by 4:00 PM

Produce your Formal Project Proposal

This formal proposal should demonstrate that your team

  • has clearly thought about the problem,
  • thought about the proposed solution,
  • understands many of the issues that will be needed to arrive at the solution,
  • and possibly even has begun designing the data/architecture needed to produce a solution. 

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.

 

#5 - #7

Due :

Tuesday 4/1

Tuesday, 4/15

Tuesday, 4/29

For each of these three 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 three 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.
#8

Paperwork due Monday, 5/5

Finish up the project and prepare your final project.  To do this: