CS145: Introduction to Computing

This course is the primary introduction to the Computer Science major or minor at Middlebury College.

Course Description

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

CSCI 0145 Middlebury Course Catalog

Course Modalities

  • Lectures will be delivered asynchronously (with reading quizzes replacing traditional labs).
  • Labs will be run remotely, but synchronously with a focus on supporting the weekly assignments.

Waiver Policy

Juniors and Seniors are by waiver in this course in order to prioritize those using it as a gateway to the Major. Anyone with interest will be allowed to take the course, limited only by not wanting to overwhelm the course staff (ASIs, TAs, etc.).


See more detailed information about the course in the online syllabus.