Essential Computing Concepts — Learning Goals, Concepts, & Examples (Draft)

This document proposes a set of essential computing concepts and associated learning outcomes for a computing major as an alternative to CS2023 that leaves greater space for interpretation and institution-specific customization. See here for a more complete description of the motivation, context, and contributors to this project. We welcome feedback (e.g., alycebradykzooedu).


A. Read, Understand, and Analyze Models (expand all)

Essential Concepts⇓    

Illustrative Examples⇓

1. Read and understand code using multiple paradigms (including object-oriented and non-OO) ⇓

2. Analyze and predict complexity of code ⇓

3. Computers as Models: Understand how computers represent data and execute programs ⇓


B. Design and Create Using Models (expand all)

Essential Concepts ⇓    

Illustrative Examples ⇓

1. Design and create computing artifacts that solve problems using multiple paradigms ⇓

2. Describe or design a solution to a problem using appropriate models ⇓

3. Design computing artifacts for human stakeholders and the benefit of society ⇓


C. Use Math, Data, and Analytics for Computer Science (expand all)

Essential Concepts ⇓    

Illustrative Examples ⇓

1. Data Management and Analysis / Storing, Managing, and Analyzing Data ⇓

2. Understand mathematics enough to solve problems and learn new concepts ⇓


D. Be a Responsible Computing Practitioner (expand all)

Essential Concepts ⇓    

Illustrative Examples ⇓

1. Produce effective texts about computing systems and techniques for a variety of audiences and purposes ⇓

2. Collaborate effectively ⇓

3. Understand and apply socially-responsible design and analysis of computing systems ⇓

4. Learn to learn computing-related approaches and tools ⇓