COVID-19: Essential Information

Matthew Dickerson

Professor of Computer Science

 work(802) 443-5460
 (for Fall 2021): Monday 1:30-3:00pm; Tuesday 12:45-1:20pm; Wednesday 2:45-4:00pm; Thursday 12:45-1:20pm
 75 Shannon 212


In 2014, Prof. Matthew Dickerson completed his 25th year as a member of the computer science department at Middlebury College. He earned a BA from Dartmouth College in 1985 and PhD in Computer Science from Cornell University, and was the first faculty member with a Ph.D. in computer science hired by the college. During his 25 years at the college he has received more than ten federal funded research grants including grants through the National Academy of Sciences, NATO, and various NSF programs. His primary research area  has been algorithms and data structures for geometric, geographic, and spatial computing—an area known as computational geometry in which he is internationally known for his work on Voronoi diagrams. He has also done research and published several papers on computer science education, and is in the final year of an NSF grant exploring the use of agent-based modeling in the introductory computer science curriculum. Currently, Professor Dickerson is working on a research project on spatially explicit agent-based modeling of killer whales in southeast Alaska in collaboration with biologists and computer scientists at the NOAA and the University of Alaska.

Prof. Dickerson also did graduate work in Old English Language and Literature and has  published several books including a recent medieval historical novel titled The Rood and the Torc, set in mid 7th century Europe. He is an internationally known scholar on the works of J.R.R.Tolkien with four published books about Tolkien as well as book chapters on Tolkien in five other volumes. 

Computer Science Research

Matthew Dickerson's primary areas of research in computer science are:

  • Algorithms and Data Structures for Computational Geometry
  • Individual-based Modeling and Multi-agent Simulation in Ecology
  • Computer Science Education
  • Geographic Information Systems

Perhaps a broader category describing Dickerson's research interest in spatial computation, which includes geometric and geographic computation, as well as many types of modeling that explicit represent space or "environment". Since coming to Middlebury College, he has published more than 40 papers and videos, and received 9 federal funded grants for his research in computational geometry. His work on Voronoi Diagrams and the Minimum Weight Triangulation is internationally known. He has also served as national president of CCSC (Consortium of Computing Sciences in Colleges) as well as a regional board member of the Northeast CCSC (CCSCNE). He has published several articles and videos on computer science education.

Writing and Literature

