Teaching

CMSC250/250H - Discrete Structures

This course focuses on the fundamental mathematical structures, logical principles, and proof techniques that are relevant to the field of Computer Science. By the end of the semester, students are expected to have become more comfortable with skills such as abstract reasoning and the ability to carry out formal mathematical proofs of statements based on stated premises.

Expected Course Topics include:
  • Propositional logic
  • Proof methods
  • Sets
  • Induction
  • Functions
  • Probability
Course Home : Fall 2014 | Fall 2015 | Fall 2016

CMSC878O - Topics in Optimization: Sparsity and Machine Learning

This is an introductory survey of optimization for computer scientists. Special emphasis will be put methods with applications in machine learning, model fitting, and image processing. The format of the class is split between a traditional lecture course and a reading course where students present papers. There are no formal pre-requisites for this course, however students should have a strong background in applied mathematics (especially linear algebra) and programming.
Students will be expected to complete homework assignments, and also to present a paper in class (possible in teams). Homework assignments will consist mostly of short programming tasks in a language of the student's choice. Topics covered in lectures will include: multivariable calculus and optimality conditions, gradient methods, interior point methods, splitting methods, and stochastic optimization. Applications covered will include: fitting generalized linear models, sparse regression methods, matrix factorizations, neural networks, support vector machines, and more.

Course Home : Spring 2015

CMSC764 / AMSC604 - Advanced Numerical Optimization

This is a detailed survey of optimization from both a computational and theoretical perspective. Special emphasis will be put on methods with applications in machine learning, model fitting, and image processing. There are no formal pre-requisites for this course, however students should have a strong background in applied mathematics (especially linear algebra) and computer programming.
Theoretical topics will include convex analysis, duality, convergence proofs, and complexity. Computational topics will include gradient methods, splitting methods, interior point methods, and linear programming. Homework assignments will require both mathematical work on paper and implementation of algorithms.

Course Home : Spring 2016 | Spring 2017