Intelligent Networks Laboratory

AI and graph-based systems.


Education Projects.

We develop software and other materials for a number of classes that touch on artificial intelligence, neural networks, data analysis, and signal processing. Here are some of the current projects.

Computers & Cognition

Prof. Stiber is working with Prof. Madeleine Gorges from Interdisciplinary Arts and Sciences on a First Year & Pre-Major Program (FYPP) course, B CORE 107, which relates cognitive science to artificial intelligence and uses this as an introduction to college life and UW Bothell. Among the tools we are developing for this is a custom version of LightBot and an installation of convnetjs that is useful for teaching machine learning concepts, strengths, and limitations to non-CS students. We are also investigating incorporation of tools from the history of AI, such as Eliza, to illustrate the use of AI as the experimental side of cognitive science theory.

Deep Learning Activities

Prof. Stiber is collaborating in the creation of a UW Bothell Discovery Core course for freshmen entitled "Computers and Cognition". As part of this, we are working to develop hands-on activities that use the ConvNetJS Javascript library. The idea is that these activities will be accessible to students with no technical background and will help them learn about what deep neural networks can and can't do, how their operation is similar to and differs from biological nervous systems, etc.

Signal Computing.

One of our goals is to produce graduates who can be comfortable working on applications that process real-world data. 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 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:

  • Our students are able to understand the entire machine's operation, rather than just one component.
  • Our students are able to communicate with and understand the tasks of the entire team, rather than just be directed to perform lower-level support tasks.