In the earliest offerings of this course, I gave four or five quizzes on the reading assignments students did, spaced every three to five weeks. Early on, students did the quizzes in class. In later years, the quizzes were take-home assignments with a two- to five-day window.
As time passed, 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 essays.
I originally got this idea through an ongoing project led by Richard 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 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.
An essay 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 essays 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.
Every three weeks or so during the semester, I will assign to you a topic for your next essay. 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 four annotations worth 50 points each, for a total of 200 points of your course grade.
Week Dates Essay 01 01/11 - 01/13 . 02 01/18 - 01/20 . 03 01/25 - 01/27 #1, due 02/03 04 02/01 - 02/03 . 05 02/08 - 02/10 . 06 02/15 - 02/17 . 07 02/22 - 02/24 #2 (cancelled) 08 03/01 - 03/03 . 09 03/08 - 03/10 . 03/15 - 03/17 SPRING BREAK 10 03/22 - 03/24 #2, due 03/31 11 03/29 - 03/31 . 12 04/05 - 04/07 . 13 04/12 - 04/14 #3, due 04/21 14 04/19 - 04/21 . 15 04/26 - 04/28 .