COMPUTER SCIENCE / PROGRAMMING COURSES

Computer Systems I
This course will demystify hardware and software components of computing systems in general, and will empower students with practical decision-making skills of a technical nature. We will discuss the user-interface, operating system, CPU technology and bus architecture of the platforms in the MFA Computer Art Lab. We will undertake a comparative study of programming languages. Further discussion will include mass storage, input/output devices and networking.

Todd Brous

Computer Systems II
The MFA Computer Art Lab is a sophisticated and complex network of computers, peripherals, software, servers and other high-end components. If students are to take advantage of the true potential and power of the MFA lab, indoctrination in “real-world” problem solving is necessary. This course dissects, researches and solves systems problems that prepare students to successfully execute a thesis in interactive media or networked media. In addition to lectures, field trips will be made to state-of-the-art facilities.

Todd Brous

Max/MSP/Jitter I
Students will learn how to use Max/MSP/Jitter by Cycling 74, a programming environment that allows you to create interactive environments with MIDI (Max), real-time audio processing (MSP), and real-time graphics and video processing (Jitter). Max can be used for developing interactive installations and improvisation/ performance systems. This course will cover the fundamentals of designing programs in Max, as well as how to integrate simple hardware systems and the basics of real-time sound and video processing. Students will create one or two projects. Occasional group critiques will be given.

Kurt Ralske

Max/MSP/Jitter II
A continuation of HSG-5564, Max/MSP/Jitter I, this course will further explore utilizing Max to create interactive works. Topics such as audio and video analysis, application development, generative sound and 3D graphics will be covered. Students will be expected to create a substantial project using Max. Occasional group critiques will be given.

Kurt Ralske

Max/MSP/Jitter III
Geared for students working on thesis projects in the areas of installation art, interactive video, sound art and performance, this course will focus on advanced features and application development using Max software. Topics will also include real-time 3D graphics, improvising with algorithms, and using Max with a network. In addition to a deeper exploration of the advanced audio and video processing aspects of this graphic programming environment, students will be given assistance with Max for their thesis projects, as well as individual and group critiques.

Kurt Ralske

Multimedia Programming I
This course will introduce multimedia programming concepts using Flash ActionScript as a foundation. Topics will include variables, data types, scope, conditionals, loops, functions, and program flow. Similar compatible languages, such as JavaScript, PHP, and Processing will be discussed briefly, with a focus on language similarities and differences. Additional technologies, such as audio, video, XML, authoring for mobile devices and external sensors and controllers may also be explored. These comparative looks at programming approaches will help students determine which will be most useful during thesis development. The course will consist of lectures, short weekly assignments, and a final project.

Richard Shupe

Multimedia Programming II
A continuation of HSG-5202, Multimedia Programming I, this course is intended for students interested in producing highly interactive creative work, including games, installation art and rich media Web sites. We will cover advanced programming topics related to the design and creation of interactive media. Object-oriented programming and design will also be explored through a series of short assignments using Flash and ActionScript. Course time will be divided between lecture, discussion and group critique.

Richard Shupe

Programming for Artists I
Intended for students with no prior exposure to computer programming, this course is recommended for all concentrations. Beginning with a discussion about how programming has evolved to its present form, students will gain an understanding of the various applications of computer programming and the flexibility it allows for going beyond commercially available software products. Emphasis will be placed on solving creative problems. Topics will include understanding computer architecture, basic programming constructs, a survey of languages and their applications, procedural vs. object-oriented programming, graphics programming, and an introduction to the Processing programming language and environment. The course will consist of lectures and short weekly assignments.

Nikita Mikros

Programming for Artists II
A continuation of HSG-5111, Programming For Artists I, this course will further explore object-oriented and graphics programming through the use of the Processing programming language and environment, and will introduce the Java programming language and environment. Emphasis will be placed on solving creative problems by going beyond commercially available software products. Topics will include understanding computer architecture, 2D and 3D image processing, intermediate programming constructs, and rich media Web solutions. The course will consist of lectures and short weekly assignments.

John Simon Jr.

Programming iPhone Apps
This course is an introduction to designing and programming apps for the iPhone OS. Students will learn the iPhone application development process using Cocoa Touch/Objective-C within the X-Code IDE and should be comfortable with the fundamentals of programming. Class lectures will involve writing software code and also include a larger discussion of app culture. The steps in developing an app are traced from Interface Builder to deployment in the App Store. Students will be expected to produce an app for their final project. Note: We will use code simulators, so students do not have to own an iPhone to develop and test their apps.

John Simon Jr.

Technical Direction
A technical director manages the relationship between software options and computational processes in the animation production pipeline in order to achieve optimum visual results using the most economic means. This course will study script-based approaches to modeling, rigging and constraints, texture mapping and shaders, illumination algorithms, renderers and rendering, compositing and other 3D animation tools and techniques. Shell scripting, MEL and the Maya expression language will be examined in detail.

Everett Kane

UNIX
The UNIX operating system remains an essential tool to the computer animator and artist. This course will strive to prepare students to go beyond the basic functionality of UNIX and into the realm of scripting—where the real power and flexibility of the operating system lies. Along the way, we will explore topics that will help students to understand and control the environment in which they work, and learn the tools that will help achieve goals more quickly and efficiently.

Loretta Skeddle

Web Programming I
The basic concepts, techniques and technologies of Web programming will be introduced, with the goal of learning how to design and build dynamic and database-driven sites for the Web. Conceptual and practical programming concepts will be examined through the creation of flowcharts, as well as working through examples of code and scripts, including HTML, CSS, JavaScript and PHP. The exploration of design principles and building of dynamic templates will be achieved by working on assigned projects.

Michael Lascarides

Web Programming II
Students will be introduced to programming concepts used to create dynamic content for the Web. Assuming basic HTML skills, students will learn to add JavaScript to pages to effect client-side dynamic pages. CSS, XML, JSP and introductory database techniques will be explored to add functionality to a Web application. Several short assignments will be given, enabling students to produce creative and innovative Web sites.

Michael Lascarides