Terence Parr

Associate professor and graduate program director
Computer Science

Office: HRN 532
Phone: 415 422-5707
Email: parrt at cs.usfca.edu
Mail: 2130 Fulton Street, HR532
Department of Computer Science
University of San Francisco
San Francisco, CA 94117

Office Hours: Any time door is open or by appointment
Fall 2008 Classes: CS601/CS342: Object-oriented Software Development / Software Engineering

CS652: Programming Languages
CS245: Data Structures and Algorithms

My Motto: "Why program by hand in five days what you can spend five years of your life automating?"


Terence Parr is a professor of computer science at the University of San Francisco where he continues to work on his ANTLR parser generator, http://www.antlr.org. Terence recently returned from years in industry where he co-founded jGuru.com. He herded programmers and implemented the large jGuru developers web site, during which time he developed and refined the StringTemplate engine. Terence has consulted for and held various technical positions at companies such as IBM, Lockheed Missiles and Space, NeXT, and Renault Automation. Terence holds a Ph.D. in Computer Engineering from Purdue University and was a postdoctoral fellow at the Army High-Performance Computing Research Center at the University of Minnesota where he built parallelizing FORTRAN source-to-source translators.

Educational philosophy:

I have two primary teaching goals regardless of the course subject matter. First, I try to dramatically increase a student's self-expectations and, of course, their knowledge about the subject. Being a good teacher means stretching students without discouraging them or destroying their confidence. Second, I insist that students learn self-reliance; students must attempt solutions on their own and then, if they have failed, come to me for help. Students must get used to learning new concepts and technologies, solving their own problems, and doing their own research. As a programmer, they will constantly have to keep up with the latest advances to avoid becoming unemployable.

Ultimately, computer science is about writing software. My objective is to make students better programmers. If that requires some theoretical knowledge, they will get it, but I avoid gratuitous formalisms and passing "fad" theories.

Alternate Identities

  • ANTLR: The parser/translator generator of the gods.
  • StringTemplate: The only template engine that enforces model-view separation; useful for code generation and dynamic web page construction.
  • jGuru.com: The largest independent site for Java developers. Find answers to your Java questions here. Over 6600 Java FAQ entries. (we sold jGuru in 2005).

jGuru.com Java Course Materials

These materials hosted by USF with permission from jGuru.com.


USF General Presentations