COVID-19: Essential Information

Michael Linderman

Assistant Professor of Computer Science

 work(802) 443-5737
 M: 10:15-11:45AM, T: 10:15-11:45AM, W: 2:30-4:30PM, or by appointment
 75 Shannon 216

Michael Linderman, Ph.D., is a computer engineer and computational biologist working to accelerate medical genomics. Michael joined Middlebury College in 2016; previously he was a Research Assistant Professor in the Department of Genetics and Genomic Sciences at the Icahn School of Medicine at Mount Sinai in New York. Michael earned his Ph.D. and M.S. from Stanford University in Electrical Engineering and his B.S. from Harvey Mudd College. At Mount Sinai, he was a co-investigator in HealthSeq, a study investigating the return of whole genome sequencing data to healthy individuals, and the co-developer and director of "Practical Analysis of Your Personal Genome", a unique laboratory-style genomics course in which students have the option to sequence and analyze their own whole genome. His research interests include heterogeneous computing (GPGPU), genomic variant interpretation, structural variant genotyping, and genomics education for the public, patients and providers.

Michael's HomepageGoogle Scholar Profile, and PubMed "My Bibliography".



Course List: 

Courses offered in the past four years.
indicates offered in the current term
indicates offered in the upcoming term[s]

CSCI 0150 - Computing for the Sciences      

Computing for the Sciences
In this course we will provide an introduction to the field of computer science geared towards students interested in mathematics and the natural sciences. We will study problem-solving approaches and computational techniques utilized in a variety of domains including biology, chemistry, physics, and engineering. Students will learn how to program in Python and other languages, how to extract information from large data sets, and how to utilize a variety of tools employed in scientific computation. The course has no prerequisites and assumes no prior experience with programming or computer science. (Juniors and Seniors by waiver) 3 hrs. lect./lab DED

Fall 2018, Fall 2019, Fall 2021

More Information »

CSCI 0312 - Software Development      

Software Development
This course examines the process of developing larger-scale software systems. Laboratory assignments emphasize sound programming practices, tools that facilitate the development process, and teamwork. (CSCI 0200 and CSCI 0201) 3 hrs. lect./lab

Spring 2018, Spring 2019, Spring 2020

More Information »

CSCI 0321 - Bioinformatics Algorithms      

Bioinformatics Algorithms
In this course we will explore and implement algorithmic solutions to modern biology questions. Students will be introduced to motivating biological questions—such as, “How do we compare DNA sequences?”—and then implement solutions to those problems using dynamic programming, graph, randomized, combinatorial and/or other algorithmic approaches. At the completion of the course students will be able to precisely define computational biology problems, design an algorithmic solution and implement that solution in software. No biology background is assumed, but students are expected to be able to implement sophisticated algorithms in Python or another language of their choice. (CSCI 201) 3 hrs. lect./lab. DED

Spring 2019, Spring 2022, Spring 2023

More Information »

CSCI 0416 - Parallel Computing      

Parallel Computing
Most modern computer architectures are parallel at multiple scales. In this course students will learn to develop programs that can efficiently use those parallel resources to improve performance and solve ever larger problems. Through a project-based survey students will be introduced to parallel hardware (multicore processors, clusters, GPUs), memory models (shared vs. non-shared), locality, synchronization, and different parallel programming models (threads, MapReduce, message-passing, SIMT, and more). Programming assignments will be implemented in multiple languages. (CSCI 202) 3hrs. lect./lab DED

Spring 2020

More Information »

CSCI 0433 - Compiler Design      

Compiler Design
An introduction to the design and construction of compilers and translators. Topics include context-free grammars, lexical analysis, symbol tables, top-down and bottom-up parsing, parser generators, error recovery, run-time organization, declaration processing, type checking, code generation, and optimization. Through the course of the semester students will implement a complete compiler for a simple programming language. (CSCI 0202 and CSCI 0301) 3 hrs. lect./lab DED

Fall 2019

More Information »

CSCI 0500 - Advanced Study      

Advanced Study
Individual study for qualified students in more advanced topics in computer science theory, systems, or application areas. Particularly suited for students who enter with advanced standing. (Approval required) 3 hrs. lect.

Winter 2018, Spring 2018, Fall 2018, Winter 2019, Spring 2019, Fall 2019, Winter 2020, Spring 2020, Fall 2020, Winter 2021, Spring 2021, Fall 2021, Winter 2022, Spring 2022, Fall 2022, Winter 2023, Spring 2023

More Information »

CSCI 0701 - Senior Seminar      

Senior Seminar
This senior seminar provides a capstone experience for computer science majors at Middlebury College. Through lectures, readings, and a series of two to three week individual and group assignments, we will introduce important concepts in research and experimental methods in computation. Examples will include: reading research papers; identifying research problems; dealing with big data; experimental design, testing and analysis; and technical writing in computer science. (Approval only).

Spring 2018, Fall 2018

More Information »

CSCI 1007 - Human Genome Analysis      

Practical Analysis of a Personal Genome
In this hands-on laboratory-style course, we will analyze a human genome starting from the raw sequencing data (publicly available). Using databases, scientific literature and other resources, students will formulate hypotheses about that person’s ancestry, physical traits, and disease susceptibility based on the genomic data. At the conclusion of the course, students will be able to describe the science underlying human genome analysis, employ and interpret the results of bioinformatics software tools, and debate the ethical, legal and social implications of personal genomics. No biology background is assumed, but students are expected to be able to use command-line software tools. (CSCI 101 or CSCI 150) DED WTR

Winter 2019

More Information »

MBBC 0700 - Senior Research      

Senior Thesis
Seniors conducting independent study in Molecular Biology and Biochemistry should register for MBBC 0700 unless they are completing a thesis project in which case they should register for MBBC 0701. (Approval required).

Winter 2019, Spring 2019, Winter 2020, Spring 2020, Winter 2021, Spring 2021, Winter 2022, Spring 2022, Winter 2023, Spring 2023

More Information »

MBBC 0701 - Senior Thesis      

Senior Thesis
Students conducting independent thesis research in Molecular Biology and Biochemistry must register for MBBC 0701 while completing research projects initiated in BIOL 0500, MBBC 0700, or CHEM 0400. Students will organize and lead regular discussions of their research and research methods, and attend weekly meetings with their designated laboratory group to foster understanding of their special area, and practice the stylistic and technical aspects of scientific writing needed to write their thesis. (CHEM 0400 or BIOL 0500 or MBBC 0700) (Approval required).

Winter 2019, Spring 2019, Winter 2020, Spring 2020, Winter 2021, Spring 2021, Winter 2022, Spring 2022, Winter 2023, Spring 2023

More Information »