Biocomputing Education

One of the BCL's primary goals is to produce CSS graduates who can be comfortable working on biomedical applications. Towards this end, we have developed a CSS course entitled "Multimedia and Signal Computing," and written a textbook, Signal Computing: Digital Signals in the Software Domain. We have a variety of materials available associated with this book; you can learn more at the project web page.

The core material of this course is the acquisition, representation, processing, storage, and display of multimedia and signals in digital computers. When they were originally invented, electronic computers were targeted at abstract, mathematical applications (such as computing artillery firing tables). Today, computers increasingly act within the context of the physical world, processing information carried by light (images, video), sound (speech, music), and other sensors (chemical, biological) and taking action based on such computation (controlling motors, speakers, displays). Applications that fall within this domain of study are now both ubiquitous and important in modern life, and will only become more so in the future. These include both desktop and similar computer systems with multimedia capabilities (digital audio and video software) and computers and software embedded into systems that perform signal processing (e.g., medical equipment, cell phones, digital televisions) and control (aircraft, automobiles, houses). This is the motivation for providing CSS students with a background that could allow them to choose careers working on these systems.

While it is readily apparent that this should be a topic of interest and benefit to CSS students, how to teach it is unclear. Traditionally, courses in signal processing are taught within Electrical Engineering departments, usually requiring two full years of engineering mathematics prerequisites. For example, the UW Seattle campus' EE department offers related topics scattered across several courses: EE 235 (Continuous Time Linear Systems), EE 341 (Discrete Time Linear Systems), EE 436 (Medical Instrumentation), EE 440 (Introduction to Digital Imaging Systems), EE 442 (Digital Signals and Filtering).

The reasons for this are twofold: the mathematical background required by the EE courses and the goals of the EE courses. Courses in signal processing ordinarily require something like one year of differential and integral calculus, a course in differential equations, and a course in Fourier methods. Additionally, these courses are targeted at students who will some day need to understand digital signal processing from first principles and abstract mathematical models, through algorithm development and signal processor design.

This cannot be the same type of course taught to CSS students, or most any computer science students who are not required to take a full complement of engineering mathematics courses. Neither, frankly speaking, is it appropriate or necessary for such students to be taught digital signal processing "from the ground up". Rather, it is probably more appropriate (and the goal of this CSS course) to get across basic concepts and explain how fundamental signal processing algorithms work, thereby preparing our students to work with the engineers who perform detailed signal processing design to produce well-designed systems.

For example, consider the construction of an ultrasound machine. Without this course, CS graduates could work on the user interface and low-level tasks associated with the rest of the machine. However, they would not be prepared to understand the core of the machine: what data is collected, how the internal representation in the computer relates to what is happening outside the machine, how that data moves through the machine and is interpreted, etc. With this course under their belts, our students should be able to talk to the engineers doing the signal processing and understand what that part of the system does. This opens up higher-level opportunities for them: