Unlike the midterm project, for the final class project each individual will be responsible for turning in her/his own project. That doesn't mean you can't continue to collaborate with others who happen to have some expertise or skill in an area for which you need assistance. But it does mean that the work you hand in must be predominantly your own (and of course wherever it's not completely your own it should be duly credited). The syllabus says, this: "Design and implementation of one complex computer program for music (or sound) and video (or graphics), resulting in a composition, performance, or "user experience" (5 minutes or more) produced using that program. The resultant work should depend on realtime human-computer interaction as an integral part of its construction. This project could be based on the smaller project, but must be significantly more developed and refined." However, there are some aspects of that description that should be modified. First of all, the point is not to write a "complex" computer program. (That was just meant to distinguish it from the relative "small" computer program that was your portion of the midterm project.) The point really is to write a program that does something interesting and useful, regardless of how complicated the actual programming is. In fact, it's often best to start simple, and only get more complex when you find you need more complexity. Also, whereas the description says that "this project could be based on the smaller [midterm] project," I'd actually prefer that you think of something that's not too closely based on your midterm project. Here's how I suggest you go about planning it. Start with something you consider to be your strength -- it might be an instrument you play, a skill you have, a particular specialized knowledge you have, etc. How could a computer program help you leverage that strength and/or amplify it? Think also about what really interests you, because you'll work better and harder at something you really care about. Are you interested in audio effects processing, algorithmic composition, user interface, sampling and remixing, visualization/sonification of mathematical formulae, complex polyrhythms, granular or micropolyphonic textures, exploration of minuscule sound variations, pyschoacoustic and cognitive phenomena, educational software, etc., etc.? I'm a proponent of "experimentalism", by which I mean devising a focused question to explore and a plan for how to explore it. It might be helpful to think of this project in that way. What would you like to explore or learn, and how could the process of writing a computer program help you do that? You could start from there, with a plan for an experiment (the result of which is not fully known to you), which is different from starting by conceptualizing a result you know you are trying to achieve.