I400 - Intro to Health Informatics
In this course, we teach students about biomedical informatics, e.g. how we can use healthcare data and technology to better treat patients and advance public health. We often go through a healthcare data project (data mining, machine learning, predictive modeling), where the students get hands-on experience applying some basic machine learning algorithms to healthcare data, and then use the insights learned to try to develop some sort of healthcare intervention (a program, technology, app, etc.).
I have put together a set of step-by-step instructions for the healthcare data mining project (using the open-source Knime software, www.knime.org). It is available below, if others are interested in using it for teaching/learning. We tried to make it as simple as possible, so that students could gain experience working with health data without getting hung up in the technical details. It can be downloaded below. We typically use some datasets from the UC-Irvine Machine Learning repository (a fantastic resource). A few of those datasets (that have already been cleaned, missing data removed, etc.) are also accessible below:
Health Data Mining Project - Instructions
Knime Setup Guide - for getting Knime setup to run the above data mining project
Healthcare Datasets - includes data sets for diabetes, breast cancer, contraceptive use, and Parkinson's (including description files for each), as well as "project scenarios" for each one
DSC540 - Advanced Machine Learning
In this course, we teach students the nuances of advanced modeling techniques, such as ensemble learning, Bayesian networks, biologically-inspired computing, feature selection techniques, Markov models, and temporal modeling to find patterns over time. It's a hands-on course, but also discusses the philosophy behind "what is intelligence" and how we might create it artificially. We start with intuitive examples from nature or real-world problem solving (from where to best build a fence to learning how birds and fish swarm using collective intelligence), to understand not just "how" the models work, but also why.
The students conceive and build their own project to apply those concepts, which at the end of the course is presented for the whole class. The course is taught in Python, using both Scikit and Spark. Coding templates for both are below:
Coding Templates for Scikit and Spark - downloadable zip file, see ReadMe first for notes on usage
I400/I590 - Human Robot Interaction
In this course, we teach students how to build interactive robots using Arduinos and open-source hardware. It's a hands-on course, that also includes lectures on social and technical issues in human-robot interaction. The students conceive and build their own interactive robot in groups (as part of a guided project), which at the end of the course is demo-ed for the whole class.
I202 - Intro to Social Informatics
In this course, we teach students about issues related to the mutual shaping of technology and society. For instance, we discuss how people shape how technology is designed, used, and evolves, as well as how technology (e.g. social media) affects how people think and live their lives. We also challenge a number of commonly held beliefs about technology (e.g. technological determinism, inventor myth) that most people are not even aware they hold.