CS313 ARTIFICIAL INTELLIGENCE LABORATORY Professor Loui loui--aat--cs.wustl.edu TA's: Rahul Maddimsetty, rpm3--aat--cec.wustl.edu TA hours: Sun 7-9pm, Sever 201 Official Lab hours: Fri 1-5pm, CEC Linux Lab Location: Cupples II-200 Time: W 5:30-7:30 lecture, W 7:30-8:30 help session/lab Required Texts: none Course Description: see catalog 3.0 credits Prerequisites: programming skill beyond CS102 in any language on any operating system Course in Brief I pose problems. Students program solutions. We discuss approaches. Students come to understand AI by doing it rather than being told about it. Compared to CS511: CS511 is a graduate course which aims at mastery of concepts in a book. Compared to CS517: CS517 (machine learning) is about well-understood algorithms for specific kinds of AI problems. Compared to CS513: CS513 is more like a group Master's Project in AI, and is intended to apply AI rather than illustrate it. Compared to CS101/102: instead of focusing on programming concepts and style, exercised through several problems, this course focuses on programming solutions to various problems. Usual Benefits to the Student Students are forced to use UNIX as a tool and a high standard of capability is demanded early. They are exposed to a powerful program editor and a powerful scripting language and encouraged to use them. Students exit with an understanding of AI's scope. They are able to compare machine learning, optimization, and AI. They can understand where search, scoring, compositional syntax, and combinatorial explosion can happen in their designs and make tradeoffs where needed. They understand how to incorporate knowledge into a solution and how to transform it so that it can be usefully represented. Students see AI problems, and non-AI problems, in the processing of images, language, game-playing, and human interaction. Usual Student Response The best programmers tend to love this course. Or perhaps that is how I have come to define the best programmers. Students who expect to be taught about AI explicitly are often disappointed and should have enrolled in CS511. Students who do not take quickly to UNIX, scripting, or bottom-up design are often frustrated by this course. You must be willing to program differently from "the right way" which was taught in CS101/102. This is exploratory programming, not the production of industrial code to specification. Mechanics You come to class. I organize and demonstrate. We adjourn to the lab, where I can help people in small groups and often 1-on-1. Not everyone is required to attend the lab, but ironically, those who need help the most are usually the ones who do not attend. Since almost all of the work done in this class is done in teams, it is useful to be in the lab with your teammates even if you do not need help. There is a strong correlation between A's in CS313 and lab attendance, but it is not my intention that there be such a correlation. We have four to six programming assignments. Usually four big projects and two minor checkpoints. Your grade depends on my assessment of your performance in those projects (the checkpoints are of secondary importance). Where there is a team, I am free to draw my own conclusions about how to assign credit within the team, and you are welcome to help me understand how to draw those conclusions. Your grade depends on the performance of your software and the merit of your approach. I am not interested in documentation or programming style in this class. You may use any programming language that you can support (I will not be supporting languages for you) on the UNIX machines you are required to work with. Each student shall keep a blog which is the actual graded work in this class. Source, scripts, screen grabs, and remarks should be made in the blog, which is graded occasionally by the professor. Teams may post redundant copies of work. Students will achieve the highest grade for the briefest mot informative blogging. Tentative List of Projects a. two-part regular expression exercise b. text-mining/web spidering exercise 1. Negotiating Agent 2. Classifying Documents 3. Face Finding 4. Playing Soccer Class Meeting 9/1 This document, above. Getting some horrid questions out of the way: What is AI? Does AI work? Can computers be intelligent? Understand? Does AI intend to harm us? When will AI be finished? First UNIX session Class Meeting 9/8 More UNIX, cheatsheet (Second session, regular expressions) Impromptu gawk language examples printing, looping, conditionals, functions associative arrays, iterators a closer look at identifiers and types getline from files, from pipes, from stdin automatic parsing of input two ways to run gawk printing to a pipe some built-in functions for regexps: ~, split, index, match larger structs as strings with delimiters, multi-d arrays practice with regular expressions Class Meeting 9/15 Preview of Lab 1 Friday help session comments TA hours Project 1 gawk: associative array iteration, split/gsub/match, $ assign, closing pipes, appending to vs. rewriting files, strings for structs, command pipes. Forcing numerics -- beware gawk's coercion is "smart". Class Meeting 9/22 Volunteers to see their code in action My example of neg Programming solutions to Lab 1 Fixing spell checker Live building of simulator that calls the neg programs Preview of Lab 2 Q & A on UNIX tools Lab 2 with TA (instructor in CS100 lab) Class Meeting 9/29 my draft for itest Volunteers to see their code in action PROGRESS 2 spec revisions my ppagents porting sim to k9 watch.cgi technical discussion: utility, decisionmaking under risk and uncertainty probability, direct inference from data, entropy, conditional independence, dempster-shafer, fuzzy, kyburg no prescribed lab MAJOR PRESENTATION NEXT WEEK Class Meeting 10/6 SHOWING WORK IN CLASS technical discussion: what can we expect from an AI theory of negotiation? natural language, search, learning, social norms Class Meeting 10/13 projector didn't work / pda didn't have network or external display reminder to send project1 blogs to rahul brief remarks on soc.cgi simulator challenge: is stochastic simulated annealing better than normal simulated annealing? Class Meeting 10/20 does the projector/computer work? vi tutorial baseball example old soccer new soccer project2 ideas? Class Meeting 10/27 vi exercise tied into baseball lineups showing off soccer projects what is a rule-based system? Class Meeting 11/3 showing off baseball preliminary results neural net question showing off soccer projects images vi exercise tied to images, baseball Class Meeting 11/10 soccer tournament won by hamer-scally Class Meeting 11/17 formal assignment of face-finding problem reminder of c programs that process images edge detector (didn't cast unsigned char to char...) NO Class 11/24 Class Meeting 12/1 thank the atheists/didn't go to dc meeting progress on face-finding neural net back prop training review of class projects AI NEGOTIATIOR decision theory? game theory? what are the important behaviors? what is the criterion for correctness? SOCCER PLAYER your choice of behaviors rule based architecture? FACE FINDER edges, segments, aspect ratios, features constraints and scoring hierarchical processing, abstraction OTHER HEURISTIC OPTIMIZATION applied to BASEBALL LINEUPS: gradient ascent simulated annealing hybrid simulated annealing MACHINE LEARNING EXAMPLE applied to ???: neural networks in-stream neural networks What is an AI problem? Does it involve a human task? Is an AI problem an algorithms problem? Is an AI problem a database problem? Is an AI problem a programming paradigms problem? Is AI = machine learning? Are AI problems solvable? Are there interesting unsolved AI problems? Can behavior emerge from simple programming? How good does the solution have to be? Class Meeting 12/8 My intellectual history of AI Your face finding programs