CSCI 373: Artificial Intelligence
Assignments and Exams
The assigned programming exercises for this class will be done in Python (2.7). The Linux machines in TCL 312 are available for your use. (Because CS 134, 136, and 237 are so heavily enrolled this semester, I ask that you work on the Linux machines, rather than on the Macs.)
You may certainly work on your own personal computers, but please keep in mind that I'll be testing all of the programs on a machine that is set up like those in the lab. Therefore, be certain your programs run properly there before you turn them in.
I'll be grading your programs on correctness as well as on programming style. For at least two assignments, I'll ask that you meet with me for a code review/interactive grading session.
Computer science is a collaborative discipline, and knowing how to work effectively in a team is an essential skill. So I will require you to work with a partner on at least three regular assignments (i.e., not including the Python tutorial and final project). I suggest that you try working with a few different people over the course of the semester, so that you get to know others in the course, as well as their work styles.
A final but extremely important note on the programming assignments: The Pacman assignments have been developed by John DeNero and Dan Klein at UC Berkeley. In exchange for permission to use these assignments, I have promised that no one (not you, not I) will post the solutions to any part of them. These assignments are used by many instructors, so I'm sure you understand the authors' concern. Please do not share your solutions with anyone. Thanks for understanding.
|Assignment||Date Assigned||Due Date*||Code Review|
|Python Tutorial (Optional)||2/3||2/9||None|
|Search (recommended team project)||2/10||2/21||2/22-23|
|Games (recommended team project)||2/20||3/2||3/6|
|Reinforcement Learning (recommended team project)||3/3||3/14||3/15|
|Probability/Filtering (recommended team project)||4/3||4/11||4/12-13|
|Classifier Learning (recommended team project)||4/12||4/18||None|
|Data zip archive for Classifier Learning|
Keep the project in the back of your mind as you go through the semester. During the week of 4/10, talk to me about your ideas. By 4/18, you'll need to get official approval of your proposed project. Note that this is before the written proposal is due.
You will present your project and demo it for the class on 5/10, 11, 12. (Depending on the number of groups/projects, we may need to schedule an hour in the afternoon or evening.) The actual code will be due to me on 5/12. You will also write a final paper on your project. In the final paper you will need to carefully describe your project, discuss background literature related to the project, give an overview of the design, and evaluate your progress.
Milestones for the project are as follows:
|4/10-18:||Talk ideas over with me|
|4 PM Thu, 4/20:||Brief but thorough (2-3 page) proposal due|
|11 PM Thu, 4/27:||Checkpoint 1|
|11 PM Thu, 5/4:||Checkpoint 2|
|5/10, 11, 12:||Presentations and demos|
|4 PM, Fri, 5/12:||Final code due|
|4 PM, Thu, 5/18:||Final paper due|
You might also find it helpful to skim this excellent final project proposal from an earlier offering of AI. I organized the final project quite differently that semester. Students had to write a much longer proposal, which needed to include references to relevant research articles. Though your deliverables are different, Zina's paper will give you ideas for how you might organize the proposal as well as how you might approach the related work section of your final paper.
There will be one self-scheduled examination, which you may take on 3/8, 9, or 10.
You can find a sample exam here.
|5-10%||Short paper responses, written assignments, and class participation (including article discussions)|
|45-50%||Programming assignments (10% each)|
|25%||Final project code/demo/presentation|
|10%||Final project write-up|
All regular assignments are due at 11 PM on the given due dates unless indicated otherwise. Regular programming assignments may be submitted late without penalty if using late days as explained above. In all other cases, assignments will be accepted late, but with a penalty of 10% per day.
Much of your programming work will be collaborative. For more information on the guidelines governing the extent of collaboration allowed, please see the Honor Code Guidelines for Computer Science 373.