This course is a broad introduction to the field of artificial intelligence (AI). Intelligent behavior encompasses a wide range of abilities, and as a result AI has grown into an enormous field with many different subareas. Since we cannot possibly cover all of these areas in a single semester, we will focus on a representative subset of topics from the most important paradigms of AI, including heuristic search, game playing, knowledge representation, machine learning, neural networks, genetic algorithms, and robotics. Philosophical issues surrounding AI and cognitive science will also be discussed.
We will be using the Python programming language, together with a software system called Pyro, which stands for Python Robotics. Pyro makes it easy to experiment with various types of robots and robot simulators while only having to learn one interface. It also includes support for a number of machine learning tools such as neural networks and genetic algorithms.
Prerequisite: Pomona CS 52 or HMC CS 60
Prof. Jim Marshall
Office: Andrew 261
Office Hours: 2:30-4:00 pm Mondays, Tuesdays, and Thursdays, and by appointment.
Phone/Voicemail: (909) 607-8650 (extension 78650 on campus)
All students enrolled in CS 151 should have a Linux account on the Pomona computer science network. If you don't already have one, simply fill out this on-line form.
|Artificial Intelligence Illuminated
by Ben Coppin
There is also a supplementary reading packet, available from Kathy Sheldon in Millikan 220. Price: $10 to cover copying costs.
On-time attendance is absolutely required. If you are unable to attend class due to illness, please contact me on the day of the missed class (or sooner). If you must miss class for any other reason, please let me know in advance.
Your final grade will be weighted roughly as follows:
We have two student mentors this semester. Here is their contact information:
You are strongly encouraged to come to my office hours or talk to Dan or Susanna whenever you are having difficulty with the material. If you are confused about something, don't stay that way! Staying confused will only make things worse later. Come see one of us as soon as possible so that we can clear up the problem. There is no point in banging your head against a wall for hours trying to figure out why your program won't work, when just a few minutes is usually all it takes to track down the problem together.
If you want to see me but can't make it to my office hours, I'll be more than happy to schedule an appointment. Ask me about it in class, send me some e-mail, or leave a message on my voice mail. You can also try to catch me outside of my regular office hours, though I can't always guarantee that I'll have time to meet with you right then.
The highest level of academic integrity is expected of every student. You are strongly encouraged to discuss ideas and approaches to solving problems, on a general level, with the mentors or your fellow classmates, but unless I tell you otherwise, the work you hand in must be exclusively your own. Effective learning is compromised when this is not the case.
Accordingly, you should never read or transcribe another student's code or solutions, exchange computer files, or share your code or solutions with anyone else in the class. Under no circumstances may you hand in work done by, or in collaboration with, someone else under your own name, with the exception that you may freely use any code that I explicitly provide to you.
When in doubt, credit the people or sources from whom you got help. This also goes for any help obtained via the Internet. You will not lose any points for acknowledging significant help obtained in a legitimate fashion (for example, from the mentors, or from books, Web sites or articles). If you are ever unsure about what constitutes acceptable collaboration, just ask.
Failure to abide by these rules is considered plagiarism, and will result in severe penalties, including possible failure in the course. Please do not put me, yourself, or anyone else in this unpleasant situation.