MAT 233: Introduction to Multimedia Software Development in C++, Fall 2007

General Information

Class Location: eStudio (Arts 2220)
Class Time: TR 4pm-6pm

Instructor: Eric Newman (e.newman@mat.ucsb.edu)
Office: 4430 South Hall
Office Hours: By Appointment

Overview

MAT 233 is a graduate-level introductory overview of multimedia programming in the C++ language. No previous programming experience is required, but students must be highly proficient computer users. The course will teach basic principles of software development in both "technical" and "conceptual" areas: platforms, compilers, development environments, debugging, C/C++ syntax, libraries, and component-oriented/ object-oriented design principles. Multimedia topics will primarily include images, graphics, and video, but will also touch on user interfaces, audio, and networking.

Upon completing the course, students will be able to write stand-alone applications to solve a variety of "real-world" programming problems. Additionally, students will be able to easily move to other languages such as Java, C#, Objective-C, Smalltalk, and many others.

Students may enroll in MAT 233 concurrently with MAT 201B.

General Topics

  • Getting started: C++ history, XCode and Visual Studio, "Hello, world!"
  • C++ basics: program structure, variables, data types, constants, operators, input/output
  • Control structures: conditionals, loops, switches, functions
  • Compound data types: arrays, character sequences, pointers, dynamic memory, data structures
  • Object-oriented programming: classes, inheritance, polymorphism
  • Advanced C++ concepts: templates, namespaces, exceptions, type casting, preprocessor directives, file i/o
  • Advanced development concepts: projects, debugging, optimizing
  • Advanced multimedia concepts: libraries, images, 3D graphics, video, user interfaces, audio, networking
  • Assignments/Grading

    For the first seven weeks, assignments will be given on Thursday which are due the following Tuesday. Some of these will be specific exercises, while others will be more open-ended projects. Tuesdays will partially be devoted to reviewing these assignments in class. Each assignment will be worth 10% of the overall grade (total: 70%).

    The last three weeks will be devoted to a larger project of the student's choosing which will be worth 30% of the grade. Weekly presentations of progress will still be required.

    Students must attend all classes unless excused in advance.

    Textbook

    A highly recommended textbook is C++: How To Program by Deitel and Deitel. However, purchase of this book will not be mandatory, as it is over $80 on Amazon.com.