Kevin Lin

Creating effective, equitable, accessible CS education.

he/him Schedule a meeting

Do Abstractions Have Politics?

Towards a More Critical Algorithm Analysis

Implementation of Mastery Grading Towards Rightful Presence

Moving a step closer to justice-centered CS education.

Flipped classroom remote teaching

How we run class in my remote, introductory programming course.

Programming a Better Future

How computer scientists can undo the social dilemma.

Learning from errors

Self-regulation and metacognition in algorithm design.

Restorying Computing

Developing a critical computing theory.

Nifty Web Apps

Build a web app for any programming assignment.

Grading for equity

On the question of programming as art versus science.

Text Classifier

Implementing a decision tree data type for text classification.


A look back at the 2019 through 2020 academic year.

Evidence-based and equity-based computing education

An introduction to four areas of evidence-based and equity-based teaching.

End-user programming

When it's really not about the turtles all the way down.

Course reflections

Online learning in CSE 143: Computer Programming II.

Programming the world

Design principles for the future of computing instruction.

From peer instruction to POGIL

Improving equity in CS education with guided lecture notes.

Data structures course transformation

Design principles for the intersection of theoretical and practical CS.

Office hours as a tool of oppression

A critical review of power and pedagogy in large-scale office hours.

Towards robust CS education

Equitable CS education in higher-ed: a 2-year retrospective on teaching to groups.

Contraction Hierarchies

Parallelism for efficient real-world route searching.

Just the Class

A Jekyll template for course websites.

You're spamming the autograder

A lesson in user-testing, expectations management, and course integration.

Sending mixed messages

Do as I say, not as I do.

On GPS Syndrome

The code is never the focal point.

Microeconomics of the faculty job search

An institution's most important resource is its people.

A Connector Course for Pre-service CS Teacher Development

Bootstrapping pre-service CS teacher training with CS0.

A Berkeley View of Teaching CS at Scale

The road to 27,000 student enrollments per year, and what lies ahead.

Formative feedback in intro CS

Deploying in-class paper quizzes: from 40 to 400 to 1,400.

Teaching faculty job search

A five year, non-traditional path into academia.

Near-Peer Student Mentors

Creating scalable learning experiences in large lecture courses.

Subgoals, Problem Solving Phases, and Sources of Knowledge

A complex mangle.

The medium is the message

Understanding what a computer is, and what it can do.

Teaching to groups

Advice for leading sections, and other thoughts from shadowing undergrad TAs.

How to Learn CS

High-level learning techniques for how to succeed in CS 1 courses like CS 61A.