CSCI 446
Artificial Intelligence
Fall 2014

Montana Tech
Computer Science & Software Engineering



ASSIGNMENTS

This page lists the programming assignments for the course. When an assignment is released, the assignment column will link to a detailed description of the assignment.

#DueAssignmentCollaboration
0 Thr 9/4 11:59pProject 0: Unix/Python tutorialindividual
1 Wed 9/10 9:00aHomework 1: Searchindividual
2 Thr 9/18 11:59pProject 1: Search in Pacmanpair
3 Mon 9/22 9:00aHomework 2: CSPsindividual
4 Mon 9/29 9:00aHomework 3: Gamesindividual
5 Thr 10/2 11:59pProject 2: Multi-agent Pacmanpair
6 Mon 10/13 9:00aHomework 4: MDPsindividual
7 Fri 10/17 9:00aHomework 5: Reinforcement Learningindividual
8 Mon 10/20 11:59pProject 3: Reinforcement Learningpair
9 Mon 11/10 9:00aHomework 6: Basic Probability and basic HMMsindividual
10Mon 11/24 11:59pProject 4: Ghostbusterspair
11 Fri 12/5 9:00aHomework 7 (question 1 and 3), Homework 8 (all)individual

Submission. All assignments need to be submitted via Moodle. In the event of a Moodle failure, email your submission to me before the deadline. You should upload all the source files required by the assignment. You should also include any other files required to run your solution. The top of every source file should include your name, username, and a description of what the file does.

Deadline and late policy. All assignments are due at the stated date and time. Assignments arriving even one minute late are considered late. You get a total of four free late days. Each late day buys you a 24-hour extension to a submission deadline. If you are out of free late days, any further late submissions will be given a zero. On designated pair assignments, the pair only has as many late days as the student with the fewest remaining late days. Late days do NOT apply to presentations, papers, or exams.

Project grading. Your code will be graded on correctness (including autograder results), programming style (including comments), and efficiency. Partial credit is possible so if you run out of time, submit what you have. If you want to do well, start well in advance of the deadline. This allows time to seek help if you run into trouble. Software bugs can be difficult to find and are often easily found after a good night's sleep.

Homework grading. To access the electronic homework assignments for this course, you will need to follow these steps:
  1. Register for an account on edge.edx.org, if you do not have an existing account on edX edge. Please note that this site is separate from the standard edX site, and hence an account on edX will not work for edX edge and vice versa.

  2. Register for the course at: https://edge.edx.org/courses/BerkeleyX/CS188x-8/Artificial_Intelligence/about
You will receive a homework grade according to the points completed on the homework by the stated due date and time (typically/always the start of a lab day). I will check off students in random order by checking your progress on the given homework on edX edge. Since you can repeatidly attempt each question, there is no reason you shouldn't get all the homework points. But you should seek to understand why the answer is what it is as similar questions are likely to appear on exams! You are free to ask for help from me or other students in the course, but you should at least attempt a problem on your own first since this will help you gauge your command of the material.

Collaboration policy. Programming is a creative process and no two programmers will solve the same problem in the same way. You are encouraged to discuss how to design a solution to a given problem with your classmates. But when it comes time to convert your design into code, you must write the code yourself. Be sure not to leave copies of your code where others might be able to access it (such as in the recycling bin of a lab computer). You may adapt code from the CSCI 446 course materials provided you cite what code you used in your program's comments.

Under no circumstances should you copy another person's code. Copying code from another student can result in an F in the course. Novices often mistakenly believe simple transformations can disguise a copied program. In actuality, copied programs often reveal themselves quite easily during grading. We can also use sophisticated software such as MOSS to detect plagiarized code.

Pair programming. For designated assignments, you are encouraged (but not required) to pair program with another student in the class. In pair programming, both people work side-by-side at the computer on the same program. One person is the driver who actively types at the computer or records a design. The other person is the navigator who watches the work of the driver, identifies problems, asks clarifying questions, and makes suggestions. About every half-an-hour, the pair should switch roles. Before starting pair programming, you should watch this video. A pair should submit one solution with both partner's names and usernames in the header of the submitted files.

Page last updated: December 18, 2014