







Typically: * Chapter 1: Types * Chapter 2: Variables * Chapter 3: Operators/Math * Chapter 4: Control structures * Chapter 5: Arrays * Chapter 6: Functions * Chapter 7: Structs * Chapter 8: Classes and Objects * Chapter 9: Methods * Chapter 10: Inheritance and Polymorphism * Chapter 11: Some advanced thing X * Chapter 12: Some esoteric thing Y * Chapter
Brilliant | Your Personal Tutor for Math and Coding
Visual, interactive tutoring in math and coding, from 5th grade through college. Master concepts in algebra, calculus, Python, computer science, and more.

Learnable Programming
Here's a trick question: How do we get people to understand programming?
Category Theory for Programmers: The Preface
Table of Contents Part One Category: The Essence of Composition Types and Functions Categories Great and Small Kleisli Categories Products and Coproducts Simple Algebraic Data Types Functors Functo…

Motivating Adult Learners by Introducing Programming Concepts with Scratch
Novice programmers usually fail to combine abstract concepts and knowledge into program design, even though they know the syntax and semantics of individual statement. Adult novice programmers with little computer background knowledge might face more ...

Teaching iteration
I’ve written about the class I’d like to teach, but what I’ve been thinking about lately is the class I’d like to attend. Not necessarily now, but when I was growing up. In the 6th grade, let’s say…
Old and new apps, via modern coding agents
I have been interested in machine-assisted ways to do and teach mathematics from as far back as 1999, when I started coding several applets in Java 1.0, both for my complex analysis and linear alge…

Stop saying learning to code is easy.
(The photo above was taken at the Microsoft NYC office of three amazing young ...

The Definitive Guide to Understand Anything: Turning Code and Knowledge Into Graphs That Teach
You just joined a new team. The codebase is 200,000 lines of code. The original authors left a year ago. The documentation is a wiki last…

Modular: The Claude C Compiler: What It Reveals About the Future of Software
Compilers occupy a special place in computer science. They're a canonical course in computer science education. Building one is a rite of passage. It forces you to confront how software actually works, by examining languages, abstractions, hardware, and the boundary between human intent and machine execution.

Practical Foundations for Programming Languages
GATlab: Modeling and Programming with Generalized Algebraic Theories
Categories and categorical structures are increasingly recognized as useful abstractions for modeling in science and engineering. To uniformly implement category-theoretic mathematical models in software, we introduce GATlab, a domain-specific language for algebraic specification embedded in a technical programming language. GATlab is based on generalized algebraic theories (GATs), a logical system extending algebraic theories with dependent types so as to encompass category theory. Using GATlab, the programmer can specify generalized algebraic theories and their models, including both free models, based on symbolic expressions, and computational models, defined by arbitrary code in the host language. Moreover, the programmer can define maps between theories and use them to declaratively migrate models of one theory to models of another. In short, GATlab aims to provide a unified environment for both computer algebra and software interface design with generalized algebraic theories. In this paper, we describe the design, implementation, and applications of GATlab.

Callysto: Bringing Jupyter and Computational Thinking to the K-12 Curriculum
Cybera and the Pacific Institute for Mathematical Sciences are participating in the new national CanCode program, to develop coding and digital skills from kindergarten to grade 12. With the launch of the Callysto project, we are creating tools and frameworks that help teachers bring computational thinking into their math, science, social sciences, and humanities courses - giving students the analytical skills needed to comprehend the digital world. Leveraging the Jupyter 'All-in-One' Science Platform to put friendly yet powerful compute tools in classroom settings, we are creating showcase modules and workshop training for K-12 teachers to incorporate data and computing into the broad curriculum. At this presentation, you will learn about how Callysto will: Bring computational thinking to classrooms through K-12 teacher training Create opportunities to participate in free workshop training sessions and content creation Help K-12 teachers gain public recognition for participating in this educational training project Note: This presentation is related to our 2017 BCNET presentation on "Bringing The Thunder: Deploying Jupyter Notebooks For Research, Education, And Innovation." View Slidedeck
Teaching Programming for First-Year Data Science
This summary was generated using automated tools and was not authored or reviewed by the article's author(s). It is provided to support discovery, help readers assess relevance, and assist readers from adjacent research areas in understanding the work. It is intended to complement the author-supplied abstract, which remains the primary summary of the paper. The full article remains the authoritative version of record. Click here to learn more.

Hey, Computer Scientists! Stop Hating on the Humanities
Opinion: Computer science departments need to teach coders more than just how to code.

Making Programming Visual, Spatial, and Learnable
What's wrong with linear, static programming mediums and how might we improve them?

Learning to code is overrated: An accomplished programmer would rather his kids learn to read and reason
Mayor de Blasio is winning widespread praise for his recent promise that, within 10 years, all of New York City’s public schoolchildren will take computer science classes. But as a career programmer who founded two successful software…
