MAT logo

MAT-201B: Computing with Media Data -- UCSB, Fall 2007

Contacts

Instructor: Stephen Pope, office South Hall 4340Fbitblt
    Office Hours: Tuesdays 1:00 - 3:00 PM or by appt.
TA: Alex Kouznetsov
    Office Hours: TBD.

Time/Place

Lectures: Tues/Thurs. 9:00 - 10:50 AM
Discussion Group/Lab: Monday 10:00 - 11:50 AM
Lectures are held in Music 2215 (CREATE class room)

Downloads and Web Resources



Course Overview

The "Computing with Media Data" course addresses a wide range of topics that are not covered in an introductory programming class, but that are central to the development of modern multimedia software. These include:
The course is an intensive hands-on workshop in software development for multimedia applications; it gives students theoretical insights and practical experience in multimedia software development. The theoretical component presents the basic representations, data structures, and file and interchange formats used for multimedia data such as sound and still and dynamic images. In the practical part, students work on several platforms (Linux/UNIX, MS-Windows, and Macintosh), and develop programs for basic multimedia tasks such as file I/O, data streaming, format conversion, and data analysis. All students are expected to become comfortable with software development tools and operating system APIs on all three classes of platforms.

Prerequisites

layersStudents are assumed to be "moderately proficient" in a mainstream low-level programming language such as C, C++, or Java, at the level of a 1-quarter introductory programming course and 1-quarter "data structures and algorithms" course. Topics such as simple data structures (e.g., collections, streams), basic object-oriented design (class hierarchies), and I/O libraries will be assumed. Students are also expected to be able to use an integrated development environment such as KDevelop (Linux), VisualStudio (MS-Windows), or Xcode (Mac).

Format



Topical Outline

1: Software development: languages and tools
2: Application organization and I/O models
3: Software engineering: objects, methodology
4: Computing with sound and music data
5: Computing with still and dynamic images
6: Programming GUIs and interactive software
7: Distributed systems and network programming
8: Control protocols and sensor input
9: Application domain frameworks, review


Detailed Syllabus (somewhat out of date; see the presentation slides)

1: Introduction: Software Development Basics

2: Multimedia Application Developmentuml

3: Media Data Representation, Storage, and Interchange Formats

4: Sound I/O on Modern Operating Systems

5: Computing with Still and Dynamic Images

6: Sockets, Networks, and Distributed Programming

7: APIs and Tools for GUI Construction

8: Application Examples and Domain-specific Frameworks


Student Projects

Goto 2004 Student Projects Gallery/Downloads


MAT logo