Adele Howe
Office: 446 CS Building
Office Hours: By arrangement
Kushagra Tiwary
Office: CSB 368
Office Hours: Tuesday 3-4pm and Friday 12-1pm
Lecture Time and Place:
12:30-1:45, Tue, Thur, CSB Room 325

Artificial Intelligence techniques can solve problems that involve massive amounts of data, have complex constraints and require knowledge or judgment. The techniques have broad applications in our daily lives from Web search to optimization of transportation schedules. The suite of techniques is as broad as the applications. The course will cover representations and algorithms in several core subareas of artificial intelligence: search, evolutionary computation, planning, data mining, information retrieval, and agents. These subareas provide fundamental techniques for solving computationally difficult problems or support the development of important applications, such as identifying relevant patterns from large complex sources of data (e.g., associating products that are often purchased together) and supporting decision making (e.g., agents for intrusion detection). The trade-offs in representations and algorithms will be discussed and explored in a set of programming assignments.

Course Requirements

The class is structured around a lecture format. However, class discussions, questions and participation (in class or via online discussions) are strongly encouraged. It is the best way for the students to correct misconceptions and the instructor to figure out what isn't working and what is.


CS440 or equivalent. Knowledge of fundamentals of Artificial Intelligence, search and logic.

Recommended Texts:

Supplementary readings will be taken from three texts and possibly other papers:
  • Holger Hoos, Thomas Stutzle, "Stochastic Local Search: Foundations and Applications"
  • Franz Rothlauf, "Design of Modern Heuristics: Principles and Application";
  • Ian Witten, Eibe Frank, Mark Hall, "Data Mining: Practical Machine Learning Tools and Techniques"

IMPORTANT! Only portions of these texts will be assigned to supplement the lectures. I have arranged for the readings to be made available electronically through the CSU library's e-reserve service, which can be accessed via


The course requires demonstration of student's grasp of the concepts through assignments and a project. The best way to learn the concepts is to apply them. Grades will be determined by a combination of assignments that include a programming and written part and a project as follows:

Activity Weight
Participation (in class or via online discussions) 5%
Homework Assignments (~5) 75%
  • Proposal (2%)
  • Oral presentation (5%)
  • Written report (13%)

Semester grades are determined by the weighted sum of points earned in each of these areas. Participation grade is determined from RamCT discussion board activity and involvement in the class. Project requirements can be found via the "Assignments" link.

Grading will be based on the following scale: 90% or above = A, 80-89% = B, 70-79% = C, 60-69% = D, below 60% = F.

Late Policy:

Each assignment must be submitted via the checkin procedure by the given deadline for that assignment; late period for assignments will end 48 hours later and will incur a penalty of 8%. Assignments turned in after that time receive no credit.
If something radical happens in your life that makes it impossible to make the deadline (e.g., a family member is rushed to intensive care and you need to be there or better yet you win mega-millions and have to be holed up with lawyers for the next 4 days), contact the instructor ASAP. However, the assignments are expected to take some time, so the instructor will have little sympathy if you had not yet started it and you are within 48 hours of the deadline.

Class Participation

All students taking this course are expected to participate actively. For all students, includes asking and responding to questions. For distance students, the mechanism for asking and responding to questions is the discussion board on the RamCT site. How much you interact will factor into the Participation grade for the class.

Students registered in the on-line section will be able to watch video recordings of lectures. These will be available on the Progress page. Distance students are encouraged to watch the streamed video real-time. Once the URL is set up, we will set up a mechanism so that distance students can interact (asking questions or making points) if they are watching during the actual lecture time. Please contact the instructor if you wish to do so!

Office Hours:

Generally, I have found that graduate students prefer arranging times at our mutual convenience. However, for the DL students, I can set a time each week that I will be available through the chat facility on RamCT. In any case, if you want to talk outside that time, send an email to arrange a time.

Professional Conduct:

I encourage students to talk with each other about your assignments and questions, but make sure that what you turn in is your own! All assignments in this course are individual. Do not use code available from other sources for your assignments unless you obtain instructor permission to do so. Failure to obtain permission may result in concerns about violation of the academic integrity policy.

The project may have other rules: 1) it may be done in a team by instructor permission, 2) you may use other code if properly attributed.

You must be familiar with the department's policies regarding academic integrity and professional conduct.