The Pedagogy of Programming

The Pedagogy of Programming

Welcome to the UB Pilot of Making With Code!


This is a high-level overview of the curricular units that comprise this introductory course.

Part I

The first three units are a tour through three programming paradigms, or ways of approaching computational problems. The first and most straightforward paradigm is imperative, which sees programs as instructions for the computer. If you clearly understand the task and understand how to express it in a way the computer can understand, you can write an imperative program. The second paradigm is functional, which sees programs as transformations on data. Something comes in and something comes out. And the third paradigm is object-oriented, which sees programs as models of a problem space. When modeling real-world situations (a common example is transactions between banks, accounts, and customers), object-oriented problems create objects which represent the various actors in the situation and the ways they can interact.

Along the way, the curriculum is structured to gradually introduce you to the syntax of Python, basic computational ideas such as abstraction, data structures, and algorithms, as well as the tools and practices of the trade.

Part II

The second part of the course follows a spiral curriculum, deepening concepts introduced in Part I while rounding out some of the most important conceptual domains within CS.