This course covers basic and advanced topics related to the using computers to support audio and video over a network. Topics specific to multimedia will be selected from areas such as: compression, network protocols, operating systems and human computer interaction. Students will be expected to read assigned research papers and complete several programming intensive projects that illustrate different aspects of multimedia computing. (Prerequisites: CS 502 and CS 513 or the equivalent, and strong programming skills.)
Day: M,W
Time: 3:30pm - 4:50pm
Place: FL320
There will be no formal text-book for the course. Instead, chapters selected from several text books and research papers will be copied and made available. Details will be given out on the first day of class.
Some good references for multimedia and Unix programming:
Final grades will be computed as follows:
The grading policy for each project will be provided at the time of the assignment. In general, each assignment will have a basic objective for the majority of the assignment points. There may be an extended objective for demonstrating additional work and understanding.
Final grades will reflect the extent to which you have demonstrated understanding of the material, and completed the assigned projects. The base level grade will be a "B" which indicates that the basic objectives on assignments and exams have been met. A grade of "A" will indicate significant achievement beyond the basic objectives and a grade of "C" will indicate not all basic objectives were met, but work was satisfactory for credit. No incomplete grades will be assigned unless there exist exceptional, extenuating circumstances. Similarly, no makeup exams will be given unless there exist exceptional, extenuating circumstances.
Late programs will be be penalized 10% of total assignment value per day (with the weekend counting as one day) or partial day, and no assignments will be accepted after seven days beyond the due date. All programs are due at midnight due date. Programs turned in after that time will be counted late. Projects will be submitted as directed in class. Exceptions to these rules can be made only beforehand.
Cheating ... don't do it. Cheating, either by taking credit for work you did not do or getting unauthorized help on projects or exams, is a serious offense. Punishment is in an automatic F for the course. Note, discussion among students and even sanctioned group work is encouraged, but blatant copying of code is not allowed. When in doubt, ask!
Here is the list of Multimedia topics covered in this course:
Slides from the in-class lectures will be available shortly after they are presented, depending upon how things go. Here is what we have so far:
Admin | ppt | |
Intro | ppt | |
Sockets | ppt | |
Experiments | ppt | [RS75] | ppt |
[Le91] | ppt | |
[LHPT95] | ppt | |
[WS98] | ppt | |
[WS00] | ppt | |
[CT99] | ppt | |
[GT98] | ppt | |
[PFOC00] | ppt | |
[CC00a] | ppt | |
[FHPW00] | ppt | |
[RHE99] | ppt | |
[FHP00] | ppt | |
[PHH98] | ppt | |
[HSK98] | ppt | |
[ZCL01] | ppt | |
[PCM00] | ppt | |
[PJS99] | ppt | |
[CC00b] | ppt | |
[MJV96] | ppt | |
[XMZY97] | ppt | |
[SCG+00] | ppt |
The projects (I often call them labs) are the programming assignments you will have for the course. I encourage you to work in groups of two for the projects. I'd prefer to limit the groups to only 2, but if you really want a larger group, come talk to me. Working in groups will give you valuable ``real-world'' experience as well as provide you with a ``built-in'' source for help. Do remember, however, that all exams will be taken alone. Make sure each group member understands the programs completely!
Projects writeups will be placed here as they are defined.
Here is what we have so far:
Project 1: Speech Detection (due about February 5th)
In this section are any code samples discussed in class, practice exams or any other demonstration-type class materials. Samples will be updated soon after the discussion in class begins.
Basic speech detection using energy level only: computeEnergy.c
and getThresh.c
Basic TCP sockets: talk-tcp.c
, listen-tcp.c
Basic UDP sockets: talk-udp.c
, listen-udp.c
Setting a timer: setitimer.c
Using POSIX threads: add2.c
-
add and subtract to an variable protected by a mutex (compile
with -lpthread
)
Allowing multiple interrupts: select.c
Parsing command line parameters: get-opt.c
Doing UDP multicast: multicast.c
RealNetworks, makers of RealPlayer.