JEFF 2011
  • Director, Utah Center for Data Science, College Of Engineering
  • Associate Professor, School Of Computing

Current Courses

Fall 2023

  • CS 4970-004
    CS Bachelor's Thesis
  • CS 6951-022
    Teaching Menteeship

Summer 2023

Spring 2023

Teaching Philosophy

My teaching focuses on data analytics for big data problems.  I aim to teach students how to correctly model problems and how to solve them efficiently.  My teaching style emphasizes an intuitive and often geometric view of these topics where the students learn to understand not just how to complete tasks, but how to think abstractly about their problems.  

Courses I Teach

  • CS 5955 // CS-6955 - Data Mining   (
    Data mining is the study of efficiently finding structures and patterns in data sets. We also study what structures and patterns you can not find. The structure and patterns are based on statistical and probabilistic principals, and they are found efficiently through the use of clevel algorithms. This class will take this two-pronged approach to the topic; we will understand the model and then explore efficient algorithms to find them. Topics will include: similarity search, clustering, regression/dimensionality reduction, anomaly detection, link analysis (PageRank), and small space summaries.
  • CS 7941 - Data Mining Seminar   (
    Enrolled students will hear and present cutting edge research in data mining, databases, and algorithms.
  • CS 7960 - Models of Computation for Massive Data   (
    This course explores advanced models of computation pertinent for processing massive data sets. As data sets grow to terabyte and petabyte scales, traditional models and paradigms of sequential computation become obsolete. Different efficiency trade-offs analyzing memory usage, I/O calls, or inter-node communication become the dominant bottlenecks. These paradigms are formalized as I/O-Efficient, Parallel, Streaming, GPU-based, Map-Reduce, and other distributed algorithmic models of computation. This course will study the history and specifics of these models. Students in the class learn the proper settings in which to use these paradigms, the advantages and disadvantages of each model, and how to analyze algorithms with these settings