Daniel Scharstein
Charles A. Dana Professor Emeritus of Computer Science
 
          - Office
- 75 Shannon 214
- Tel
- (802) 443-2438
- schar@middlebury.edu
- Office Hours
- On Leave 2023-24
Daniel Scharstein studied Computer Science at the Universität Karlsruhe, Germany, and received his PhD from Cornell University in 1997. His research interests include computer vision, in particular stereo vision, and robotics. He maintains several online computer vision benchmarks at http://vision.middlebury.edu.
Courses Taught
      
        
          CSCI 0313
                            
        Programming Languages
      
      
    
  
  Course Description
Programming Languages
 A systematic approach to concepts and features of programming languages. The course focuses on four major programming paradigms: procedural, object-oriented, functional, and logic programming languages. Students will program in several languages representing the different paradigms. Topics include grammars, data types, control structures, run-time organization, procedure activation, parameter passing, higher-order functions, lambda expressions, and unification. (CSCI 0200 and CSCI 0202) 3 hrs. lect./lab
Terms Taught
Requirements
      
        
          CSCI 0500
                            
        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 0701
                            
        Senior Seminar
      
      
    
  
  Course Description
Senior Seminar
 The senior seminar provides a capstone experience for computer science majors at Middlebury College. We will discuss strategies for conducting research and developing large-scale software while effectively communicating technical concepts through writing and presentations. In teams, students will identify a research question or software development project and then design, develop, test and analyze their final products. Lectures will be complemented by readings and discussions related to the impacts of computing on society. This course fulfills the Responsible Computing requirement for the Computer Science major.
Terms Taught