VITA
Thomas W. Christopher, PhD.

Web sites and physical location

Computer consultant page: http://www.tools-of-computing.com/tc/

1140 Portland Place #205
Boulder CO 80304
303-709-5659(cell) 303-447-6441(land)

Currently

I am a consultant specializing in high performance computing and a trainer in the Python and Java programming languages, especially for concurrent, parallel, and networked applications. My recent HPC clients have included Sandia National Laboratory and Los Alamos National Laboratory.

I took two years off to write books, July 2000-June 2002. I have three out from a major publisher;

  • High-Performance Java Platform Computing: Multithreaded and Networked Programming, --- and George Thiruvathukal, Prentice Hall PTR, 2000, ISBN: 0130161640.
  • Web Programming in Python: Techniques for Integrating Linux, Apache, and MySQL , George Thiruvathukal, ---, and John Shafaee, Prentice Hall PTR, 2002, ISBN: 0-13-041065-9.
  • Python Programming Patterns, ---, Prentice Hall PTR, 2002, ISBN: 0-13-040956-1.

There is another one available on-line: Icon Programming Language Handbook. It is available for free download on the web.

Experience

Over twenty-two years as a professor of Computer Science, three years as a consultant in High Performance Computing.

Books

High-performance Java Platform Computing: Multithreaded and Networked Programming, --- and George Thiruvathukal, Prentice Hall PTR, 2000, ISBN: 0130161640.

Web Programming in Python: Techniques for Integrating Linux, Apache, and MySQL , George Thiruvathukal, ---, and John Shafaee, Prentice Hall PTR, 2002, ISBN: 0-13-041065-9.

Python Programming Patterns, ---, Prentice Hall PTR, 2002, ISBN: 0-13-040956-1.

Icon Programming Language Handbook. It is available for free download on the web.

Business

Principal of Tools of Computing LLC, a Chicagoland training company, that presented a series of Java short courses. Operating Manager 1997-2001.

Consultant in High Performance Computing, 2002 to present.

Parallel programming software systems

Consults in High Performance Computing, 2002 to present.

Designed and implemented the Tools of Computing's thread and active-messages packages (included in the High Performance Java Computing written with George Thiruvathukal.

Designed and implemented several versions of Message-Driven Computing (AMDC, Itinerant Actors, MDC90, LLMDC, OOMDC, MDC/C), which use a distributed-memory, pattern-driven-control paradigm. Ported MDC90 to Encore, Sequent, Transputers with LSC compiler, BBN Butterfly, CM5, and Paragon.

Designed and implemented MEMO, a system that provides interprocess communication through a shared directory of unordered queues.

Developed IIT's Parallel Processing course (CS546) and wrote the software (P2 and MEMO) to allow students to learn distributed-memory programming on IIT's shared-memory Encore and Silicon Graphics multi-processors.

Supervised PhD theses by W. O'Connell, G. Thiruvathukal on parallel programming environments based on task coordination and active object models.

Experimental computer science

Supervised PhD's experimental computer science: D. Bidwell and R. Wallace measuring the effectiveness of compiling techniques and D. Levine, R. Paden, and P. Wohl measuring the performance of parallel algorithms.

Taught experimental methods and scientific paper requirements in my parallel processing class.

Compilers and programming languages

Designed and implemented LL parser generators: TCLLk, an LL(k) parser generator, revising my earlier TCLL1, an LL(1) parser generator with panic-mode error recovery.  TCLLk transforms more general grammars into LL form using look-ahead trees where necessary to have more than a one-symbol look ahead. It appears to be better than LALR(1) with respect to generality of grammars, size of parsing tables, and error recovery.

Designed and implemented PARTRIDGE, an SLR(1) parser generator.

Supervised PhD's: Philip J. Hatcher, optimizing code generators using dynamic programming; Ralph Wallace, run-time compilation of optimized code for APL operations.

Have written compilers for Icon, EULER, FP, lambda-calculus languages, FORTRAN, LISP 1.5.

Designed the languages OOMDC, LLMDC, MDC90, all distributed memory, pattern-driven control languages, and implemented compilers and run-time systems for them.

Designed and implemented the language HARVEY (a Bliss-like language).

Regularly designed and explained the implementation of small programming languages for compiler construction courses.

Other software

Implemented algorithm animation applets. Sorting Algorithms. Readers/Writers. In-place rotations. LL(k) parsing inserting action symbols and look-ahead.

Designed and wrote a file system for a time-shared operating system.

Wrote a processor simulator.

Teaching

Taught mainly at the senior and graduate level in core areas of computer science: Parallel Processing (both shared memory and distributed memory paradigms), Principles of Programming Languages, Compiler Construction, Data Structures, Analysis of Algorithms, Java, and Principles of Operating Systems. Wrote class notes used as supplemental textbooks for Parallel Processing, Principles of Programming Languages, Compilers, and Java.

