John Mitchell

John Mitchell

PhD, MIT (1984)


"Over my 30 years at Stanford, I have done research on programming languages, computer security and education. I spent six years as vice provost. returning to the computer science department in 2018 and beginning my term as department chair in 2019.

"In the area of programming languages, I have worked on type systems, modularity, and mathematical methods for proving properties of programming languages. A portion of this work helped establish the tone and scope of current programming language conferences (POPL, PLDI, etc) and contributed to object, type, and module constructs in Java and other languages.

"In the area of computer security, our group worked on security of network protocols, authentication, authorization, privacy, and foundations of security. Among other topics, we developed a number of principles for web security and collaborated on the initial security architecture of the Chrome browser.

"My research in education started with development of Stanford CourseWare platform, which served as the foundation for initial flipped classroom experiments at Stanford and helped inspire the first massive open online courses (MOOCs) from Stanford. As vice provost, my team worked with more than 500 Stanford faculty members and instructors on over 1,000 online projects for campus or public audiences. I also co-founded the Lytics Lab to improve educational outcomes through data-driven, co-lead the Carta project, and set up collaboration with the San Francisco Unified School District around CS education.

"My current research focuses on blockchain, AI explainability, and CS education."

Computer security: access control, network protocols, and software system security. Programming languages, type systems, object systems, and formal methods. Applications of mathematical logic to computer science.

Don't see the course you want to renew? Write to to request renewal of a course offered before 2015.