Computational Literacies Lab

Syllabus

  • Course Code: LAI 676
  • Instructor Name: Dr. Chris Proctor
  • Class Times: To be determined
  • Format: Remote, asynchronous with weekly meetings
  • Email Address: chrisp@buffalo.edu
  • Office Location: Baldy 510
  • Office Hours: By appointment
  • Credits: 3

Course Description

This introductory course on computer programming simultaneously teaches beginners the fundamentals of computer programming while using that learning experience as a context for developing pedagogical content knowledge of how programming is most effectively taught and learned. The course is also designed for graduate students in the social sciences, arts, and humanities who want to use computational methods in research or art.

The Pedagogy of Programming follows the curriculum of Making With Code, a two-year CS course developed around the principles of Constructionism and aimed at high school students. This course is divided into two parts, each tracking one year of the curriculum.

Part I

Part I consists of three units: Drawing, Data Science, and Games. These units are a tour through three programming paradigms, or ways of approaching computational problems: imperative, functional, and object-oriented. 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. The three units comprising Part II are Networking, Hardware, and Web Applications.

Learning Outcome and Program Goals

This course's learning outcomes are closely aligned with the UB CS Teacher Preparation Program's CS Content Knowledge outcomes (and also with with the core concepts outlined in New York’s Computer Science and Digital Fluency Standards).

  • Impacts of computing
  • Computational thinking
  • Networks and system design
  • Cybersecurity

The course also focuses on several of the UB CS Teacher Preparation Program's CS Pedagogical Content Knowledge outcomes:

  • Supporting learner identities
  • Teaching with computational media
  • Feedback and assessment

The Pedagogy of Programming is part of all of UB's CS Teacher Preparation tracks, and will be of interest as an elective for teacher preparation candidates in other areas as well as doctoral students interested in computing education or the learning sciences.

Mode of Instruction

The Pedagogy of Programming meets in person. Regular attendance, preparation, and participation is essential and required.

Required Text and Materials

There are no texts required to be purchased for this course. All are accessible from this course website and from the Making With Code curriculum hosted at https://makingwithcode.org. You will need regular access to a computer running Mac OS, Windows, Linux, or Unix. iPads are not sufficient. Chromebooks will work if you are allowed to install the Linux app. (In a pinch, you could complete this class using a Raspberry Pi.) You will also need a stable Internet connection. If any of these pose a challenge for you, please contact me and we'll figure it out.

Course Assignments

Each unit of this course is structured around labs, problem sets, and a project. Labs are social, collaborative experiences whereas problem sets are designed to check your understanding. Projects are open-ended.

Grading

A student’s course grade is the weighted average of assignment grades, with weights as shown in the table below.

CategoryWeightingGrading criteria
Labs20%Graded on completeness.
Problem sets20%Graded on correctness.
Journal20%Graded according to rubric.
Projects40%Each project graded according to rubric.