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.

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.