COVID-19 Updates: Fall Semester

Christopher Andrews

Associate Professor of Computer Science

 work(802) 443-5686
 M 1:30p-3:30p, T 3:30p-4:30p, F 1:30p-2:30p, or by appointment (email for Zoom link)
 75 Shannon 215

Christopher Andrews is an Assistant Professor of Computer Science. He has a Ph.D. in Computer Science from Virginia Tech, an MS in Computer Engineering from Carnegie Mellon University and a BA in Theatre and Computer Science from Wesleyan University. Professor Andrews' research interests largely fall under the umbrella of Human Computer Interaction (HCI), the study of how computers can fit into and support human endeavors. More specifically, his interests include visual analytics, information visualization, generative art, graphics, and alternative (or just really large) displays.

Personal Homepage ""



Course List: 

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

CSCI 0101 - Introduction to Computing      

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) 3 hr. lect./1 hr. lab DED

Fall 2016, Spring 2019, Spring 2020

More Information »

CSCI 0105 - Algorithmic World      

Understanding Our Algorithmic World
In this course through lectures, labs, and discussions, we will examine the nature of computers and their role in our lives. We will use the lens of multimedia programming to learn basic computer programming and how computers represent and manipulate many common forms of data, such as text and images. We will also talk about the history of computers and learn how they interoperate to create the world we know today, and we will examine the societal impacts of technology on our lives, including implications for privacy, access to resources, and the increasing role of algorithms in shaping our world. (not open to students who have taken CSCI 0145 or higher) 3 hrs. lect./lab DED

Fall 2020

More Information »

CSCI 0202 - Computer Architecture      

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 DED

Fall 2018

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

Spring 2017, Spring 2019, Fall 2019, Fall 2020

More Information »

CSCI 0461 - Computer Graphics      

Computer Graphics
Computer graphics is the study of how computers represent, manipulate, and ultimately display visual information. In this course we will focus primarily on three-dimensional graphics, touching on topics such as modeling (meshes, hierarchical models, and transformations), rendering (lighting, texturing, rasterization, and clipping), animation, and GPU programming. We will look at the mathematical foundations of these techniques as well as implementation techniques using OpenGL. (CSCI 0202 and MATH 0200) 3 hrs. lect./lab DED

Fall 2016

More Information »

CSCI 0465 - Information Visualization      

Information Visualization
Information visualization is used to reveal patterns, trends, and outliers within abstract data. In this course we will cover topics such as the transformation of data to visual representations, common approaches to dealing with different types of data, perceptual issues that govern how visualizations are interpreted, and the development of interactive visualization tools. This course will culminate in a significant final visualization project. (CSCI 0201) DED

Fall 2018

More Information »

CSCI 0466 - Usable Mobile Interfaces      

Usable Interface Design for Mobile Applications
In this course we will explore the fundamental concepts of human-computer interaction and interface design. We will focus on applying an iterative, human-centric design process to mobile development. Topics will include user interface design, user experience, usability, prototyping, user testing, and mobile development. A significant portion of the class will be spent developing a mobile app, walking it through the various prototyping and testing stages. (CSCI 0312) 3 hrs. lect./lab. DED

Spring 2017, Fall 2019

More Information »

CSCI 0467 - Generative Art      

Generative Art
In this course we will explore the field of generative art – the artistic practice based on the creation of processes that yield art and design as an output. Through projects, we will find new applications for computing techniques such as visualization, physical simulation, stochastic processes, agent-based modeling, iterated function systems, fractals, genetic algorithms and machine learning. A portion of the class will also be devoted to reading research literature and discussing the nature of computation creativity. A background in art is not required. (CSCI 0201) (not open to students who have taken CSCI 1003) 3 hrs. lect./lab. ART DED

Spring 2020

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 2016, Winter 2017, Spring 2017, Winter 2018, Fall 2018, Winter 2019, Spring 2019, Fall 2019, Winter 2020, Spring 2020, Fall 2020, Winter 2021, Spring 2021

More Information »