Timothy J. Rolfe
Click here for this resume in Microsoft Word format.
- Current Addresses - |
|
|
work |
home |
|
Computer Science Dept. |
707 W. 6th Ave., #35 |
|
|
WWW home page |
|
Professional: Timothy.Rolfe@ewu.edu Personal: RolfeT@earthlink.net |
Professional: |
CURRICULUM VITÆ:
Professor (tenured), 2003-present, Eastern Washington University, Computer Science Department
Associate Professor (tenure-track), 2000-2003, Eastern Washington University, Computer Science Department
Visiting Associate Professor, 1998-2000, Eastern Washington University, Computer Science Department
Associate Professor (tenured), 1995-1998 (extended leave of absence, 1998-2000),
Dakota State University, College of Business and Information Systems.Assistant Professor (tenure-track), 1990-1995, Dakota State University, College of Business and Information Systems.
ACS Fellow, Summer 1992, with Wm. Reinhardt,
University of WashingtonM.S., 1987-1989,
University of Minnesota; Minneapolis, MN. Major: Computer Science. Project: "Instructional Package to Animate Various Sorting Algorithms".Independent Consultant, Summer 1987, Physical Science Numerical Calculation Laboratory at the
University of Chicago.Assistant Professor, 1983 to 1987,
Gonzaga University, Mathematics and Computer Science Department (teaching Computer Science).Post-doctoral fellow, 1983:
M.I.T.Ph.D., 1976-1982,
University of Chicago; Chicago, IL. Major: Chemistry Dissertation: "Computer Studies of Molecular Vibrational Behavior".M.S., 1975-1976, University of Chicago; Chicago, IL. Major: Chemistry.
B.S., 1971-1975,
University of Oregon; Eugene, OR. Majors: Chemistry (with honors), Computer Science, Mathematics; minor: Physics.U. S. Air Force, 1966-1971 (Captain at separation):
1969-1971: 72nd Organization Maintenance Squadron; Ramey AFB, PR.
1967-1969: 349th Field Maintenance Squadron; Wurtsmith AFB, MI.
1967: Aircraft Maintenance Officer Course; Chanute Technical Training Center, Rantoul, IL.
1966-1967: Basic Military Training and Officer Training School.
B.A., 1960-1962, 1963-1965,
Mount Angel Seminary; St. Benedict, OR. Major: Philosophy (summa cum laude); minor: English.COMPUTING BACKGROUND:
Current interests: parallel programming in a distributed parallel environment, as found in the Oak Ridge National Laboratory package
Graduate courses taught: Design and Analysis of Algorithms, Distributed Multiprocessing Environments (survey including UNIX fork, Java threads, PVM, and MPI).
Undergraduate courses taught: Computer Science I/II (of CSAB Curricula 1991), Object-Oriented Programming (in C++), Introduction to Computer Systems (survey course on the computer systems underlying the logical machine defined by a higher level language), Data Structures & Algorithms, Computer Architecture, Operating Systems, Computer Hardware and Interfacing, Senior Project, introductory language courses (BASIC, C/C++, COBOL, Fortran, Java, Pascal), assembly language (IBM-370 family, VAX MACRO-11, 6502 microprocessor, Intel 80x86 family, Motorola 68000), computer literacy courses on Apple-//e and IBM-PC computers, second-semester literacy courses on assorted products (e.g., Internet, Web authoring, Quattro Pro, Excel, Paradox, Access), Distributed Multiprocessing Environments (survey including UNIX fork, Java threads, PVM, and MPI).
Graduate study areas: Numerical Analysis; Algorithms; Theory of Computation. Master's project is a Data Structures instructional package for use at the second year on up.
Programming areas: parallel programming in shared memory (SGI) and distributed memory (PVM and MPI) environments; numerical methods and data structures in pursuit of the Master's in Computer Science; scientific applications programming in pursuit of the Ph.D. in theoretical physical Chemistry; some systems programming (VAX-11) and device interfacing (PDP-11) see the "Programs Contributed . . ." below. Machine language interpreters and matching assemblers for the Intro. Computer Systems and the Computer Architecture courses mentioned above.
Program Development Environments: Borland IDE (Integrated Development Environment) for Pascal, C, and C++. Microsoft Visual C++. Metrowerks Code Warrior C++.
Languages: Java; C and C++; Pascal; Fortran; COBOL; IBM Assembly Language; VAX MACRO-11; PDP MACRO-11; DCL; TECO; BASIC (assorted dialects including QuickBASIC and Visual BASIC); some exposure to Ada, Modula-2, and LISP.
Computers: Various machines (including CRAY-2, DEC MicroVAX-II, Sun SPARCstation, DEC Alpha, and Intel processors) under UNIX (BSD and System V). RS/6000 under AIX with Parasoft Express, a distributed parallel programming environment. Heterogenous UNIX-like machines under PVM (Parallel Virtual Machine), a distributed parallel programming environment. VAX-11 (under VAX/VMS and EUNICE). HP-3000 (under MPE). IBM-PC family (under MS-DOS, Windows 3.x, and Windows-95). PDP-11 (under RSX-11M and RT-11). DECsystem-20 (under TOPS-20), IBM-mainframe (under VM and MVS).
Computer Management Experience:
1980, VAX-11 systems programming (languages: Fortran, VAX MACRO-11, and DCL) to bring up and operate the Department of Chemistry's VAX-11/780 - in conjunction with Alan Belch. Consulted for that Department on the VAX until departure from Chicago.
1983, as above, for the M.I.T. Chemistry Department VAX-11/780.
PUBLICATIONS AND PRESENTATIONS:
"The Assignment Problem: Exploring Parallelism", inroads (bulletin of the ACM SIG on Computer Science Education), Vol. 41, No. 2 (June 2009), pp. 127-131, by T. J. Rolfe. Text available through http://penguin.ewu.edu/~trolfe/
"A Specimen MPI Application: N-Queens in Parallel", inroads (bulletin of the ACM SIG on Computer Science Education), Vol. 40, No. 4 (December 2008), pp. 42-45, by T. J. Rolfe. Text available through http://penguin.ewu.edu/~trolfe/.
"A cautionary tale: false efficiencies in the traveling salesman problem", presentation at the 10-11 October 2008 Consortium for Computing Sciences in Colleges Northwestern Conference. Published in The Journal of Computing Sciences in Colleges, Vol. 24, No. 2 (December 2008), pp. 26-31. Available through http://penguin.ewu.edu/~trolfe/.
"Perverse and Foolish Oft I Strayed", inroads (bulletin of the ACM SIG on Computer Science Education), Vol. 40, No. 2 (June 2008), pp. 52-55, by T. J. Rolfe. Text available through http://penguin.ewu.edu/~trolfe/.
"An Alternative Dynamic Programming Solution for the 0/1 Knapsack", inroads (bulletin of the ACM SIG on Computer Science Education), Vol. 39, No. 4 (December 2007), pp. 54-56, by T. J. Rolfe. Text available through http://penguin.ewu.edu/~trolfe/.
"Classroom Exercise Demonstrating Linked List Operations", inroads (bulletin of the ACM SIG on Computer Science Education), Vol. 38, No. 4 (December 2006), pp. 83-84, by T. J. Rolfe. Text available through http://penguin.ewu.edu/~trolfe/.
"Las Vegas Does N-Queens", inroads (bulletin of the ACM SIG on Computer Science Education), Vol. 38, No. 2 (June 2006), pp. 37-38, by T. J. Rolfe. Text available through http://penguin.ewu.edu/~trolfe/.
"Parallel Processing on Multi-core Computers", presentation at the 13 December 2005 meeting of the Inland Northwest Chapter of the Association for Computing Machinery (ACM). Link to the web site used for the presentation.
"List Processing: Sort Again, Naturally", inroads (bulletin of the ACM SIG on Computer Science Education), Vol. 37, No. 2 (June 2005), pp. 46-48, by T. J. Rolfe. Text available through http://penguin.ewu.edu/~trolfe/.
"Optimal Queens", Dr. Dobb's Journal, Vol. 30, No. 5 (May 2005), pp. 32-37, by T. J. Rolfe. Reprinted in Developer 2.0, July 2004 (an Indian Journal, no page ref.) Web copy of the article.
"An Alternative Problem for Backtracking and Bounding", inroads (bulletin of the ACM SIG on Computer Science Education) Vol. 36, No. 4 (December 2004), pp. 83-84, by T. J. Rolfe and P.W.Purdom. Text available through http://penguin.ewu.edu/~trolfe/.
"Backtracking Algorithms", Dr. Dobb's Journal, Vol. 29, No. 5 (May 2004), pp. 48, 50-51, by T. J. Rolfe. Reprinted in Developer 2.0, July 2004 (an Indian Journal, no page ref.) Web copy of the article.
"Program Optimization: Enforcement of Local Access, and Array Access via Pointers", inroads (bulletin of the ACM SIG on Computer Science Education) Vol. 35, No. 4 (December 2003), pp. 63-65, by T. J. Rolfe. Text available through http://penguin.ewu.edu/~trolfe/.
"Spreadsheet-Aided Numerical Experimentation: Analytic Formula for Fibonacci Numbers", inroads (bulletin of the ACM SIG on Computer Science Education) Vol. 35, No. 2 (June 2003) pp. 117-19, by T. J. Rolfe. Text available through http://penguin.ewu.edu/~trolfe/.
"Bargain-Basement Parallelism", Dr. Dobb's Journal, Vol. 28, No. 2 (February 2003), pp. 46-50, by T. J. Rolfe. Reprinted in Developer 2.0, March 2003 [an Indian journal, page reference not available]. Web copy of the article.
"One-Time Binary Search Tree Balancing: the Day/Stout/Warren (DSW) Algorithm", inroads (bulletin of the ACM SIG on Computer Science Education) Vol. 34, No. 4 (December 2002), pp. 85-88, by T. J. Rolfe. Text available through http://penguin.ewu.edu/~trolfe/.
"Distributed Multiprocessor Environments", presentation at the 4-5 October 2002 Consortium for Computing Sciences in Colleges Northwestern Conference. Published in The Journal of Computing Sciences in Colleges, Vol. 18, No. 2 (December 2002), pp. 95-104. Available through http://penguin.ewu.edu/~trolfe/.
"Algorithm Alley: Graph Traversals", Dr. Dobb's Journal, Vol. 27, No. 3 (March 2002), pp. 97-101, by T. J. Rolfe. Reprinted in Developer 2.0, May 2002 [an Indian journal, page reference not available]. Web copy of the article.
"One-Time Binary Search Tree Balancing: The Day/Stout/Warren (DSW) Algorithm", presentation at the 8 January 2002 meeting of the Inland Northwest Chapter of the Association for Computing Machinery (ACM). Material of this presentation is published in inroads, referenced above.
"Binomial Coefficient Recursion: The Good, and The Bad and Ugly", inroads (bulletin of the ACM SIG on Computer Science Education) Vol 33, No. 2 (June 2001), pp. 35-36, by T. J. Rolfe. Text available through http://penguin.ewu.edu/~trolfe/.
"Algorithm Alley: AVL Trees", Dr. Dobb's Journal, Vol. 25, No. 12 (December 2000), pp. 149-52, by T. J. Rolfe. Reprinted in Developer 2.0, Vol. 1, No. 1 (July 2001) [an Indian journal, page reference not available]. Web copy of the article.
"Algorithm Alley: Randomized Shuffling", Dr. Dobb's Journal, Vol. 25, No. 1 (January 2000), pp. 113-14, by T. J. Rolfe. Web copy of the article.
"Analytic Derivation of Comparisons in Binary Search", SIGNUM Newsletter, Vol. 32, No. 4 (October 1997), pp. 15-19, by T. J. Rolfe. Text available through http://penguin.ewu.edu/~trolfe/.
"Particles on a Sphere A Specimen Multidisciplinary Problem", presented in the Computer Science Technical Session T21 at the Spring 1996 Small College Computing Symposium at St. Cloud University (St. Cloud, MN), 18-20 April 1996. Published in SCCS Proceedings: 29th Annual Small College Computing Symposium (1996), 456-66. Text available through http://penguin.ewu.edu/~trolfe/.
"Queens on a Chessboard: Making the Best of a Bad Situation", presented in the Technical Paper Sessions at the Small College Computing Symposium at Augustana College (Sioux Falls, SD) 21-22 Apr 1995. Published in SCCS: Proceedings of the 28th Annual Small College Computing Symposium (1995), 201-10. Text available through http://penguin.ewu.edu/~trolfe/. [This paper focuses on various optimizations in the problem solution, including parallelization.]
"Queens on a Chess Board - in Parallel", 50-minute presentation at the 1995 Joint Conference, South Dakota Science Teachers Association and South Dakota Council of Teachers of Mathematics in Huron, SD, on 3-4 Feb 1995. [This paper focuses on the Queens problem as a specimen parallel programming problem.]
"PVM: an affordable parallel processing environment" in the Computer Science Education Technical Paper Session T4 at the Small College Computing Symposium at Winona State University (Winona, MN) 29-30 Apr 1994. Published in SCCS Proceedings: 27th Annual Small College Computing Symposium (1994), 118-125. Text available through http://penguin.ewu.edu/~trolfe/.
"Spreadsheets for Discrete Mathematics", 50-minute presentation at the 1994 Conference on the Teaching of Undergraduate Mathematics and Science in Huron, SD, on 4-5 Feb 1994.
Invited seminar on parallel processing, the Queens problem, and the PVM distributed parallel processing system to the University of South Dakota Computer Science Department, Oct 1992.
"Timing Comparisons of the Householder QR Transformations with Rank-1 and Rank-2 Updates", SIGNUM Newsletter, Vol. 25, No. 4 (1990), pp. 19-24, by T. J. Rolfe.
"Instructional Package to Animate Various Sorting Algorithms", University of Minnesota Computer Science Department Technical Report TR 89-72 (October 1989), by T. J. Rolfe.
"Benchmark Package Based on Sorting", University of Minnesota Computer Science Department Technical Report TR 89-71 (October 1989), by T. J. Rolfe.
"Generation of Permutations with Non-Unique Elements", SIGNUM Newsletter, Vol. 23, No. 2 (1988), pp. 24-28, by T. J. Rolfe.
"On a Fast Integer Square Root Algorithm", SIGNUM Newsletter, Vol. 22, No. 4 (1987), pp. 6-11, by T. J. Rolfe.
"Sort Arrays, Not Lists", The VAX Professional, Vol. 9, No. 3, (June 1987), pp. 37-41, by T. J. Rolfe.
"Recurse Around the Clock", Mathematics and Computer Education, Vol. 21, No. 2 (Spring, 1987), pp. 98-104, by T. J. Rolfe.
"VAX Pascal Performance Degradation When Nested Procedures Reference Outer-Block Procedure Parameters", The VAX Professional, Vol. 8, No. 6 (December 1986), pp. 46-51, by T. J. Rolfe.
"Classical trajectory studies of energy transfer in Ar-difluorodiazirine collisions", J. Chem. Phys., Vol. 79, No. 10 (1983), pp. 4863-4876, by T. J. Rolfe and S. A. Rice.
"Least squares fitting of polynomials and exponentials, with programming examples", Mathematics and Computer Education, Vol. 16, No. 2 (Spr, 1982), pp. 122-132, by T. J. Rolfe.
"Simulation studies of the scattering of a solitary wave by a mass impurity in a chain of nonlinear oscillators", Physica, Vol. 1D, No.4 (1980), pp. 375-382, by T. J. Rolfe and S. A. Rice. Start the search traversal at http://www.sciencedirect.com/science/journal/01672789
"A numerical study of large amplitude motion in a chain of coupled nonlinear oscillators", J. Chem. Phys., Vol. 70, No. 1 (1979), pp. 26-33, by T. J. Rolfe, S. A. Rice, and J. Dancz.
"The Assignment Problem: Exploring Parallelism", being prepared for SIGCSE's inroads. A case study taking two sequential solutions to the linear assignment problem (backtracking and branch-and-bound) and developing parallel implementations. Because of the 3000 word limitation on inroads articles there are two papers, the first discussing the problem and the backtracking implementations, the second discussing just the branch-and-bound implementation. The first paper has been published in the June 2009 issue and is shown above. The second paper has been accepted for the December 2009 issue. Click here to browse.
"A Specimen of Parallel Programming: Parallel Merge Sort Implementation", submitted to Dr. Dobb's Journal. Since Dr. Dobb's is not responding to electronic mail, I need to find another journal. Transformation of a sequential algorithm (sorting) into a parallel algorithm. Click here to browse.
"Iterate Through the Tulips", accepted by Dr. Dobb's Journal, but then apparently discarded. This is an exemplification of the use of iterators within Java as compared with explicit manipulations of doubly-linked lists, using sorting algorithms as the basis for discussion. Click here to browse.
"And the Teacher Shall Be Taught", presently in inroads format programming anecdote. Click here to browse.
PROGRAMS CONTRIBUTED TO SOFTWARE LIBRARIES:
"Animated Sorting Algorithms", DECUS Program Library, DECUS No. V00461.
"Sorting Benchmarks", DECUS No. V00459.
"ACCTING: Generation of VAX/VMS Accounting Reports," DECUS No. V00065.
"MOLDYN: A Molecular Dynamics Program/Package," DECUS Nos. V00041(R) and 110570(R).
"QREQUEST: User Interaction with Device Queues," DECUS No. V00034(R).
"DISKUSE: Disk Usage Statistics," DECUS No. V00033(R).
"POLFIT: A General Polynomial Fitting Program," DECUS No. 110554.
Courses Taught at Eastern Washington University: September 1998 Through the Present
Note: CScD-226 and CScD-325 are courses that on the books had three credits prior to 2001/02. They met, however, four times a week, and had associated lab courses by which students could obtain one or two additional credits. Departmental policy treated these courses as generating four teaching units.
Fall 2009 course load (8 credits)
4 credits:
CScD-300 Data
Structures
4 credits:
CScD-320 Algorithms
Spring 2009 course load (8 credits)
4 credits:
CScD-320 Algorithms
4 credits:
CScD-443/543
Distributed Multiprocessor Environments
Winter 2009 course load (8 credits)
4 credits:
CScD-320 Algorithms
4 credits: CScD-501 Design
and Analysis of Algorithms
Fall 2008 course load (8 credits)
4 credits:
CScD-300 Data
Structures
4 credits:
CScD-320 Algorithms
Spring 2008 course load (8 credits)
4 credits:
CScD-320 Algorithms
4 credits:
CScD-443/543
Distributed Multiprocessor Environments
Winter 2008 course load (8 credits)
4 credits:
CScD-320 Algorithms
4 credits: CScD-501 Design
and Analysis of Algorithms
Fall 2007 course load (8 credits)
4 credits:
CScD-300 Data
Structures
4 credits:
CScD-320 Algorithms
Spring 2007 course load (8 credits)
4 credits:
CScD-320 Algorithms
4 credits:
CScD-443/543
Distributed Multiprocessor Environments
Winter 2007 course load (8 credits)
4 credits:
CScD-320 Algorithms
4 credits: CScD-501 Design
and Analysis of Algorithms
Fall 2006 course load (8 credits)
4 credits:
CScD-300 Data
Structures (formerly 326 / Data Structures I)
4 credits:
CScD-320 Algorithms
(formerly 327 / Data Structures II)
Spring 2006 course load (8 credits)
4 credits:
CScD-326 Data
Structures I
4 credits: CScD-501 Design
and Analysis of Algorithms
Winter 2006 course load (8 credits)
4 credits: CScD-327 Data Structures II
4 credits: CScD-443/543
Distributed Multiprocessor Environments
Fall 2005 course load (8 credits)
4 credits:
CScD-326 Data
Structures I
4 credits: CScD-327 Data
Structures II
Spring 2005 course load (12 credits)
4 credits:
CScD-326 Data
Structures I
4 credits: CScD-327 Data
Structures II
4 credits: CScD-501 Design
and Analysis of Algorithms
Winter 2005 course load (8 credits)
4 credits: CScD-327 Data Structures II
4 credits: CScD-443/543
Distributed Multiprocessor Environments
Fall 2004 course load (8 credits)
4 credits:
CScD-326 Data
Structures I
4 credits: CScD-327 Data
Structures II
Spring 2004 course load (8 credits)
4 credits: CScD-327 Data Structures II
4 credits: CScD-501 Design
and Analysis of Algorithms
Winter 2004 course load (8 credits)
4 credits: CScD-327 Data Structures II
4 credits: CScD-443/543
Distributed Multiprocessor Environments
Fall 2003 course load (8 credits)
4 credits: CScD-327 Data
Structures II
4 credits: CScD-350 Software Design
(observing the handling of the course by Jeffrey Putnam, Ph.D., in case I should
be called upon to teach the course again)
Spring 2003 course load (13 credits)
4 credits: CScD-327 Data Structures II
5 credits: CScD-350 Software Design
4 credits: CScD-501 Design
and Analysis of Algorithms
Winter 2003 course load (9 credits)
5 credits: CScD-350 Software Design
4 credits: CScD-498/539 Seminar: Distributed Multiprocessor Environments
(becomes 443/543)
Fall 2002 course load (9 credits)
4 credits: CScD-327 Data Structures II
change of language from C/C++ to Java
5 credits: CScD-350 Software Design
Spring 2002 course load (9 credits)
4 credits: CScD-327 Data Structures II
5 credits: CScD-350 Software Design
Winter 2002 course load (13 credits)
Fall 2001 course load (14 credits)
Spring 2001 course load (12 credits, 13 teaching units)
Winter 2001 course load (9 credits, 11 teaching units with 2 unit credit for new preparation)
Fall 2000 course load (8 credits, 10 teaching units with 2 unit credit for new preparation)
Spring 2000 course load (10 credits, 12 teaching units)
Winter 2000 course load (6 credits, 10 teaching units with 2 unit credit for new preparation)
Fall 1999 course load (10 credits, 12 teaching units)
Spring 1999 course load (6 credits, 8 teaching units)
Winter 1999 course load (12 credits, 15 teaching units)
Fall 1998 course load (14 credits, 16 teaching units)
Courses Taught at Dakota State University: January 1990 Through May 1998
Spring '98 course load (13 hours):
Fall '97 course load (13 hours):
Spring '97 course load (12 hours);
Fall '96 course load (13 hours):
Spring '96 course load (11 hours):
Fall '95 course load (13 hours):
Spring '95 course load (12 hours):
Fall '94 course load (12 hours):
Spring '94 course load (13 hours):
Fall '93 course load (13 hours):
Spring '93 course load (11 hours):
Fall '92 course load (12 hours):
Spring '92 course load (12 hours):
Fall '91 course load (12 hours):
Spring '91 course load (11 hours):
Fall '90 course load (12 hours scheduled, 3 hours mentored):
Spring '90 course load (11 hours):