Ananya Christman

Assistant Professor of Computer Science

 
 work(802) 443-5841
 Mondays 2:45pm \e2\80\93 3:45pm & Wednesdays/Fridays 11:00am \e2\80\93 12:00pm
 McCardell Bicentennial Hall 637

 

Courses

Course List: 

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

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

Fall 2014, Fall 2015, Spring 2017, Spring 2018

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 2015, Spring 2016, Fall 2016, Spring 2017, Spring 2018

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

Fall 2014, Fall 2016

More Information »

CSCI 0441 - Advanced Algorithms      

Advanced Algorithms
In this course we will discuss advanced algorithms such as advanced graph and networking algorithms, randomized algorithms, approximation algorithms, and online algorithms. We will learn advanced techniques for the design and analysis of these algorithms and explore a variety of applications. (CSCI 0302) 3 hrs. lect./disc. DED

Fall 2015

More Information »

CSCI 0463 - Cryptography      

Cryptography
Topics will be chosen from: classical cryptography, block ciphers and the Advanced Encryption Standard, public key cryptology, public key implementations, cryptographic hash functions, authentication techniques, digital signatures, advanced topics in mathematical cryptology. (CSCI 0301 or CSCI 0302) 3 hrs. lect./lab. DED

Spring 2015

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.

Spring 2014, Fall 2014, Spring 2015, Fall 2015, Spring 2016, Fall 2016, Winter 2017, Spring 2017, Winter 2018, Spring 2018, Spring 2019

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 2016

More Information »