AI and graph-based systems.
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.
Prof. Stiber is co-teaching a First Year & Pre-Major Program (FYPP) course, B CORE 115/116, with Prof. Salwa Al-Noori from Biology. This course explores the similarities and differences between computer processing and human cognition, forming a learning community that combines computer science and neuroscience for a deeper understanding of both. It covers topics such as sensory systems, learning and memory, and the definition of intelligence, while introducing students to basic programming concepts and the scientific method.
Mini-Torch is a Python framework designed for computer science students building neural networks from scratch. It mirrors the PyTorch API using only numpy, matplotlib, select elements of scipy, and standard Python, emphasizing manual gradient calculations and batch-first row-vector notation. You can find more information about this project on its GitHub repository.
Mini-Torch is applied in CSS 590: Generative AI, a special topics course where students develop artificial neural networks from scratch, including learning algorithms and their underlying mathematical basis. Throughout the course, students use Mini-Torch to implement and understand various model types, including multi-layer perceptrons (MLPs), variational autoencoders (VAEs), generative adversarial networks (GANs), diffusion models, and transformers.
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.