Developed and taught Java courses for Tools of Computing LLC. Taught (with George Thiruvathukal) the concurrency tutorial at Java Grande, June 14, 1999. Developed the Java short course curriculum for IIT, CS703, CS704, and CS705, CS706.

Taught with a visiting appointment at the University of Denver and at DePaul University in Chicago. At DU taught inter al. JavaScript, HTML, and Web programming.

Employment

Independent consultant, 2002-present. Clients include Sandia National Laboratories and Los Alamos National Laboratory.

Visiting Associate Professor, 1999-2000, DePaul University of Chicago, CTI. Visiting Lecturer, 2006-2007 at the University of Denver, CS Department.

Associate Professor, at IIT from 1984-1999, Illinois Institute of Technology, Department of Computer Science.

Assistant Professor 1978-1979, New York University, Department of Computer Science

Visiting Assistant Professor 1977-1978, Illinois Institute of Technology, Department of Computer Science

Instructor 1976-1977, Illinois Institute of Technology, Department of Computer Science

Staff Programmer 1972-1976, University of Chicago, Institute for Computer Research

Education

 

Doctor of Philosophy

in Computer Science, 1977, Illinois Institute of Technology, Chicago, Illinois

Dissertation entitled Transactions-Oriented Distributed Queuing System Simulation on Network Computers. It explores a technique for speeding up queuing system simulations by running them on a multicomputer--quite a difficult problem due to the global clock. Major contributions involve precomputing delays that transaction will encounter later allowing the clock to be moved in larger steps.

Master of Science

in Information Sciences, 1972, University of Chicago, Chicago, Illinois

Emphasis in programming, system software, compilers, and parallel processing.

Bachelor of Arts

with distinction in Economics, 1969, University of Oklahoma, Norman, Oklahoma

Phi Beta Kappa National Honor Society

Omicron Delta Epsilon National Honor Society (economics)

Robert Dean Bass Memorial Scholarship

One year of study in development economics at the University of Ghana

Books

High-Performance Java Platform Computing: Multithreaded and Networked Programming, --- and George Thiruvathukal, Prentice Hall PTR, 2000, ISBN: 0130161640.

Web Programming in Python: Techniques for Integrating Linux, Apache, and MySQL , George Thiruvathukal, ---, and John Shafaee, Prentice Hall PTR, 2002, ISBN: 0-13-041065-9.

Python Programming Patterns, ---, Prentice Hall PTR, 2002, ISBN: 0-13-040956-1.

Icon Programming Language Handbook, available for free download on the web.

(Under development: Make People Want To Repeat Your Words. This will be a book of procedures for finding ideas to communicate and for communicating them in a memorable fashion.)

Selected Publications

Christopher, T. W. "Exploration of the Limits That Grain Size Imposes on the Speed-Up and Efficiency of Two Transitive Closure Algorithms,'' Proceedings of the Fourth Annual Parallel Processing Symposium, Fullerton CA 1990.

Christopher, T. W. "Early Experience With Object-Oriented Message Driven Computing,'' The Third Symposium on the Frontiers of Massively Parallel Computation. Oct. 8-10, 1990. IEEE Computer Society Press. University of Maryland, College Park, Maryland.

Christopher, T. W. "A Technique for Damping Exponential Behavior in Reactive Object Algorithms with Invalidation,'' 1992 International Conference on Parallel Processing: Vol. II Software, Kang G. Shin (ed.), CRC Press, Aug. 17-21, pp. 20-23 1992.

O'Connell, William T., George K. Thiruvathukal, and Thomas W. Christopher. "Distributed-Memo: A Heterogeneous Parallel and Distributed Software Programming Environment,'' Proceedings of the 23rd International Conference on Parallel Processing, St. Charles, IL, Aug. 1994.

