General Info
   Non-functional Requirements

CPSC 433: Artificial Intelligence - Assignment

In general, there will be one big assignment, namely developing and implementing (and documenting) a search system for a given application (which this semester will be finding an optimal assignment of courses and labs to time slots in the week for our Department, given a lot of constraints). This will be a team project, with teams of around 5 people. As will become obvious during the course, for each application there are different search paradigms that can be used to develop a search system solving instances of the problem. Also, each paradigm leaves a lot of room for instantiations, based on the knowledge you have about the particular application.

The assignment is also intended to make you aware of different paradigms and the possibilities regarding their instantiations. Therefore I do not only expect you to produce (and demonstrate) the search system at the end of the semester, each team will also produce a paper that presents two search paradigms that can be used to solve the application problem and the instantiation of each paradigm that you want to use for your system. I will then select one of the two solutions and you will implement the selected one in your system.

More precisely, I expect you to present in the paper two different search models (using different data structures as states and providing the necessary information how to instantiate these data structures), describe them precisely (i.e. in a mathematical manner similar to what I use in the lectures, concentrating on the necessary information for the instantiation), and present at least one sensible search control for each model to complete the definition of the search processes your search system might employ. I also expect that you demonstrate what your search processes will do by applying them to a small search instance chosen by you. In addition to formal definitions, I also expect a natural language explanation of the models, controls and processes and the reasons why you have chosen the particular models.

Both, paper and final system will be graded. Information about how these grades will be weighted can be found on the assessment page.

It is a good idea to crosscheck with me your models, controls and so on, before you submit the paper. In fact, I would like to have a meeting with each team before the team submits the paper!

Non-functional Requirements

While I personally would like to give you as much freedom as possible, earlier years have proven that too much freedom results in a lot of difficulties for me, when I want to install the systems for myself. Therefore I decided to be rather precise regarding hardware, environment and paper submission. You can use whatever additional tools you want and you can develop on whatever machine you like, as long as the final system

  • is written in Java,
  • runs on one of our Linux machines in the undergrad lab,
  • as a standalone application.
Your paper, again, can be produced by any text processor you want to use, but I expect that you send me a pdf-file that is printable everywhere (and especially using acroread on our servers and any ps-printer in the Department). Note that using Word can result in difficulties around formulas!

Time table

There are three relevant deadlines for your work.

Deadline To do
Oct. 19, noon Submission of your paper describing the two search models and processes to
Dec. 2 - Dec. 6 Presentation of your search system to me. Details on how to make the appointment for the demo will be given in class and in the news section of the main course web page.
Dec. 7, noon Submission of the source code of your search system and its documentation, together with your solutions for the 2 Department instances (schedule plus eval-value), again to

to the timetable for the course.

Last Change: 19/6/2018