Middlebury

 

David Kauchak

Assistant Professor of Computer Science

Email: 
Phone: work802.443.5581
Fax: fax802-443-2072
Office Hours: Mon. 3:00 - 4:00 PM, Tues. & Thurs. 10:00 - 11:30 AM, and by appointment
Download Contact Information

Courses

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 common technique employed in scientific computation. The course has no prerequisites and assumes no prior experience with programming or computer science. 3 hrs. lect./lab

DED

Fall 2011, Fall 2012, Fall 2013, Spring 2014

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. (One CSCI course at the 0100-level) 3 hrs. lect./lab

DED

Spring 2014

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, and on the underlying data structures to support these algorithms. Topics include computational complexity, analysis of algorithms, proof of algorithm correctness, advanced data structures such as balanced search trees, and also important algorithmic techniques including greedy and dynamic programming. The course complements the treatment of NP-completeness in CSCI 0301. (CSCI 0200 and CSCI 0201) 3 hrs. lect./disc.

DED

Spring 2012, Spring 2013

More Information »

CSCI 0311 - Artificial Intelligence      

Artificial Intelligence
Artificial Intelligence (AI) is the study of computational systems that exhibit rational behavior. Applications include strategic game playing, medical diagnosis, speech and handwriting recognition, Internet search, and robotics. Course topics include intelligent agent architectures, search, knowledge representation, logical reasoning, planning, reasoning under uncertainty, machine learning, and perception and action. (CSCI 0200 and CSCI 0201) 3 hrs. lect./lab

DED

Spring 2013

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 previously or concurrently, and CSCI 0201) 3 hrs. lect./lab

Spring 2012

More Information »

CSCI 0451 - Machine Learning      

Machine Learning
Machine Learning is the study and design of computational systems that automatically improve their performance through experience. This course introduces the theory and practice of machine learning and its application to tasks such as database mining, pattern recognition, and strategic game-playing. Possible topics include decision-tree methods, neural networks, Bayesian and statistical methods, genetic algorithms, and reinforcement learning. (CSCI 0200 and CSCI 0201) 3 hrs. lect./lab

DED

Fall 2013

More Information »

CSCI 0457 - Natural Language Processing      

Natural Language Processing
In this course we will explore computational models for processing natural (human) language. We will introduce statistical and algorithmic techniques for processing language at the word, syntactic, and semantic levels in the context of a number of application areas including language translation, parsing, summarization, information extraction, and language modeling. Assignments will involve constructing and modifying systems and will incorporate a variety of large corpora. (CSCI 0200 and CSCI 0201) 3 hrs. lect./lab

DED

Fall 2011

More Information »

CSCI 0458 - Information Retrieval      

Information Retrieval
In this course we will explore how search engines work. Topics to be covered include basic text processing, index construction, text similarity, evaluation, and searching other types of media. We will examine related application areas such as language modeling, clustering, classification and e-commerce. This course is project driven: through the assignments and final project we will build a functioning search engine. (CSCI 0201)

DED

Fall 2012

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.

Fall 2011, Winter 2012, Spring 2012, Fall 2012, Winter 2013, Spring 2013, Fall 2013, Winter 2014, Spring 2014, Fall 2014, Spring 2015

More Information »

CSCI 1020 - Lego Robot Design Studio      

Lego Robot Design Studio
This course gives students the opportunity to design, build, and program small, mobile robots using Lego pieces, tiny onboard computers, and a variety of sensors and actuators. In this context, we will explore important concepts from computer science such as structured programming, abstraction, reasoning under uncertainty, real-time control, and elementary robotics. We will also engage other disciplines, including creative design, mechanics, and electronics. The course will culminate with a light-hearted robot talent show featuring the robots created by each team of 3 students. No prior experience with programming or Lego is required.

DED WTR

Winter 2013

More Information »