Bill Pugh, A 5-time JavaOne rock star

Bill Pugh

Biography: Bill Pugh

William Pugh received a B.S. in Computer Science from Syracuse University and received a Ph.D. in Computer Science (with a minor in Acting) from Cornell University. He is currently a professor at the University of Maryland, College Park.

William Pugh is a Packard Fellow, and invented Skip Lists, a randomized data structure that is widely taught in undergraduate data structure courses.

He has also made research contributions in the fields of incremental computation, implementation of functional and object-oriented languages, the use of partial evaluation for hard real-time systems, in techniques for analyzing and transforming scientific codes for execution on supercomputers, and in a number of issues related to the Java programming language, including the development of JSR 133 - Java Memory Model and Thread Specification Revision.

Prof Pugh's current research focus is on developing tools to improve software productivity, reliability and education. Current research projects include FindBugs, a static analysis tool for Java, and Marmoset, an innovative framework for improving the learning and feedback cycle for student programming projects.

Software Passion: Effective software development





Presentation: "Defective Java: Mistakes that matter"

Track: SOFTWARE TOOLS / Time: Wednesday 14:45 - 15:45 / Location: Filuren, Musikhuset

This talk will describe various Java coding mistakes made by experienced developers in production code. You'll learn things to watch out for, and various techniques for finding the mistakes. In practice, code contains lots of mistakes that don't cause serious problems in practice, so I'll suggest ways to focus on the mistakes that matter. As part of this discuss the use of of static analysis in general, and FindBugs in particular, as well as the new cloud-based community review provided by FindBugs 2.0.
Keywords: Java, coding mistakes, puzzlers, static analysis, FindBugs

Target audience: The talk will be directly helpful to Java developers of all experience levels and those looking to improve the effectively of Java software development teams. Many of the approaches and strategies will be useful to developers using other programming languages, even if the specific coding mistakes and tools are not directly relevant.