Profile of <span>Andrea Vaccari</span>
Office
75 Shannon 217
Tel
(802) 443-2250
Email
avaccari@middlebury.edu
Office Hours
Spring 2024: Monday 7-8:30pm (online: email for zoom link); Thursday 4-6:30pm (75SHS217)

I received my M.S. in physics from the Università degli Studi di Milano, Italy in 1996 and my Ph.D. degree in electrical engineering from the University of Virginia, Charlottesville, in 2014.

In 1998, I started working at the National Radio Astronomy Observatory where I was responsible for the design, development and production of the Atacama Large Millimeter Array (ALMA) Front End embedded monitor and control system until 2012. I joined the Virginia Image and Video Analysis (VIVA) laboratory in the Department of Electrical and Computer Engineering at the University of Virginia in 2010. After receiving my Ph.D., I continued to work there as research scientist and instructor for undergraduate and graduate courses. In January 2018 I moved to Vermont and joined the Department of Electrical and Biomedical Engineering at the University of Vermont as lecturer and, in July 2018, I became assistant professor of Computer Science at Middlebury College.

My main research interests include image and signal processing with emphasis on remote sensing and biomedical/biological images, model-based data mining for large spatiotemporal datasets, and graph signal processing as well as novel approaches in experiential undergraduate and graduate education.

Courses Taught

Course Description

Introduction to Computing
In this course we will provide a broad introductory overview of the discipline of computer science, with no prerequisites or assumed prior knowledge of computers or programming. A significant component of the course is an introduction to algorithmic concepts and to programming using Python; programming assignments will explore algorithmic strategies such as selection, iteration, divide-and-conquer, and recursion, as well as introducing the Python programming language. Additional topics will include: the structure and organization of computers, the Internet and World Wide Web, abstraction as a means of managing complexity, social and ethical computing issues, and the question "What is computation?" (Juniors and Seniors by waiver) (formerly CSCI 0101) 3 hr. lect./1 hr. lab

Terms Taught

Spring 2022, Spring 2024

Requirements

DED

View in Course Catalog

Course Description

Computer Architecture
A detailed study of the hardware and software that make up a computer system. Topics include assembly language programming, digital logic design, microarchitecture, pipelines, caches, and RISC vs. CISC. The goal of the course is teach students how computers are built, how they work at the lowest level, and how this knowledge can be used to write better programs. (CSCI 0201) (Seniors by waiver) 3 hrs. lect./lab

Terms Taught

Spring 2020, Fall 2020, Spring 2021, Fall 2021, Fall 2023

Requirements

DED

View in Course Catalog

Course Description

Embedded Systems
In this course we will learn about microcontrollers (compact single-chip integrated circuits at the core of embedded systems), including their architecture and how they interface with the outside world. In laboratory assignments, we will experiment with different families of microcontrollers, analyze various types of interfaces, and learn how to connect with external sensors and devices. While gaining hands-on familiarity with the different aspects of embedded systems, teams of students will engage in a semester-long project to design and build their own embedded system. (CSCI 0202) 3 hrs. lect./1.5 hrs. lab.

Terms Taught

Fall 2021

Requirements

DED

View in Course Catalog

Course Description

Image Processing
In this course students will learn basic image processing concepts and explore practical cross-disciplinary case studies in teams. They will use open-source tools to tackle real-world image and video analysis problems ranging from enhancing and denoising to tracking and extracting information from images and videos. Collaboratively, students will get to apply these tools to a problem of their choice in a semester-long project. (MATH 0200 and CSCI 201) 3 hrs. lect./lab.

Terms Taught

Spring 2024

Requirements

DED

View in Course Catalog

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

Fall 2020, Spring 2021, Fall 2021, Spring 2022, Fall 2022, Spring 2023, Fall 2023, Winter 2024, Spring 2024, Fall 2024, Winter 2025, Spring 2025

View in Course Catalog

Course Description

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. This course fulfills the Responsible Computing requirement for the Computer Science major. (Approval only).

Terms Taught

Spring 2021

View in Course Catalog

Course Description

Carbonomics and Renewable Energy at Middlebury College
What is the cycle of carbon from its generation to its exchange on the market? What are the environmental, social, and equity impacts associated with renewable energy projects and assets? How does Middlebury generate, manage, and monitor its growing and increasingly complex portfolio of renewables to reach carbon neutrality? We will explore these questions through lectures and group projects. By the end of this course students will be able to propose ways to optimize the management of Middlebury’s portfolio with an understanding of its relationship to financial, equity, and environmental considerations.

Terms Taught

Winter 2021

Requirements

WTR

View in Course Catalog