David Pritchard
daveagp@gmail.com
Software Engineer
Google Los Angeles
My Blog: QED and NOM. Use RSS! I use feedly.com.
Recent Projects
Family Tree: A simple static visualizer to show family tree information: hereditary structure, photos and notes. See the GitHub documentation, overview or demo.
Computer Science Circles: learn Python from the comfort of your own browser. Teach a student or a class, see their progress, and answer their questions. 2,500,000+ exercises solved. More…
Websheets: scaffolded exercise frontend with fluid fill-in-the-blank areas, allowing instructors to easily define new exercises. Java and C++ backends/exercises available.
C++ draw Library: an API for drawing in C++, suitable for beginners, capable of sophisticated animations. Sample assignment. See also the picture pixel-oriented class.
Java Visualizer: a new backend for the classic Python visualizer. Shows all steps of a program automatically. Fake C++ visualizer available.
These projects are open-source.
Other open-source contributions
- Python (1 line): https://bugs.python.org/issue16730
- Wordpress (1 line, taking 7 years): https://core.trac.wordpress.org/ticket/42957
- LinBox (ancient internship): https://github.com/linbox-team/linbox/blob/master/ChangeLog
Research: My research includes web software for education, combinatorics, linear programs, approximation algorithms, probabilistic methods, and computational methods. Click here for my papers and talks.
Teaching Notes
- Guest lecture, May 2021, UCSD on hash functions, Bloom filters, Count-distinct/HyperLogLog
- Introduction to Programming in C++ at USC
- Individual topics: Linked Lists, Ajax, Java Threads
- Mathematical Software (LaTeX, Maple, GeoGebra), Sept–Oct 2012, University of Waterloo (online)
- Game Theory & Algorithms, Spring 2011, EPFL
- High school enrichment, math circles, and programming.
Where I've Been: USC (CSCI 103), Princeton (COS 126), CEMC (CS Circles), EPFL (Post-doc), Waterloo (PhD w/Jochen Könemann), MIT (M.Eng & B.S.), Scarborough