Machine Learning

How does Neflix learn what movies a person likes? How do computers read handwritten addresses on packages, or detect faces in images? Machine learning is the practice of programming computers to learn and improve through experience, and it is becoming pervasive in technology and science. This course will cover the mathematical underpinnings, algorithms, and practices that enable a computer to learn. Topics will include supervised learning, unsupervised learning, evaluation methodology, and Bayesian probabilistic modeling.

Operating Systems

An introduction to the issues involved in orchestrating the use of computer resources. Topics include operating system evolution, memory management, virtual memory, resource scheduling, multiprogramming, deadlocks, concurrent processes, protection, and design principles. Course emphasis: understanding the implications of OS design on the programs you run and write (i.e., on their security, performance, etc.). This course is programming intensive.

Developing Innovative Software

Tired of writing programs that nobody ever uses? Then, this is the course for you. Many people come up with novel ideas for software, but lack the resources or ability to develop the software. Students will apply their programming skills to develop and deliver software based on the requirements of a client. Students will learn critical communication skills required to work with a client, work in teams with classmates, and experience the software lifecycle from requirements elicitation through delivery.

Algorithms

How does Google Maps find the best route between two locations? How do computers help to decode the human genome? At the heart of these and other complex computer applications are nontrivial algorithms. While algorithms must be specialized to an application, there are some standard ways of approaching algorithmic problems that tend to be useful in many applications. Among other topics, we explore graph algorithms, greedy algorithms, divide-and-conquer, dynamic programming, and network flow.

Dynamical Systems

Dynamical systems are mathematical models that evolve with time -- for example, the population of a species in an ecosystem or the price of a financial asset. This course will focus on discrete-time models where one iterates a single variable function and follows the evolution of points in its domain. Our aim will be to study the qualitative, long-term behavior of these models by developing mathematical theory and doing simulation. Topics will include periodicity, bifurcations, chaos, fractals, and computation.
Subscribe to