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
SOI1003 - Data Science Fundamentals
The course is an introduction to data science fundamental concepts. We cover the history of data science, the connection to artificial intelligence, fundamental data concepts, machine learning techniques, data engineering, big data principles, data visualization techniques, and the role of ethics in data science practice. We also touch on several special topics to understand how they are related to data science: natural language processing, computer vision, simulation modeling, internet-of-things, human-computer interaction, and cyber-physical systems. The goal of the course is for students to develop a broad understanding of how all these topics interconnect in the practice of modern data science.
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. Never built a robot before? No worries, we will teach you how to build simple interactive robots in the course ... it's half the fun.
ITG6002 - Artificial Intelligence Principles
This course focuses on understanding the fundamental mechanics necessary in order to build real-world AI systems and machines that “think”. We cover everything from classical search and planning techniques to modern methods like machine learning, decision-making under uncertainty, and cyber-physical systems. We also look at the evolution of those techniques, and how AI & robotics arrived where we are today. Then we tackle some of the current hot topics, like explainable AI. The whole idea of this course is for students to understand not just the methods, but to develop a deeper foundation so that they can one day perhaps create their own machines that "think"
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.