CPSC 444 Artificial Intelligence Spring 2017

CPSC 444 Course Information

On this page:

Course Description

This course serves as an introduction to some of the major problems, techniques, and issues in the field of artificial intelligence. (AI is far too big a field to hope to cover everything in one semester!) Particular topics include reactive agents and simple decision making, planning, reasoning (briefly), problem-solving through search, and evolution and learning. We will also consider how to define and identify "intelligent behavior" and what the ramifications of intelligent computers might be. Emphasis will be placed on practical applications of the material and hands-on experience with the techniques.


CPSC 327 or CPSC 329 or permission of instructor. Comfort with programming in Java is essential - programming will be used as a tool to explore topics in AI.


There is no textbook to purchase. Reading material will be handed out in class and/or posted on the course webpage.

Programming Languages and Software

Most of the programming in this course will be done in Java or Processing, a Java-based language designed to promote software literacy within the visual arts. (Which means that it is very easy to create interactive graphics-rich programs - much easier than if you have to design a full UI using Swing.) Processing will be introduced in class.

For Java programming, the Eclipse development environment is recommended. (It is assumed that you are already familiar with Eclipse - if not, ask!) Processing programming will be done within the Processing environment. Both Eclipse and Processing are available on the computers in the Rosenberg 009 and Math/CS (Lansing 310) labs.

Other software will be made available on the lab machines as needed.

If you wish to set up your own computer, you will need several things:

  • Java. If you do not already have a Java development kit (JDK) installed on your computer (or have a version older than Java 8), you can download it here. Use the "JDK" link (not "Server JRE" or "JRE"), then look for the "Java SE Development Kit" link appropriate for your computer (Mac OS X, Windows, or Linux). This is Java 8, but that's OK - anything written for Java 7 will still work in Java 8.

  • Eclipse. Integrated development environments (IDEs) such as Eclipse make the development of larger programs easier. You can download the Eclipse Neon installer here - choose the appropriate version for your computer (Mac OS X, Windows, or Linux) and select "Eclipse IDE for Java Developers" when the installer prompts you for what you want to install.

  • A file transfer program such as Fugu (Mac) or WinSCP (Windows) so you can copy files between your Linux account and your computer. Follow the directions here to download, install, and use the appropriate program for your computer.

  • Processing can be downloaded from processing.org. It is available for Mac, Windows, and Linux.

Note: Eclipse projects store some environment-specific configuration information and Eclipse does some management of the workspace directory on its own, so your best bet is to copy the project folder somewhere other than into your workspace, create a new project within Eclipse on the current computer (if you don't already have one for this program), and then import the source files from the copied folder to the new project via Eclipse. It's a bit awkward but it does get the job done. Stop by if you need help.

Valid HTML 4.01!