In the earliest offerings of this course, I have given 3-5 quizzes on the reading assignments you do, spaced every 3-5 weeks. Early on, students did the quizzes in class, but in later years the quizzes were take-home assignments with a 2-5 day window.
Over the years, I grew increasingly dissatisfied with these quizzes. Not that there was anything wrong with them, I suppose, but they were just routine quizzes. I assigned some reading, students did (or didn't) read the assigned chapters, and then students tried to tell me what they thought I wanted to hear from the book. This process didn't seem to fit with either the purpose or the organization of this course, but I kept assigning them out of inertia. Neither student nor instructor took great joy in these quizzes, but they felt comfortable.
We won't have quizzes this semester. Instead you will write for me a set of four annotations.
I borrow this term and the idea itself from an ongoing project led by Dick Gabriel aimed at creating a new sort of graduate degree for software people. This project draws its inspiration from the Master of Fine Arts programs that one can do in areas such as creative writing. For all its differences from creative writing, software development shares a number of similarities with artistic disciplines. For example, in both software and writing, most people who earn a living in the discipline "do the thing" rather than talk about it. Writers write essays, articles, poems, whatever. The way you get better is to write (a lot), all along paying attention to elements of the craft that you can do (better). Academic programs aimed at helping people become writers are based in the student writing a lot and paying attention to writing, their own and others'.
Software professionals do, too. They design and write programs. The way that you get better is to design and write (a lot of) programs, while paying attention to elements of the craft that you can do (better). This course is a capstone to your undergraduate study, in which you can learn to do a big AI-related project by doing one.
We will try to achieve the "while paying attention" part of this recipe in a number of ways. The principal reason for using a studio format for the course is to give you plenty of opportunities to discuss with me and each other what you are doing while you are doing it, so that you can learn during the doing. Another way will be for you to write a set of short essays called annotations.
An annotation is a vehicle for that allows a student to pay attention to one craft element at a time. A craft element is anything that makes software effective and, yes, beautiful. Such craft elements can be found at the lowest level of a program, say in the choice of names for variables, functions, classes, or methods, or in how code is formatted and commented. They can also be found up a level in a programming style, say in how and when to use inheritance or in how to use closures and first-order functions. They can also be found at the design level, say in how to use a particular AI technique or how to figure out what to components to design next. Anything else that is a hallmark of what sets the extraordinary apart from the ordinary in software and software design is a craft element.
This course is a capstone course to your undergraduate CS program. Its goal is to help you continue on the path toward becoming an extraordinary software developer. I'll ask you to write annotations as a way to force you to think about what you are doing as you build an AI system. I hope to make these essays be very much grounded in your project, while at the same time asking you to bring together ideas from your readings, your past courses, your outside experience--anything that is a part of your experience.
About every three weeks during the semester, I will assign to you a topic for your next annotation. I'll give you about a week to write your essay. I'll read them before our next class meeting, so that I can return them to you then. In that next meeting, we'll discuss your ideas.
One new twist: After you receive the "graded" essay back, you can resubmit it at a later date for a new grade. This means that you can take the feedback I give you, along with the results of any discussion we have in and out of class, and improve your essay. You could even write a new essay from scratch. If you do, I'll accept the new essay and replace your older grade with the newer one. You can do this at any time throughout the semester.
At the end of the semester, you will have completed 4 annotations worth 50-75 points each, for a total of up to 250 points of your course grade.
Week Dates Annotation
01 01/15 - 01/17
02 01/22 - 01/24
03 01/29 - 01/31 #1, due 02/07
04 02/05 - 02/07
05 02/12 - 02/14
06 02/19 - 02/21
07 02/26 - 02/28 #2, due 03/07
08 03/05 - 03/07
09 03/12 - 03/14
03/19 - 03/21 SPRING BREAK
10 03/26 - 03/28 #3, due 04/11 -- was 04/04
11 04/02 - 04/04
12 04/09 - 04/11
13 04/16 - 04/18 #4, due 04/25
14 04/23 - 04/25
15 04/30 - 05/02