CPSC 444 Artificial Intelligence Spring 2019

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, 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.


Prerequisites

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.


Textbook

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 or JavaFX.) 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 compiler and runtime environment. 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 Java 8 here. Choose from the first section (Java SE Development Kit 8u201) and look for the link appropriate for your computer (Mac OS X, Windows, or Linux).

  • Eclipse. Integrated development environments (IDEs) such as Eclipse make the development of larger programs easier. You can download the Eclipse Oxygen installer here - look for "Eclipse IDE for Java Developers" and choose the appropriate version for your computer (Mac OS X, Windows, or Linux). Newer versions of Eclipse (Photon, 2018-09, 2018-12) may also work but will be different than what is available in the lab.

  • 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.

    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.

  • Processing can be downloaded from processing.org. It is available for Mac, Windows, and Linux. Version 3.1.1 is available in the lab. Either of the 3.4 or 3.5.1 versions should be OK, but there may be some differences.


Valid HTML 4.01!