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
Twitter: Follow @the_antlr_guy for ANTLR/StringTemplate and related news.

Office Hours: Any time door is open or by appointment
Spring 2012 Classes: CS345: Programming Language Paradigms

Previous:
CS680: Web systems and algorithms
CS601: Principles of Software Development (Also CS342)
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?"

Facebook/linkedin requests

I regret that I cannot, in general, accept student connection requests given the vast number of students that go through USF.

Bio

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. For details, see Parr's Vita.

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.

Books

Publications Available via ACM online

ACM DL Author-ize serviceChronica: a temporal web search engine
Deniz Efendioglu, Chris Faschetti, Terence Parr
ICWE '06 Proceedings of the 6th international conference on Web engineering, 2006
ACM DL Author-ize serviceWeb application internationalization and localization in action
Terence Parr
ICWE '06 Proceedings of the 6th international conference on Web engineering, 2006
ACM DL Author-ize serviceEnforcing strict model-view separation in template engines
Terence John Parr
WWW '04 Proceedings of the 13th international conference on World Wide Web, 2004
ACM DL Author-ize serviceA language for creating and manipulating VRML
Terence J. Parr, Timothy F. Rohaly
VRML '95 Proceedings of the first symposium on Virtual reality modeling language, 1995

Tidbits

USF Stuff

USF General Presentations

Prior requirements:

jGuru.com Java Course Materials

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