David Bau

PhD student at MIT in Computer Science, working with Rob Miller and Antonio Torralba.

David Bau

I work on programmability and debugging of deep neural networks. Systems should be transparent to the people who use them.

My work investigates the following questions.

  • Can latent knowledge within deep neural networks be cleanly identified, debugged, encapsulated, and reused?
  • Can tools be created to allow programmers to effectively debug and design deep neural networks?

I am also interested in programming tools that make computer science more accessible to beginners and non-expert programmers. I believe that the technologies created by humanity should be programmable by all.


Industry Prior to starting at MIT, I worked in the software industry for 18 years, where I contributed to several widely used projects. At Google I was a staff software engineer on Google Image Search and Google Talk. At Microsoft I helped create Microsoft Internet Explorer and ASP.NET. At the startup Crossgain I helped create the Weblogic Workshop IDE. I have created several open-source projects including XMLBeans, seedrandom.js, and a and a variety of other hacks.
Pencil Code Together with my son I created Pencil Code, a programming tool for beginners that introduces several innovations that bridge the gap between beginner coding and mainstream programming. It has a block code editor that smoothly bridges to text, and it includes a turtle graphics environment that smoothly bridges to mainstream web programming. The system helps students transition to text-based programming remarkably quickly; I have published several papers about the system, its components, and its efficacy.
Numerical Linear Algebra I am coauthor of the textbook Numerical Linear Algebra, with Nick Trefethen, which I wrote while I was at Cornell. It provides a conceptual, mathematical introduction to the field. If you would like a principled overview of the fundamental algorithms behind Matlab, or if you are worried about things like the stability, conditioning, or the precision of floating-point arithmetic in your large matrix algorithms, the book is worth a read.
Academics I have an M.S. in Computer Science from Cornell, and an A.B. in Mathematics from Harvard.


Bau D, Gray J, Kelleher K, Sheldon J, Turbak F. 2016. Learnable Programming: Blocks and Beyond. Communications of the ACM, in press.

Saskham Aggarwal, D. Anthony Bau, and David Bau. 2015. A blocks-based editor for HTML code. In Blocks and Beyond Workshop (Blocks and Beyond), 2015 IEEE (pp. 83-85).

David Bau, D. Anthony Bau, Mathew Dawson, and C. Sydney Pickens. 2015. Pencil code: block code for a text world. In Proceedings of the 14th International Conference on Interaction Design and Children (IDC '15). ACM, New York, NY, USA, 445-448. DOI=http://dx.doi.org/10.1145/2771839.2771875.

Amy Briggs, David Bau, Caroline Meeks, and Pat Yongpradit. 2015. "Supporting the Computer Science Learning Process." In Proceedings of the 46th ACM Technical Symposium on Computer Science Education, pp. 269-270.

David Bau and D. Anthony Bau. 2014. A Preview of Pencil Code: A Tool for Developing Mastery of Programming. In Proceedings of the 2nd Workshop on Programming for Mobile & Touch (PROMOTO '14). ACM, New York, NY, USA, 21-24.

Zhao, J., Yagnik, J., Adam, H. and Bau, D., 2008, September. Large scale learning and recognition of faces in web videos. In Automatic Face & Gesture Recognition, 2008. FG'08. 8th IEEE International Conference on (pp. 1-7). IEEE.

Trefethen, Lloyd N., and David Bau. Numerical linear algebra. Vol. 50. Siam, 1997.

Bau, David, Induprakas Kodukula, Vladimir Kotlyar, Keshav Pingali, and Paul Stodghill. Solving alignment using elementary linear algebra. Springer Berlin Heidelberg, 1994.

Google Scholar Citations