Teaching

CMSC764 / AMSC604 - Advanced Numerical Optimization

This is a detailed survey of optimization from both a computational and theoretical perspective, with emphasis on methods for machine learning, model fitting, and image processing. There are no pre-requisites for this course, however students should have a strong background in applied mathematics (especially linear algebra) and programming.
Theoretical topics 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 2024

AMSC663 - Advanced Scientific Computing

AMSC/CMSC 663-664 is a two-semester project course in which students identify and carry out a scientific computing project with a focus on software development. Students select a faculty member as their project advisor to supervise their work. In addition to code and documentation, course deliverables include a proposal document, proposal presentation, midterm presentation, final presentation, and final report.

Expected Course Topics include:
   ● Validation and unit testing
   ● Modularity and portability
   ● Parallelization
   ● Documentation and distribution

Course home : Fall 2018

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

Fall 2014 | Fall 2015 | Fall 2016 | Fall 2017