Teaching
CSCI 451/558: Introduction to Bioinformatics
Description from course catalog: Designed for attendance by both computer scientists and biologists. The course will explore the interdisciplinary nature at the juncture of the two fields. Students will be introduced to bioinformatics (emphasis: computational genomics), with exposure to fundamental problems, algorithms, and tools in the field. This includes a basic introduction to genomics, along with in-depth coverage of algorithms and methods relevant to modern computational genomics, including: biological sequence alignment, sequence database homology search, and phylogeny inference. The programming expectations are limited for a 400-level computer science course, but at least one semester of a programming-intensive course is required.
Taught in:
CSCI 332: Design/Analysis of Algorithms
Description from course catalog: Algorithm design, analysis, and correctness. Commonly used algorithms including searching and sorting, string search, dynamic programming, branch and bound, graph algorithms, and parallel algorithms. Introduction to NP-complete problems.
Taught in:
CSCI 432/532: Advanced Algorithms Topics
Description from course catalog: Advanced algorithm and data structure concepts, including theory, approximation algorithms, randomized algorithms, parallel algorithms, streaming algorithms, linear programming.
Taught in:
CSCI 246: Discrete Structures
Description from course catalog: This course covers logic, discrete probability, recurrence relations, Boolean algebra, sets, relations, counting, functions, maps, Big-O notation, proof techniques including induction, and proof by contradiction.
Taught in:
CSCI 132: Basic Data Structures & Algorithms
Description from course catalog: An examination of advanced Java and basic data structures and their application in problem solving. Data structures include stacks, queues and lists. An introduction to algorithms employing the data structures to solve various problems including searching and sorting, and recursion. Understanding and using Java class libraries. The laboratory uses Java. Introduces Big-O Notation.
CSCI 112: Programming With C
Description from course catalog: C Programming knowledge. Introduces imperative programming and the C standard library. Course covers pointers, memory management and structures.
- fall 2023
- spring 2023
- fall 2022 (team taught with Dr. Mary Ann Cummings; course hosted on D2L)
- summer 2021
CSCI 127: The Joy & Beauty of Data
Description from course catalog: Provides a gentle introduction to the exciting world of big data and data science. Students expand their ability to solve problems with Python by learning to deploy lists, files, dictionaries and object-oriented programming. Data science libraries are introduced that enable data to be manipulated and displayed.
Teaching demonstration
On October 25, 2021, I gave a cybersecurity-related teaching demonstration to beginning computer science students in Montana State University’s CSCI 107 course. My slides are here.