Kevin Lin

CS Educator. Social/Data/Computer Scientist.

Schedule a meeting

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

Efficient Real-World Route Searching

Just the Class

A Jekyll template for developing 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.

Historical Perspectives on CS Education

And a few other notes for the CS educator in-progress.

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.


A review of Papert's seminal work in modern context, 38 years later.

How to Learn CS

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

Year One

"12 hours a week," you said? I can do that, too.