Syllabus
Department of Computer Science
Artificial Intelligence
“It’s going to be a lot of work, but we think it is going to be very rewarding” -Peter Norvig
This syllabus is a remix of the syllabus for the online AI course given by Peter Norvig and Sebastian Thrun.
Optional Textbook:
“Artificial Intelligence: A Modern Approach (3rd edition) by Stuart Russell and Peter Norvig. 2009. Prentice-Hall. (Amazon link)
Prerequisites
More Forthcoming
- basic skills in Python
- understanding of first order logic
- basic understanding of statistics
Purpose of this class (from Sebastian Thrun)
- to teach you the basics of artificial intelligence
- to excite you about the field
Objectives (from Sebastian Thrun)
- To develop an understanding of basic elements of AI such as
- knowledge representation and inference
- search
- machine learning
- planning
- game playing
- information retrieval
- computer vision
- robotics
- To gain experience in AI programming
Format of course
Teams
During the first day of class, all students will be assigned to permanent teams. Throughout the course, teams will both take team tests and participate in joint activities. Team performance will be one component of your final grade.
Evaluation
Grading is based on a method developed by Professor Lee Sheldon at Indiana University. It is based on obtaining experience points (XP). The number of XP determines what level you are at. You start the class at Level Zero and with 0 XP. The level you obtain at the end of the semester determines your final grade. Here is the chart:
If you are below Level Four when mid-semester reports are due, I will report your work as unsatisfactory.
RATs -Readiness Assessment Tests – 600XP
There will be approximately 10 short (5-6 question) multiple-choice readiness assessment tests given during the course. Each test will be taken individually, then, immediately after, the same test will be taken as a team. Each individual test is worth on average 30 points; each team quiz is also worth on average 30XP. Makeup tests will not be given.
Exam – 500 – 700XP
The course exam will be a comprehensive take home final. Often the fate of what grade you receive for a class, hinges on how well you perform on a final given at the last possible moment of the semester. Our exam will work differently. Starting around the midpoint of the semester, I will be posting questions and problems which are part of the exam for the course. You can elect to complete the work anytime between the time the problem is posted and our official final exam time. You will gain 10% more XP if you complete the work within a week of the problem being posted.
Programming Assignments – 800XP
The programming assignments are remixes of those from Stanford University and are challenging. They will be done with a partner and some of the work will be done during class. It is your responsibility to select someone with whom you work well. It is also your responsibility to resolve any team problems. You must follow the pair programming methodology. In particular, both people must work together at the same time to understand the problem, come up with a solution, code the solution, and test the code. This works best when two people share one computer periodically swapping the keyboard as they change roles. In addition to improving your code this will enable both people to understand all aspects of the project. Quizzes may have questions that require detailed knowledge of the projects.
Cooperation versus cheating
The lab you submit must be your team’s own work. There will be opportunity in class to discuss the projects in a general way with students in your group, but you may not examine any other team’s code. Sharing code on programming assignments is a form of academic dishonesty. Significant similarity of notation or form between submissions of different students or between a student’s work and solutions found on the web will be regarded as evidence of academic dishonesty. Also, you also should not google and find lab solutions for any similar course.
You should not look at the written work of another student (other than your team mate). This includes code and sketches of a solution drawn on paper or whiteboard. Having a discussion while one person is looking at written material is also not appropriate. When you are discussing the project with another student you should not be writing anything down, recording the conversation, or using a computer. Remembering what a person said without these aids is some indication that you actually understood the material.
As I mentioned, this is a programming intensive course, and I expect students to make a good-faith effort to complete the programming assignments.
Team Problem Sets -400 XP
Team problems sets are done in class. They are intended to give people an opportunity to apply what they head in lecture.
Team participation – 90XP
Each student will rate the helpfulness of all members of their group. Individual group participation scores will be the sum of the points they receive from other members of their team. Each team member distributes 100 points to other members of the team. The average team participation score will be 100 points. The rater must differentiate some of their ratings (they cannot assign the same rating to all members).
Announcements, discussions, and questions
I will communicate with the class via piazza and the course web page.
For questions about any aspect of the course including homeworks and labs, please use piazza rather than email. If you want you can tag questions as ‘private’.
You are responsible for checking your email and piazza every 24 hours and the web page at least weekly.
Accommodations for students with special needs
Any student with a documented disability may receive a special accommodation to complete any requirements of this course. If you are have a disability or believe you have one you may wish to self-identify. You may do so by providing documentation to the Office of Disability Services located in Room 203 of George Washington Hall (Phone: Voice 540-654-1266, Fax: 540-654-1163). Appropriate accommodations may then be provided for you. If you have a condition that may affect your ability to exit the premises in an emergency or that may cause an emergency during class, you are encouraged to discuss this in confidence with me and/or anyone at the Office of Disability Services. This office can also answer any questions you have about the Americans with Disabilities Act (ADA).
Academic Integrity
I assume you are an ethical student and a person with integrity. I expect that you will follow the university honor code (see http://rosemary.umw.edu/CSHonorCode.html). Please use common sense and ask yourself what would a person with integrity do? To help you, I would like to make three comments related to this:
Plagiarism
Plagiarism means presenting some other person’s work as your own. This can mean using some other person’s words without acknowledging their source, or using some other person’s ideas. Copying another student’s work (homework or exam) is also plagiarism. Plagiarism will minimally result in an automatic zero for that submission.
Collusion
Collusion is unauthorized collaboration that produces work which is then presented as work completed independently by the student. Collusion includes participating in group discussions that develop solutions which everyone copies. Penalties for plagiarism and collusion include receiving a failing grade for the course.
Classroom behavior
I ask that you respect the other people in the class. I recognize that your life circumstances may require you to receive cell phone calls during class. If this is the case please set your cell phone on vibrate and discretely leave the class to accept calls. During tests, if you walk out of the classroom, or consult/display your cell phone, I will assume you are done with the test and collect your grading sheet
Schedule
The class schedule is posted on the course website.
Important details
Here are some other important things you should know.
- Regarding XP. As in a computer game, there is no negotiation for what XP you need to attain a certain level. For example, level 14 (the level associated with an A-) requires 2000 XP. Last semester someone sent me email saying they had 1998 XP, they worked really really hard all semester and deserved an A-. I gave him the A- but starting now the boundaries are hard and there is no negotiating.
- Cheating. Every semester I have multiple cases of people cheating either through plagiarism or collusion (see above definitions). Minimally, I give a person a 0 for that submission. When I taught a New Mexico, I automatically flunked people for an instance of cheating. For example, last semester two people worked together on the final exam. When I sent email telling them they got a zero, one wrote back complaining that this would really affect their final grade. In this class, most of the work will be done in groups, but be very mindful of when you should be doing work on your own.
- Crowd sourcing and reducing my Cognitive Load. Here’s the deal. When communicating with me please error on the side of giving me too much information. Last semester, I received emails with sentences like “My partner was Austin” (when there were 3 Austins in the class) or “I worked with Matt”. It reduces my cognitive load if you specify what section you are in and give full names.