Below are the remaining assignments and key dates for this course. Please bear in mind that you probably won’t have enough time to finish a later assignment if you start on it only after all earlier assignments are due.
Programming assignment
The next and final programming assignment is due on Thursday November 29. It is similar to the previous programming assignment. Here it is:
Preferably in pairs (contact the professor first if not): Use the implemented representations of decision processes in Process.lhs to model a decision process you care about and find an optimal strategy. Explain how to use your code and why you care about it. If the agent in your decision process does not have perfect information about the current physical state, deal with the ignorance using belief states. If your decision process involves a variable with an infinite number of possible values, approximate it using a finite number of possible values.
Class meeting
Our last class meeting will take place on Monday December 10.
Final project
Your final project should at least be to replicate a paper published in a leading AI venue within the last decade. Leading AI venues include (but are not limited to) journals such as
- Artificial Intelligence,
- Computational Linguistics,
- Journal of Artificial Intelligence Research,
- Journal of Machine Learning Research,
- Machine Learning,
and conferences such as
- AAAI (national conference on artificial intelligence),
- AAMAS (international joint conference on autonomous agents and multiagent systems),
- ACL (association for computational linguistics),
- ICCV (international conference on computer vision),
- ICML (international conference on machine learning),
- IJCAI (international joint conference on artificial intelligence),
- KR (principles of knowledge representation and reasoning),
- NIPS (advances in neural information processing systems),
- UAI (uncertainty in artificial intelligence).
For more motivation behind replication, and for additional advice on how to conduct the project and write the paper, please read Gary King’s “Publication, Publication” and the commentary for this course.
You may conduct your final project in teams of one or (preferably) two. There are three stages.
-
You need to pick a paper to replicate. Send the paper you pick to me for approval and advice, but don’t wait for any approval or advice to proceed. Please beware that I will be out of the country between Monday November 26 and Monday December 3.
-
Your PDF proposal is due for electronic submission by the end of the day on Thursday December 6. The proposal should be written just like a final paper in content and form, except without empirical results. By this stage, you need to commit to a paper to replicate and a teammate (if any) to work with.
-
Your PDF paper is due for electronic submission by the end of the day on Friday December 14.
(Update 11/13) As usual in academia: You are free to program in any language, not just Haskell, or no programming language at all. You don’t need to submit your source code, though you are free to, and it might help the teaching staff understand your work, but nobody is obliged to read your code.
(Update 11/20) Two requirements may limit what tools you can use in your project, such as software packages for machine learning. First, your work should be itself replicable, so you cannot use a language or tool that is only defined by a proprietary implementation (unless it is the topic of your study). When in doubt, please ask. Second, you should explain your work clearly, so you cannot use a component (such as an algorithm) whose inner workings you don’t understand.
(Update 11/26) To clarify the previous sentence, you only understand the inner workings of an algorithm if you can code it from scratch. Also, note that even a final project that is entirely the replication of an existing result can be presented in a final paper with creative and fresh exposition, especially when the results are presented with an eye towards a particular line of future work. Try to write the paper that you wish had been written for you back when you started.
Citing sources
You must cite sources in your writing to achieve three goals:
- to guide the reader navigating an unfamiliar literature,
- to acknowledge prior work and situate your work, and
- to attribute words and ideas to their sources.
If you use someone’s idea or help, you must acknowledge it. If you quote or paraphrase someone’s words, you must further make this fact clear, using quotation marks and phrases such as “as so-and-so said, …” and “to paraphrase so-and-so, …”. (If you quote or paraphrase too much, such attributions become tiresome. That is just as well, because you need to understand prior work well enough to put it in your own words in order to effectively extend it anyway.) If you discover a relevant piece of prior work or a nice exposition of your subject, even if it did not help you because you had already finished your experiments, you should relate it to your work in your paper.