This document is available online at For the latest updates, visit the online version.

 CS 207: Software Engineering for Artificial Intelligence Tasks.


Instructor           : Jaime Davila
Office              : ASH 204
Office Hrs       : Tuesdays and Thursdays, 10:30 AM -12:00 PM
                              Monday and Wednesdays, 2:30-4 PM,                          
                              or by appointment.
Phone Number : 413-559-5687
email               : jdavila at hampshire dot edu (by far the best way to reach me)

This course will introduce students to advanced software development skills, with particular focus on implementing artificial intelligence systems. Therefore, students that complete this class will have developed skills in both software engineering for a broad class of problems, and knowledge of articifial intelligence approaches. Although we will look at many theoretical issues, class evaluations will be strongly based on hands-on work.

Students are expected to already have at least a semester of programming experience. Having taken a course on data structures, or some other advance prorgamming class, is highly desirable.

The pace of the course will be brisk. You should expect no less than 10 hours of work outside the classroom each week.

Towards the first part of the semester we will see an overview of different AI problem solving techniques. Once we reach around a third of the semester, we will divide into groups and start working with implementing solutions to actual problems which require the use of artificial intelligence methods. From this point on, groups will give frequent presentations about their work. In addition, students will then be exposed to the same AI techniques seen at the beginnig of the semester, this time in more depth.

Your evaluation for this course will be based on 1) class participation, 2) a series of software development documents to be due throughout the semester, and 3) a final project. All of these activities are important. Students should not expect to be able to pick up material at the end of the semester. It will be virtually impossible for those who do not keep up to date during the semester to catch up at the end or receive a good evaluation.

1) Artificial Intelligence: A Modern Approach, by Russell and Norvig. Published by Prentice Hall.
2) Software Engineering: A Practitioner's Approach, 5th edition, by Roger Pressman. Published by McGraw Hill.
Some online resources.

1) The class email list.

2) Online Evaluations.

Below is an outline of the topics we will discuss this semester. Students are also encouraged to research online on the topics we will be seeing in class.

Week Dates Topics Homework Reading
1 Jan. 31 Course outline.
What the course is and is not about.
What you should expect of the course.
Office hours, etc.
Introduction to the course.
2 Feb. 5, 7 Searching   AI:Chapter 3
3 Feb.12, 14 Knowledge Bases   AI:Chapters 7-9
4 Feb. 20, 22 Neural Networks   AI:Chapter 19
5 Feb. 26, 28 Genetic Algorithms    
6 Mar. 5, 7 Natural Language Processing   AI:Chapter 23
7 Mar. 12, 14 System Engineering Project selection due March 14. SE:Chapter 10
8 Mar. 26, 28 Architectural Design & Functional Specifications System diagram(s) due March 28. SE:Chapter 14
9 Apr. 2, 4 Functional Specifications, Software metrics, software testing Architectural/data flow diagrams due April 4. SE:Chapters 4, 17 & 18
10 Apr. 11 Questions & answers/help session First draft of functional specifications due April 11.  
11 Apr. 16, 18 Functional Specifications Software metrics estimates due April 18.  
12 Apr. 23, 25 Software Testing Final draft of functional specifications due April 25.
Testing procedures due April 25.
SE:Chapters 17 & 18
13 Apr. 30, May 2 Class Presentations Testing results due May 2.