Matthew Dickerson has also continued his research and writing about literature, with a special interest in environmental literature and nature writing, and in mythopoeic literature (especially that of J.R.R.Tolkien and C.S.Lewis). He is also an internationally known Tolkien scholar. He has published several books about literature, including: Ents, Elves and Eriador: the Environmental Vision of J.R.R.Tolkien (with Jonathan Evans, University Press of Kentucky, 2006) and Narnia and the Fields of Arbol: the Environmental Vision of C.S.Lewis (with David O'Hara, University Press of Kentucky, 2009) which bring together his interests in environmental and mythopoeic literature. His other titles include:

  • From Homer to Harry Potter: a Handbook of Myth and Fantasy (Brazos Press, 2006)
  • Following Gandalf: Epic Battles and Moral Victory in the Lord of the Rings (Brazos Press, 2004)
  • Hammers and Nails: the Life and Music of Mark Heard (Cornerstone Press, 2004)
  • The Finnsburg Encounter (Crossway Books, 1991)


Course List: 

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

CRWR 0701 - Senior Thesis:Creative Writing      

Senior Thesis: Creative Writing
Discussions, workshops, tutorials for those undertaking one-term projects in the writing of fiction, poetry, or creative nonfiction.

Spring 2020, Spring 2021, Spring 2022, Spring 2023

More Information »

CSCI 0110 - Programming through Simulation      

Introduction to Programming through Simulation
In this course we will introduce computer programming through the exploration and writing of computer simulations with applications to ecological sciences and social sciences. We will use NetLogo as a software/programming tool for developing agent-based simulations. Students will learn basic programming constructs such as variables, conditionals, loops, procedures, and recursion as well as tools for experimenting with computer simulations. No prior experience in programming is expected or required. (not open to students who have taken CSCI 0145 or higher) (formerly CSCI 0190) 3 hrs. lect./disc. 1 hour lab. DED

Fall 2021

More Information »

CSCI 0200 - Math Foundations of Computing      

Mathematical Foundations of Computing
In this course we will provide an introduction to the mathematical foundations of computer science, with an emphasis on formal reasoning. Topics will include propositional and predicate logic, sets, functions, and relations; basic number theory; mathematical induction and other proof methods; combinatorics, probability, and recurrence relations; graph theory; and models of computation. (CSCI 0145 or CSCI 0150) (Juniors and Seniors by waiver) 3 hrs. lect./lab DED

Spring 2022, Spring 2023

More Information »

CSCI 0201 - Data Structures      

Data Structures
In this course we will study the ideas and structures helpful in designing algorithms and writing programs for solving large, complex problems. The Java programming language and object-oriented paradigm are introduced in the context of important abstract data types (ADTs) such as stacks, queues, trees, and graphs. We will study efficient implementations of these ADTs, and learn classic algorithms to manipulate these structures for tasks such as sorting and searching. Prior programming experience is expected, but prior familiarity with the Java programming language is not assumed. (CSCI 0145 or CSCI 0150) (Juniors and Seniors by waiver) 3 hrs. lect./lab DED

Fall 2021

More Information »

CSCI 0301 - Theory of Computation      

Theory of Computation
This course explores the nature of computation and what it means to compute. We study important models of computation (finite automata, push-down automata, and Turing machines) and investigate their fundamental computational power. We examine various problems and try to determine the computational power needed to solve them. Topics include deterministic versus non-deterministic computation, and a theoretical basis for the study of NP-completeness. (CSCI 0200 and CSCI 0201) 3 hrs. lect./disc. DED

Spring 2019, Fall 2019, Spring 2020, Spring 2021

More Information »

CSCI 0302 - Algorithms and Complexity      

Algorithms and Complexity
This course focuses on the development of correct and efficient algorithmic solutions to computational problems, on the underlying data structures to support these algorithms, and on the social implications of algorithms. Topics include computational complexity, analysis of algorithms, proof of algorithm correctness, some advanced data structures, algorithmic techniques including greedy and dynamic programming, and the consequences of real-world applications of algorithms. The course complements the treatment of NP-completeness in CSCI 0301. (CSCI 0200 and CSCI 0201) 3 hrs. lect./disc. DED

Fall 2018, Fall 2021

More Information »

CSCI 0390 - Spatial Agent-Based Modeling      

Spatial Agent-Based Modeling
In this course students will learn efficient data structures and design techniques for spatially-explicit agent-based modeling using the NetLogo programming language. Agent-based modeling techniques will be applied to problems in the social and natural sciences (such as graph pandemic modeling and population dynamics), mathematics and computational sciences (such as graph algorithms), and agent-based games. We will also explore some advanced programming features of NetLogo. Students will design and implement a significant term software project. (CSCI 0201). DED

Spring 2018, Winter 2021, Spring 2022, Spring 2023

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).

Fall 2020

More Information »

ENVS 0500 - Independent Study      

Independent Study
In this course, students (non-seniors) carry out an independent research or creative project on a topic pertinent to the relationship between humans and the environment. The project, carried out under the supervision of a faculty member with related expertise who is appointed in or affiliated with the Environmental Studies Program, must involve a significant amount of independent research and analysis. The expectations and any associated final products will be defined in consultation with the faculty advisor. Students may enroll in ENVS 0500 no more than twice for a given project. (Approval only)

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

More Information »

FYSE 1200 - J.R.R. Tolkien Middle-earth      

J.R.R. Tolkien's Middle-earth
In this course we will explore the philology, philosophy, ecology, and theology of J.R.R.Tolkien as expressed in his Middle-earth Legendarium. We will begin with close readings of The Hobbit, The Lord of the Rings, and The Silmarillion, looking at the literary aspects of the storytelling and exploring important sources and influences including Beowulf and Norse mythology. We will then turn to the specific tasks of exploring the four subjects mentioned above, making use of secondary scholarship such as: Shippey’s J.R.R.Tolkien Author of the Century and Kreeft’s The Philosophy of J.R.R.Tolkien. Some emphasis will be given to Tolkien’s environmental vision. 3 hrs. sem. CW LIT

Fall 2019, Spring 2021

More Information »

WRPR 0204 - Narratives on Rivers & Ecology      

Narratives on Rivers, Nature, and Ecology
In this course we will travel to Acadia National Park in Maine for several days for place-based experiential learning and writing. The remaining time will be spent on campus in Middlebury. We will practice non-fiction story telling with a focus on narrative essay-writing about rivers and water as places that are ecologically, emotionally, imaginatively, and spiritually significant.  We will also explore other forms of narratives, including story-telling through combination of image and word. Students should be prepared to travel off-campus for four days and three-nights and to spend time outdoors traipsing through woods along rivers and streams. Travel costs are covered. Registration is by approval only from the instructor. Questions about travel and financial or time implications of missed work or practice should also be directed to the instructor, Prof. Matthew Dickerson. (Approval Only) CW WTR

Winter 2019

More Information »