Do Abstractions Have Politics?
Towards a More Critical Algorithm Analysis
Creating effective, equitable, accessible CS education.
he/him Schedule a meetingTowards a More Critical Algorithm Analysis
Moving a step closer to justice-centered CS education.
How we run class in my remote, introductory programming course.
How computer scientists can undo the social dilemma.
Self-regulation and metacognition in algorithm design.
Developing a critical computing theory.
Build a web app for any programming assignment.
On the question of programming as art versus science.
Implementing a decision tree data type for text classification.
A look back at the 2019 through 2020 academic year.
An introduction to four areas of evidence-based and equity-based teaching.
When it's really not about the turtles all the way down.
Online learning in CSE 143: Computer Programming II.
Design principles for the future of computing instruction.
Improving equity in CS education with guided lecture notes.
Design principles for the intersection of theoretical and practical CS.
A critical review of power and pedagogy in large-scale office hours.
Equitable CS education in higher-ed: a 2-year retrospective on teaching to groups.
Parallelism for efficient real-world route searching.
A Jekyll template for course websites.
A lesson in user-testing, expectations management, and course integration.
Do as I say, not as I do.
The code is never the focal point.
An institution's most important resource is its people.
Bootstrapping pre-service CS teacher training with CS0.
The road to 27,000 student enrollments per year, and what lies ahead.
Deploying in-class paper quizzes: from 40 to 400 to 1,400.
A five year, non-traditional path into academia.
Creating scalable learning experiences in large lecture courses.
A complex mangle.
Understanding what a computer is, and what it can do.
Advice for leading sections, and other thoughts from shadowing undergrad TAs.
High-level learning techniques for how to succeed in CS 1 courses like CS 61A.