Introduction to Computer Science 2: Algorithms and Application

CS4384.01
Course System Home Terms Spring 2026 Introduction to Computer Science 2: Algorithms and Application

Course Description

Summary

Introduction to Computer Science 2 continues the design-recipe approach started in Introduction to Computer Science 1. We extend our toolkit from structural recursion into generative recursion, abstraction, and algorithmic problem-solving. Students move beyond simple data definitions to work with more sophisticated structures (trees, graphs, sets, maps) while beginning to reason about program efficiency and resource use. We will also learn habits of abstraction: designing functions that consume and produce other functions, developing modules for reuse, and thinking about scalability. Alongside these technical foundations, we connect algorithmic ideas to larger social and intellectual contexts, preparing students to carry both computational rigor and critical perspective into more advanced courses and applications.

 

Learning Outcomes

  • Design and test programs using generative recursion, higher-order functions, and abstraction.
  • Work with some abstract data types including lists, trees, stacks, queues, sets, and maps.
  • Apply some classic algorithmic strategies (divide-and-conquer, search, sorting, backtracking) and reason carefully about their correctness.
  • Analyze efficiency of programs, with attention to trade-offs in time, space, and clarity.
  • Practice modular design, building programs that are reusable, composable, and maintainable.

Prerequisites

CS2139: Introduction to Computer Science 1.

Please contact the faculty member : darcyotto@bennington.edu

Instructor

  • Darcy Otto

Day and Time

TU,FR 10:30am-12:20pm

Delivery Method

Fully in-person

Length of Course

Full Term

Academic Term

Spring 2026

Area of Study

Credits

4

Course Level

4000

Maximum Enrollment

30

Course Frequency

Once a year