Ananya Das
Associate Professor of Computer Science

- Office
- 75 Shannon 209
- Tel
- (802) 443-5841
- adas@middlebury.edu
- Office Hours
- On Academic Leave 2025-25
Courses Taught
CSCI 0201
Data Structures
Course Description
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 0146 or CSCI 0150) (Juniors and Seniors by waiver) 3 hrs. lect./lab
Terms Taught
Requirements
CSCI 0302
Upcoming
Algorithms and Complexity
Course Description
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.
Terms Taught
Requirements
CSCI 0311
Upcoming
Artificial Intelligence
Course Description
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. We will also discuss the social implications of AI systems. This course fulfills the Responsible Computing requirement for the Computer Science major. (CSCI 0200 and CSCI 0201) 3 hrs. lect./lab
Terms Taught
Requirements
CSCI 0500
Current
Upcoming
Advanced Study
Course Description
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.
Terms Taught
CSCI 0702
Upcoming
Senior Thesis
Course Description
Senior Thesis
The senior thesis is recommended for students interested in pursuing graduate study in Computer Science. Students will spend the semester researching and writing, and developing and experimenting as appropriate for their topic. All students will be expected to report on their work in the form of a written thesis, a poster, and an oral presentation at the end of the semester. In addition, throughout the semester, students will meet as a group to discuss research and writing, and will be expected to attend talks in the Computer Science lecture series. Before approval to join the class is granted, students are expected to have chosen a thesis adviser from the CSCI faculty, and determined a thesis topic with the guidance and approval of that adviser. (Approval required) 3 hrs. lect./disc.
Terms Taught
INTD 0109
Current
Posse Leadership Development
Course Description
Posse Scholars Leadership Development
This course is designed to promote the intellectual, social, and civic development of first-year Posse scholars, both individually and as a group. Students will attend weekly workshops drawing from the Posse Foundation’s leadership curriculum. Workshops will also draw on the instructor’s areas of expertise and will focus on topics most pertinent to students’ goals and needs. Some workshops will include guest lectures, experiential learning, and student-facilitated discussion. Students will reflect on their learning in bi-weekly meetings with the instructor, as well as in writing. They will also identify initiatives or projects they wish to promote on campus or in the local community, applying what they have learned. (This course is only open to sophomores.) (This is a half credit course.)
Terms Taught