The Course Project

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

Each of the following deliverables is turned in once PER TEAM. 

These deadlines are unlikely to move as the semester goes on. However, if weather or illness causes an adjustment it will be reported here and on the main schedule on the class front page. If there is a discrepency in dates please let me know, but you should always defer to the dates on the main schedule rather than on this page.

Deliverable Specifics Suggestions and Resources
#2 - Team Info Sheet

Due January 25

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

Due February 6

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


#4 - Formal Project Proposal

Due February 15

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.

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 :  various dates. Keep an eye on the schedule.

For each of these four deliverables you should be completing a single iteration of your final project and produce a "sprint report"

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 May 3

Finish up the project and prepare your final code/deliverable.  To do this:  
#10  Final evaluations

Due May 6

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