O'Connell, William T., George K. Thiruvathukal, and Thomas W. Christopher. "A Generic Modeling Framework for Heterogeneous Parallel and Distributed Computing,''    International Conference on Advanced Science and Technology '94 (ICAST '94), AT&T Bell Laboratories, Naperville, IL,  1994.

O'Connell, William T., George K. Thiruvathukal, and Thomas W. Christopher. "Distributed Memo Programming Language and System Architecture,''  Supercomputing '94, Washington DC 1994. (Poster).

O'Connell, William T., George K. Thiruvathukal, and T. W. Christopher. "Distributed-Memo: Heterogeneously Concurrent Programming With a Shared Directory of Unordered Queues,'' Proceedings of the Parallel, and Distributed Computing, and Systems Conference, Washington DC, Oct. 1994, accepted for publication in the International Journal of Mini and Microcomputers.

O'Connell, William T., George K. Thiruvathukal, and T. W. Christopher. "Distributed-Memo: Heterogeneously Distributed Directories of Unordered Queues,''    International Journal of Mini and Microcomputers, 1997.

Paden, R. L., T. W. Christopher. "The Statistical Comparison of Two Parallel Combinatorial Search Algorithms,''. Supercomputing '90, New York, NY., Nov. 12-16, 1990.

Paden, R. L., T. W. Christopher. "The Statistical Evaluation of a Hypercube Algorithm for the 0/1 Knapsack Problem,'' Proceedings of the 1990 International Conference on Parallel Processing, The Pennsylvania State University Press, University Park, PA., Aug. 1990, pp. 265-269.

Paden, R. L., T. W. Christopher. "The Empirical Evaluation of Combinatorial Search Algorithms on Shared and Distributed Memory MIMD Computers,'' Supercomputing '91, New York, NY., Nov. 18-22, 1991.

Thiruvathukal, George T., and Thomas W. Christopher. "A Simulation of Demand-Driven Dataflow: Translation of Lucid into Message Driven Computing Language,''  IEEE International Parallel Processing Symposium '91 (IPPS 91), Anaheim, CA, 1991.

G. K. Thiruvathukal, W. T. O'Connell, and T. W. Christopher, "Toward Scalable parallel Software: Interfacing von Neumann and non-von Neumann Programming Environments ," SIAM Parallel Processing Conference, San Francisco CA 1995. (Poster)

G. K. Thiruvathukal, W. T. O'Connell, and T. W. Christopher, "Distributed Memo System," IASTED Journal on Supercomputing, Special Issue, 1996.

G. Thiruvathukal, B. Cameron, T. Christopher, L. Oliveira, and P. Shafaee, "The Computational Neighborhood," Proc. of the First Workshop on Java, International Conference on Supercomputing, Rhodes, Greece, July 1999, to also appear in a special issue of Future Generation Computing Systems, Elsevier Press.

Wang, Ming-Hwa and Thomas W. Christopher. "Simulate CSP-Like Synchronous Communications By MDC Asynchronous Message Passing and Pattern Matching,'' 1992 International Conference on Parallel Processing: Vol. II Software, Kang G. Shin (ed.), CRC Press, pp. 2-9, Aug. 17-21, 1992.

Wohl, P. and Thomas W. Christopher. "A Fine Grained Neural Net Simulator Encoded in Coarse Grained OOMDC,'' Proceedings of the Fourth Annual Parallel Processing Symposium, Fullerton CA 1990.

Wohl, P. and Thomas W. Christopher.. "SIMD Neural Net Mapping on MIMD Architectures,'' Proceedings of the International Conference on Parallel Processing, Pheasant Run IL 1990.

Wohl, P. and Thomas W. Christopher. "A Parallel Processing Approach to Incremental Conceptual Clustering,'' Proceedings of the Fifth Annual Symposium on Parallel Processing, Anaheim CA 1991.

Wohl, P. and Thomas W. Christopher. "Parallel Conceptual Clustering Through Message-Driven Computing,'' Proceedings of the International Conference on Parallel Processing, Pheasant Run IL 1991.

Wohl, P. and Thomas W. Christopher. "MIMD Implementation of Neural Networks Through Parallel, Pipelined Communication Trees,'' Proceedings of the International Conference on Tools for Artificial Intelligence, San Jose CA 1991.

Wohl, Peter and Thomas W. Christopher. "Designing Conceptual Clustering for Parallel Implementation,'' 1992 International Conference on Parallel Processing: Vol. III Algorithms and Applications, F. Stout (ed.), CRC Press, pp. 318-25, Aug. 17-21, 1992.

Other significant writing

Have written manuals for our many software systems and class notes used as text books in three courses at IIT:
  • CS440 Programming languages and Translators,
  • CS540 Syntactic Analysis of Programming Languages (our Compiler Construction course),
  • CS546 Parallel Processing

Creative interests

Received Toastmasters International Advanced Toastmaster-Gold award (the highest rank).

Regularly teach introductory contra dancing.

Choreograph and call contra dances.

Conduct the Humor Writing Group at the Boulder Public Library.

Conduct seminars in Humor, Wordplay, and Crafting Memorable Speeches, inter al. Locations include Toastmasters International District 26 meetings and Toastmasters Leadership Institutes.

Delivered over 30 guest sermons and a similar number of public speeches.

Founder and epigrammatist for WittySelfExpression.com.

Writes formal poetry.

Web site for instruction in creating humor, epigrams, memorable speeches: http://www.toolsofwit.com. Application of these techniques to T-shirts, apparel, gifts: http://www.wittyselfexpression.com.

References

Available if needed.

Last Modified: June 8, 2007.