Skip to content

Latest commit

 

History

History
107 lines (85 loc) · 9.19 KB

sample-syllabus.org

File metadata and controls

107 lines (85 loc) · 9.19 KB

Minecraft AI Assignments Sample Syllabus

1 About this course

CSCI 151 “Artificial Intelligence” is an advanced elective course in computer science. Its goals are twofold: to introduce students to fundamental techniques of AI work, and to problematize popular notions of AI in order to cultivate a critical technical practice. The main takeaway is that AI is not a well-defined term because it is not at all clear what “intelligence” means. Instead, this course focuses on automated decision-making and explores how computers can come to make several different kinds of decisions. Even this gloss is somewhat awkward (in the end, if humans act on the determinations of an automated decision-making system, the humans themselves are the ones making the decision), but it is an improvement over “AI.”

2 Infrastructure

Python is somewhat notorious for having an awkward time of managing different OS, language, and package versions. In this course, I will encourage the use of conda to manage the Python installation and associated packages; I cannot provide technical support for other installation methods.

We are trying something new with the assignments in this course: they are all motivated by, and many take place within, Minecraft. You do not need to own a copy of Minecraft to execute the programming assignments; a special version is made available via Microsoft Research as Project Malmo.

3 Grading

This is a project-based course in AI with a strong analytical component. Homework projects comprise the majority of the grade in the course (60%). Because analytic reasoning depends on a strong grasp of the fundamentals, we will frequently practice remembering material encountered earlier; every class will start with a quiz, and these quizzes will sum up to 15% of the grade. The final project makes up the remainder of the grade for the course, and this project has both analytic and programming components.

  • Homework (60%, 10% per assignment)
  • Quizzes and reading reactions (15%)
  • Final Project (25%)

4 Homework

Homework projects are the cornerstone of the course. The homeworks consist of both analytic work (typed reflections) and implementation work (Python code)…

To sum up, weighting for the homeworks is as follows:

  • 25% Reasonable attempt at completing the assignment by the due date (judged by my visual inspection)
  • 25% Effortful and meaningful reflection by the due date
  • 25% Automatic grader points before end of semester
  • 25% Substantive peer review of another student’s program (within four days after due date)

5 Final Project

The final project will consist of a significant implementation effort coupled with a strong analytic or critical justification for the project and a class presentation. Final projects must be executed in teams of up to five people.

I expect to see final projects in three main categories but I am open to others:

  1. A tutorial introduction, in the Minecraft domain, for an AI technique which was not covered by previous homework projects; this could serve as homework for a future iteration of the course.
  2. A project leveraging an AI technique for a different domain, where either the given application is not usually tackled with that technique or the scope and execution are significant or novel.
  3. A significant extension of a homework project, either using new techniques or into new domains.

6 Class Schedule

All projects are due five minutes before midnight on the due date. The only exceptions are the project post-mortems which are due on 12-19 at 14:00.

(Instructors: Please feel free to rearrange these topics as you like. Some of the “reflecting on” topics can be merged into the preceding day’s lecture.)

TopicSubjectNotes
1Introduction and SearchStudents can start on assignment 1
2Informed SearchAt this point all the topics of assignment 1 are covered in lecture
3Reflecting on Path PlanningIt may be useful to go over (some of) the reflections in lecture before assignment 1’s due date
4Classical PlanningStudents can start on assignment 2
5Iterative WideningAt this point the topics of assignment 2 are covered in lecture
6Constraint Satisfaction
7Reflecting on PlanningHere you can go over assignment 2 a bit before its due date
8Linear ProgrammingStudents can start on assignment 3
9Modeling with Linear ProgrammingStudents have all they need for assignment 3
10Integer ProgrammingStudents can start on assignment 4
11Reflecting on Linear ProgrammingYou might go over assignment 3 just before it’s due
12Planning via Constraint SatisfactionStudents have what the need for assignment 4
13Machine Learning
14Reflecting on Integer ProgrammingYou might go over assignment 4 just before it’s due
15Perceptrons
16Backpropagation
17Search by Sampling
18Reinforcement LearningRefer to Sutton & Barto chapter 6
19Deep RLFor the next class, read Reinforcement Learning’s Foundational Flaw and How to Fix Reinforcement Learning
20Logic and Satisfiability
21Project ProposalsDecide projects and teams by end of day, email me.
22Logical Resolution
23Logic Programming
24Convolutional Neural Networks
25Logic Revisited
26Recurrent Convolutional Neural Networks
27Problems and Opportunities in AI
28RCNNs Revisited