Topics vary semester to semester.
Interactive Systems for Enhancing Movement
This class applies computer science in the context of interactive systems to enhance human activities that involve movement, such as dance or sports. The course will go through examples of how sensors are used in diverse physical activities, including how to get movement signals through user-studies, how to evaluate the results, how to process the signals, and how to classify and determine if a movement is "correct" or "incorrect". Students finish the class by designing and evaluating their own projects in an activity that they are passionate or curious about.
Sub-field: ARTIFICIAL INTELLIGENCE
Prerequisite: COMP 131
Modeling and Simulation
A computer model is a hypothesis, formulated with a specific purpose in mind and represented as a computer program, about some aspect of concrete or imagined reality. A model can be "brought to life" through computer simulation. Computer models play an important role in business and policy as well as in engineering and the social and natural sciences, and we interact with them on a daily basis whether we realize it or not. These models, the nature of the "knowledge" they provide, and the implications of their use are the subjects of this course. An introductory familiarity with computer science is enough to build and work with simple computer models, valuable in themselves, that can also form the building blocks of more complex models. Focusing on these simple models, this hands-on course will address model-building, model fitting and validation using data, and model simulation for prediction and decision-making. At each of these stages we will also study questions of approximation and bias, and their implications. Examples will be drawn from a wide range of phenomena but will not require prior expert knowledge.
Sub-field: SOFTWARE
Prerequisites: COMP 131
Data Mining
This course covers computational approaches to uncovering information and patterns in data. Students will learn techniques for visualization of numeric and non-numeric data, data preprocessing, pattern extraction, clustering, and text mining. These techniques will be linked to human perception and other methods for evaluation.
Sub-field: ARTIFICIAL INTELLIGENCE
Abolish Silicon Valley?
The tech industry is known for well-paying jobs that offer the opportunity to work at companies making bold claims about their contribution to social betterment. Yet, those job benefits are only available to certain workers and "tech" is increasingly associated with income inequality, automated job loss, algorithmic bias, surveillance, the commodification of everyday life, and ecological damage. This course borrows its title from Wendy Lui's recent book on her experience as a tech worker and will ask students to (re)consider the politics of tech today, their own potential place in the tech industry, and alternatives to the current organization of techno-capitalism.
Computer Architecture
This course is intended to provide a foundation in performance programming and computer architecture. Students will better understand how software interacts with hardware and how trends in technology, applications, and economics drive changes in computer architecture. The course will cover the following topics: caches, virtual memory, memory system, parallelism, pipelining, superscalar, speculative out-of-order execution, vector, VLIW, simultaneous multithreading, graphics processing units, chip multi-processors, and domain specific accelerators. Students will read research papers on the topics described above. We will use processor simulators to explore design choices relevant to each of these topics. The objective is for you to understand all major concepts used in modern CPUs at the end of the class.
Sub-field: SOFTWARE
Prerequisites: COMP 239