CSCI 446/546
Artificial Intelligence
Fall 2021

Montana Tech
Computer Science Department


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

Homework #Due DatePointsAssignment
0 Fri. 8/27 1 Math Self Diagnostic: Practice
1 Wed. 9/1 100 Search
2 Wed. 9/8 100 Constraint Satisfaction Problems
3 Fri. 9/17 100 Games
4 Fri. 9/24 100 Markov Decision Processes
5 Wed. 9/29 100 Reinforcement Learning
6 Fri. 10/15 100 Bayes Nets: Representation and Independence
7 Wed. 10/20 100 Bayes Nets: Inference and Sampling
8 Mon. 10/25 100 Value of Information and Hidden Markov Models
9 Fri. 10/29 100 Particle Filtering and Naive Bayes
10 Wed. 11/10 100 Perceptrons
11 Mon. 11/15 100 Gradient Descent and Neural Networks
12 Tues. 11/23 100 Logic

Project #Due DatePointsAssignment
1 Fri. 12/3 100 Paper
2 Mon. 11/25 100 GRAD CREDIT ONLY - Programming Project

Program #Due DatePointsAssignment
0 Fri. 8/27 1 Unix/Python Tutorial
1 Thurs. 9/9 25 Search
2 Fri. 9/24 25 Multi-Agent Pacman
3 Wed. 10/13 25 Reinforcement Learning
4 Fri. 11/5 25 Ghostbusters
5 Wed. 11/24 25 Machine Learning

Submitting Assignments:

Homework Assignments. You need not submit homework assignments to Moodle - I will have access to your submissions on Gradescope. As of now, there is one assignment that will not be autograded (HW12: Logical Inference). If I don't get it on the Gradescope platform by the end of the semester, you must complete and submit as a document to Moodle, but I will try to automate it.

Programming Assignments. All project and program 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, but not the unmodified files that were provided to you. The top of every source file submitted should include your name and a description of what the file does or what you added/modified.

Project Assignments. The paper should also be submitted via Moodle. I prefer that you submit it in MS Word format.

Deadline and late policy:

All assignments are due on the stated date by 11:59 that night. Assignments arriving even one minute late are considered late. Since we are using the Berkeley course platform, all assignments are autograded, so I anticipate little to no delay between the time you turn in your assignment and the time it is graded. Therefore, unless there is a very valid reason for turning in something late, late submissions will not be accepted.


As I said, I will be using the Berkeley autograder. You can use this too, so you know how well you are doing. On the homework assignments, you should know right away if you got a question correct or not. If you get an incorrect answer, try to understand why, because it is likely that similar questions will be on exams.

You can also run the provided autograder on your code. You should know right away if you are getting the correct output or not. On programs, I reserve the right to deduct points for poor program style or commenting - or add points for particularly good solutions. Partial credit is always 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. The programs will take a good chunk of time, a lot of it just trying to understand what you are expected to do and what has been provided for you.

Papers will be graded using the department's standardized grading criteria: Standardized written assessment

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 and the website, 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. Students 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.

Page last updated: November 19, 2021