All work

Program development

Developing a computer science program

A strong computer science program needs room for a first-time programmer and a student ready to pursue an original research question. My work connects those experiences through curriculum, laboratory design, and mentorship.

My role

Program leadership · Curriculum design · Laboratory development

Context

Ongoing at St. Paul’s School

40+

Students served annually by the advanced CS lab

3 → 6

Course expansion at Taft, 2020–2024

THE CHALLENGE

Give students both an entry point and somewhere to go.

An advanced elective is more useful when students have the foundations to engage with it. Program design means considering how introductory programming, mathematical reasoning, hardware, and independent inquiry fit together.

THE DESIGN

Build depth across different ways of computing.

At St. Paul’s, I manage a program spanning introductory computing, Java, Python, algorithms, mathematical foundations, machine learning, embedded systems, and applied AI and robotics. I developed advanced offerings and helped establish a dedicated laboratory that connects software with physical systems.

CURRENT TEACHING

Three entry points into deeper thinking.

Computational Programming Using Python develops programming through automation, data processing, and projects. Introduction to Programming Using Java moves from Karel to structured programs, testing, and code defense. Mathematical Foundations connects logic, proof, counting, and counterexamples to computational reasoning.

EVIDENCE

Curriculum and infrastructure developed together.

The advanced lab supports more than 40 students annually, with work involving machine learning, computer vision, robotics, and embedded systems. Earlier, at Taft, I expanded the computer science curriculum from three courses to six and built advanced offerings in algorithms, mathematical foundations, and machine learning.

DESIGN PRINCIPLE

The equipment should answer a learning need.

Arduino, ESP32, Raspberry Pi, and robotics become valuable when a course gives students a reason to use them. I start with the ideas students need to understand and design the projects and environment around those ideas.

Next

Student research & applied computing