As computers become ubiquitous, they become more and more embedded not only in the devices we own and use but in our lives. As a result, computers become embedded in the physical world, with their primary purpose being to detect and analyze happenings in our world and to produce responses that affect that world. As computing professionals, we need to understand how computers can process information from the physical world as digital signals: multimedia (sound, images, video) and other measurements (in medical instruments, cars, cell phones, eyeglasses, etc). This is "Signal Computing". Digital signals place great demands on processing power, network bandwidth, storage capacity, I/O speed, and software design. As a result, signal computing is a great laboratory for exercising the full range of knowledge of computer science.
While there certainly may be many opportunities for you to work in signal computing, the value of this study extends far beyond. Studying signal computing and its underlying mathematics directly exercises key computer science abilities in areas like abstraction and algorithmics. As this course progresses, we take a familiar representation of digital signals or operations, reach a concept in which it is awkward or difficult to use, and then develop an alternative representation that simplifies matters. This is exactly what computing professionals do in their careers -- identify that a problem at hand can be represented by some abstraction with known properties that can be manipulated by well-understood algorithms.
The specific topics we will cover include: physical properties of multimedia source information (sound, images), devices for information capture (microphones, cameras), digitization, compression, digital media representation (JPEG, MPEG), digital signal processing, and network communication. By the end of this course, you will understand the problems and solutions facing multi/hypermedia systems development in the areas of user interfaces, information retrieval, data structures and algorithms, and communications. As a result, you should be well-prepared to work with electrical engineers in the design of advanced signal processing systems (for example, wireless communication devices or biomedical instrumentation) and multimedia computing systems.
December 3, 2014: I've added project report guidelines to this site.
September 26, 2014: I've added Catalyst tools for online lab submission and discussions. I've also updated the schedule to fix the missing lab 7 and to reflect the fact that 10/16 will involve an out-of-class activity.
September 21, 2014: I've added a rubric that describes expectations for laboratory reports. In this course, labs are begun in class and completed as homework.
September 9, 2014: Behold the syllabus and rejoice! The navigation bar to the left now links to HTML and PDF versions of the course syllabus. Because I always believe that no plan can long survive contact with reality, there is also a link to an "updated schedule", which I will indeed update as the quarter progresses and changes occur.
August 28, 2014: The textbook and lab book are now "final". That doesn't mean they are error free, but they won't be modified during the quarter. Any errata will be handled separately.
August 26, 2014: I am making some final tweaks to the course textbook; its home page is here. Don't print it out or otherwise commit to using that version for the quarter. There won't be super substantial changes to it, but you might as well wait for the golden master.
July 29, 2014: We've just added this elective to the time schedule for fall. Stay tuned for awesomeness!