Ph.D. Computer Science, Purdue University, 2004
M.S. Computer Science, Purdue University, 2000
B.S. Computer Science and Mathematics, Calvin College, 1998
About Thomas VanDrunen
Personal site >>
Since coming to Wheaton, most of my work has been in teaching programming,
whether an introductory course for beginners, an intermediate course in software development,
or advanced courses in programming languages or algorithm design. I also teach a course
that intertwines the topics of programming and discrete mathematics, for which I am composing
a textbook. My research interests are programming languages, compilers, and
My family and I live in Wheaton, a couple blocks from the college. We attend Bethel Presbyterian Church (OPC)
in Wheaton, where I teach junior high Sunday school. I enjoy reading New Testament Greek.
Why I Like Computer Science
Computer science provides the right balance between theory and practice. Computer science poses questions that are essentially specialized math problems and requires building software and systems. In my research on programming languages, I prove theorems about a language's properties or the correctness of transformations on a program. I also build compilers and interpreters for the languages. Both abstract reasoning and concrete problem-solving are necessary.
Courses Taught at Wheaton
- CSCI 235 Programming I: Problem Solving
- CSCI 243 Discrete Mathematics
- CSCI 245 Programming II: Object-Oriented Design
- CSCI 335 Software Development
- CSCI 365 Programming Languages
- CSCI 445 Analysis of Algorithms
- CSCI 494 Social and Ethical Issues
- "Java Interfaces in CS 1 Textbooks", paper presented at the Educators' Symposium at OOPLSA 2006, Portland, Oregon, October 2006.
- "Value-Based Partial Redundancy Elimination", paper presented at the International Conference on Compiler Construction, Barcelona, Spain, March 2004.
- "Why You Should or Should Not Go to Graduate School", talk at Calvin College computer science student organization, October 2003.
- General areas include programming languages, compilers, software engineering, design patterns.
- Specific projects include partial redundancy elimination for global value numbering and visitor-oriented programming.
- Association for Computing Machinery