This course outlines an interesting model for teaching (or self-learning) Cycling '74's Max/MSP. It offers a pragmatic approach that limits the needs for memorization and requires a lot of hands-on patching. This course is the result of teaching with the 20Objects curriculum and adjusting the concept based on the student's reception. We focus on 20 concepts as bellwether examples of Max functionality, and provide videos, programming examples and proposed lab work.
This is an introductory course, but attempts to introduce the student to concepts important in Max, MSP (audio) and Jitter (video/OpenGL). This syllabus is a work-in-progress, so things will change quite often. If you have experience teaching from this syllabus, please let us know - we'd appreciate any comments, complaints or concerns.
Since we stay focused on Max programming, there isn't a lot of software that will be required for using this course. Most importantly, you will need a working copy of Max/MSP/Jitter; you can download a 30-day trial from here, with discounted versions available for students. Other than Max, you won't need any specific software, but you may want to have additional media content (videos, audio files and OpenGL models). This coursework is system-agnostic, so you can be using either the Mac or Windows operating system without concern. This course is also usable with Max for Live, but makes no effort to provide Max for Live-specific examples or screenshots.
Hardware requirements are slightly greater, since we will be playing with device input in a variety of ways. In addition to your computer, you will want to have some sort of MIDI input device (preferably a keyboard). Perhaps the most important bit of hardware to have is a monitor that you are comfortable with and that provides plenty of screen real estate. As a visual programming language, Max needs room for its patches to spread out.
This course does not start at the most basic level; it expects that the user has the most basic understanding of the Max environment. Some things that the user is expected to know:
Perhaps the easiest place to get this information is from the Max help and tutorial system. The best introduction to the basics of Max can be seen in the Max Tutorial Zero Video (although this video is Max 5-based). It introduces the environment, some of the common vocabulary of Max programming, and shows the program in action.
Each of the lessons in this course follow the same basic format:
Max, even more than most programming environments, is best learned through "doing". Plan on having sufficient time for your students to work through the exercises as you work through the text, and try to catch any missing information before you move to the next subject. All of the lessons build on earlier data, so if something isn't clear, it can subvert the entire course.
Another technique that is critical is to have students watch you build Max patches and build them along with you. This over-the-shoulder or "patchalong" approach is much more informative than lecturing, so try to build in plenty of opportunity to allow your students to patch with you. Some concepts (like using shortcut keys for adding objects) are best reinforced by seeing them used over and over. Don't be scared to make mistakes! Making and fixing mistakes are a key concept in the interactive programming model of Max.
Here are some links that will be useful throughout this course: