Timothy RolfePage 1

Timothy J. Rolfe

CURRENT ADDRESSES:

Printed 2012/Oct/27 at 07:18

Timothy RolfePage 1

work

Computer Science Department

Eastern WashingtonUniversity

319F Computing & Engineering Bldg.

CheneyWA 99004-2493

e-mail

WWW home page

home

707 W. 6th Ave. #35

Spokane WA 99204-2813

(509) 747-0443

e-mail

WWW home page

Printed 2012/Oct/27 at 07:18

Timothy RolfePage 1

CURRICULUM VITÆ:

Professor of Computer Science Emeritus, 1 July 2011–present, Eastern Washington University

Professor (tenured), 2003–2011, Eastern Washington University, Computer Science Department

Associate Professor (tenure-track), 2000–2003, EasternWashingtonUniversity, Computer Science Department

Visiting Associate Professor, 1998–2000, Eastern WashingtonUniversity, Computer Science Department

Associate Professor (tenured), 1995–1998 (extended leave of absence, 1998–2000), DakotaStateUniversity, College of Business and Information Systems.

Assistant Professor, 1990–1995, DakotaStateUniversity, College of Business and Information Systems.

ACS Fellow, Summer 1992, with Wm. Reinhardt, University of Washington

M.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, GonzagaUniversity, 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; ChanuteTechnicalTrainingCenter, Rantoul, IL.

1966–1967: Basic Military Training and Officer Training School, Lackland AFB, San Antonio, TX.

B.A., 1960–1962, 1963–1965, MountAngel Seminary; St. Benedict, OR. Major: Philosophy (summa cum laude); minor: English.

COMPUTING BACKGROUND:

Current interest: parallel programming in a distributed parallel environment, as found in the Oak Ridge National Laboratory package PVM (Parallel Virtual Machine) and in MPI (Message Passing Interface). Also interested in expanding into other parallel programming environments and paradigms.

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), ObjectOriented 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 (IBM370 family, VAX MACRO11, 6502 microprocessor, Intel 80x86 family, Motorola 68000), computer literacy courses on Apple//e and IBMPC computers, second-semester literacy courses on assorted products (e.g., Internet, Web authoring, Quattro Pro, Excel, Paradox, Access) , introductory Software Engineering (predominantly UML), 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 (VAX11) and device interfacing (PDP11) — 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 MACRO11; PDP MACRO11; DCL; TECO; BASIC (assorted dialects including QuickBASIC and Visual BASIC); some exposure to Ada, Modula2, and LISP.

Computers: Various machines (including CRAY2, 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. Heterogeneous UNIX-like machines under PVM (Parallel Virtual Machine) and MPI (Message Passing Interface), distributed parallel programming environments. VAX11 (under VAX/VMS and EUNICE). HP3000 (under MPE). IBM-PC family (under MS-DOS, Windows 3.x, and Windows-95 and above). PDP11 (under RSX11M and RT11). DECsystem20 (under TOPS20), IBMmainframe (under VM and MVS).

Computer Management Experience:

1980, VAX11 systems programming (languages: Fortran, VAX MACRO11, and DCL) to bring up and operate the Department of Chemistry’s VAX11/780 — in conjunction with Alan Belch. Consulted for that Department on the VAX till departure from Chicago.

1983, as above, for the M.I.T. Chemistry Department VAX11/780.

PUBLICATIONS AND PRESENTATIONS:

“Dynamic Programming the Towers”. ACM Inroads (magazine of the ACM SIG on Computer Science Education), Vol. 3, No.3 (September 2012), pp. 40-45, by T. J. Rolfe. Text available through

“Exponential Base Change Based on Symmetry”. ACM Inroads (magazine of the ACM SIG on Computer Science Education), Vol. 2, No.4 (December 2011), pp. 33-37, by T. J. Rolfe. Text available through

“The Game of Elevenses”. ACM Inroads (magazine of the ACM SIG on Computer Science Education), Vol. 2, No.3 (September 2011), pp. 29-30, by T. J. Rolfe. Text available through

“Optimizations for Armstrong Numbers”, ACM Inroads (magazine of the ACM SIG on Computer Science Education), Vol. 2, No. 2 (June 2011) pp. 43-46, by T. J. Rolfe. Text available through

“A Specimen of Parallel Programming: Parallel Merge Sort Implementation”,ACM Inroads (magazine of the ACM SIG on Computer Science Education), Vol 1, No. 4 (December 2010), pp. 72-79, by T. J. Rolfe.. Text available through

In 2010, CCSC-NW began having a session of Nifty Assignments; my contribution (three assignments, one contest problem, and one lecture): CCSC-NW (Consortium for Computing Sciences in Colleges, Northwestern region) 2010 October 8 & 9. Text available through

“Unexpected Speed-Up in Java on Multiprocessors”, ACM Inroads (magazine of the ACM SIG on Computer Science Education), Vol 1, No. 2 (June 2010), pp. 22-23, by T. J. Rolfe. Text available through

“The Assignment Problem: Further Exploring Parallelism”, inroads (bulletin of the ACM SIG on Computer Science Education),Vol.41, No.4(December 2009), pp.78-81, by T.J.Rolfe. Text available through

“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

“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

“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

“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

“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

"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

“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

“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). Material for the presentation is collected in

“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

“Optimal Queens”, Dr. Dobb's Journal, Vol. 30, No. 5 (May 2005), pp. 32-37, by T. J. Rolfe.

“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

“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.)

“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

“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.11719, by T.J.Rolfe. Text 7available through

“Bargain-Basement Parallelism”, Dr. Dobb's Journal, Vol. 28, No. 2 (February 2003), pp. 4650, by T. J. Rolfe. . Reprinted in Developer 2.0, April 2003 [an Indian journal, page reference not available].

“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

“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. 95104. Available through

“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].

“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).

“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

“Algorithm Alley: AVL Trees”, Dr. Dobb’s Journal, Vol. 25, No. 12 (December 2000), pp. 149-52, by T.J.Rolfe. Reprinted in the inaugural issue of Developer 2.0, July 2001 [an Indian journal, page reference not available].

“Algorithm Alley: Randomized Shuffling”, Dr. Dobb’s Journal, Vol. 25, No. 1 (January 2000), pp. 113-14, by T.J.Rolfe.

“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

“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 AnnualSmallCollege Computing Symposium (1996), 456-66. Text available through

“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 AnnualSmallCollege Computing Symposium (1995), 201-10. Text available through [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 34 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 WinonaStateUniversity (Winona, MN) 29-30 Apr 1994. Published in SCCS Proceedings: 27th AnnualSmallCollege Computing Symposium (1994), 118-125. Text available through

“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 Rank1 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 8972 (October 1989), by T. J. Rolfe.

“Benchmark Package Based on Sorting”, University of MinnesotaComputer Science Department Technical Report TR 8971 (October 1989), by T. J. Rolfe.

“Generation of Permutations with Non-Unique Elements”, SIGNUM Newsletter, Vol. 23, No. 2 (1988), pp. 2428, by T. J. Rolfe.

“On a Fast Integer Square Root Algorithm”, SIGNUM Newsletter, Vol. 22, No. 4 (1987), pp. 611, by T. J. Rolfe.

“Sort Arrays, Not Lists”, The VAX Professional, Vol. 9, No. 3, (June 1987), pp. 3741, by T. J. Rolfe.

“Recurse Around the Clock”, Mathematics and Computer Education, Vol. 21, No. 2 (Spring, 1987), pp. 98104, 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. 4651, by T. J. Rolfe.

“Classical trajectory studies of energy transfer in Ardifluorodiazirine collisions”, J. Chem. Phys., Vol. 79, No. 10(1983), pp. 48634876, 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. 122132, by T. J. Rolfe. Text available through

“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. 375382, by T. J. Rolfe and S. A. Rice.

“A numerical study of large amplitude motion in a chain of coupled nonlinear oscillators”, J. Chem. Phys., Vol. 70,No. 1 (1979), pp. 2633, by T. J. Rolfe, S. A. Rice, and J. Dancz.

PAPERS IN PREPARATION:

“And the Teacher Shall Be Taught”, presently in inroads format — programming anecdote. Text available through

“Iterate Through the Tulips”, accepted byDr. 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. Text available through

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.

Printed 2012/Oct/27 at 07:18

Timothy RolfeCourses Taught at Eastern Washington University: Sept 1998 To Present Page 1

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 1998 course load (14 credits, 16 teaching units)
3 credits: CScD-132BASIC Programming
5 credits: CScD-225Programming Principles I
6 credits: CScD-226Programming Principles II (2 sections), for 8 teaching units

Winter 1999 course load (12 credits, 15 teaching units)
9 credits: CScD-226Programming Principles II (3 sections), for 12 teaching units
3 credits: CScD-260Micro-Assembly Language

Spring 1999 course load (6 credits, 8 teaching units)
6 credits: CScD-226Programming Principles II (2 sections), for 8 teaching units

Fall 1999 course load (10 credits, 12 teaching units)
6 credits: CScD-226Programming Principles II (2 sections), for 8 teaching units
4 credits: CScD-327Data Structures II

Winter 2000 course load (6 credits, 10 teaching units with 2 unit credit for new preparation)
6 credits: CScD-325Object Oriented Programming (2 sections), for 8 teaching units

Spring 2000 course load (10 credits, 12 teaching units)
6 credits: CScD-325Object Oriented Programming (2 sections), for 8 teaching units
4 credits: CScD-327Data Structures II

Fall 2000 course load (8 credits, 10 teaching units with 2 unit credit for new preparation)
4 credits: CScD-327Data Structures II
4 credits: CScD-498/539Seminar: Distributed Multiprocessor Environments (becomes 443/543)

Winter 2001 course load (9 credits, 11 teaching units with 2 unit credit for new preparation)
4 credits: CScD-327Data Structures II
5 credits: CScD-350Software Design

Spring 2001 course load (12 credits, 13 teaching units)
3 credits: CScD-325Object Oriented Programming, for 4 teaching units
4 credits: CScD-327Data Structures II
5 credits: CScD-350Software Design

Fall 2001 course load (14 credits)
4 credits: CScD-327Data Structures II
10 credits: CScD-350Software Design (2 sections)

Winter 2002 course load (13 credits)
4 credits: CScD-327Data Structures II
5 credits: CScD-350Software Design
4 credits: CScD-498/539Seminar: Distributed Multiprocessor Environments (becomes 443/543)

Spring 2002 course load (9 credits)
4 credits: CScD-327Data Structures II
5 credits: CScD-350Software Design

Fall 2002 course load (9 credits)
4 credits: CScD-327Data Structures II — change of language from C/C++ to Java
5 credits: CScD-350Software Design

Winter 2003 course load (9 credits)
5 credits: CScD-350Software Design
4 credits: CScD-498/539 Seminar: Distributed Multiprocessor Environments (becomes 443/543)

Spring 2003 course load (13 credits)
4 credits: CScD-327Data Structures II
5 credits: CScD-350Software Design
4 credits: CScD-501Design and Analysis of Algorithms

Fall 2003 course load (8 credits)
4 credits: CScD-327Data Structures II
4 credits: CScD-350Software Design (observing the handling of the course by Jeffrey Putnam, Ph.D.,
in case I should be called upon to teach the course again)
Winter 2004 course load (8 credits)
4 credits: CScD-327Data Structures II
4 credits: CScD-443/543 Distributed Multiprocessor Environments

Spring 2004 course load (8 credits)
4 credits: CScD-327Data Structures II
4 credits: CScD-501Design and Analysis of Algorithms

Fall 2004 course load (8 credits)
4 credits: CScD-326Data Structures I
4 credits: CScD-327Data Structures II

Winter 2005 course load (8 credits)
4 credits: CScD-327Data Structures II
4 credits: CScD-443/543 Distributed Multiprocessor Environments

Spring 2005 course load (12 credits)
4 credits: CScD-326Data Structures I
4 credits: CScD-327Data Structures II
4 credits: CScD-501Design and Analysis of Algorithms

Fall 2005 course load (8 credits)
4 credits: CScD-326Data Structures I
4 credits: CScD-327Data Structures II

Winter 2006 course load (8 credits)
4 credits: CScD-327Data Structures II
4 credits: CScD-443/543 Distributed Multiprocessor Environments

Spring 2006 course load (8 credits)
4 credits: CScD-326Data Structures I
4 credits: CScD-501Design and Analysis of Algorithms

Fall 2006 course load (8 credits)
4 credits: CScD-300Data Structures (formerly 326 / Data Structures I)
4 credits: CScD-320Algorithms (formerly 327 / Data Structures II)

Winter 2007 course load (8 credits)
4 credits: CScD-320Algorithms
4 credits: CScD-501Design and Analysis of Algorithms

Spring 2007 course load (8 credits)
4 credits: CScD-320Algorithms
4 credits: CScD-443/543 Distributed Multiprocessor Environments

Fall 2007 course load (8 credits)
4 credits: CScD-300Data Structures
4 credits: CScD-320Algorithms

Winter 2008 course load (8 credits)
4 credits: CScD-320Algorithms
4 credits: CScD-501Design and Analysis of Algorithms

Spring 2008 course load (8 credits)
4 credits: CScD-320Algorithms
4 credits: CScD-443/543 Distributed Multiprocessor Environments

Fall 2008 course load (8 credits)
4 credits: CScD-300Data Structures
4 credits: CScD-320Algorithms

Winter 2009 course load (8 credits)
4 credits: CScD-320Algorithms
4 credits: CScD-501Design and Analysis of Algorithms

Spring 2009 course load (8 credits)
4 credits: CScD-320Algorithms
4 credits: CScD-443/543 Distributed Multiprocessor Environments

Fall 2009 course load (8 credits)
4 credits: CScD-300Data Structures
4 credits: CScD-320Algorithms

Winter 2010 course load (8 credits)
4 credits: CScD-300Data Structures
4 credits: CScD-320Algorithms

Spring 2010 course load (8 credits)
4 credits: CScD-320Algorithms
4 credits: CScD-501Design and Analysis of Algorithms

Note: in academic 2010/2011, Dr. Rolfe only taught one course per quarter, with 50% leave-without-pay.

Fall 2010 course load (4 credits))
4 credits: CScD-320Algorithms

Winter 2011 course load (4 credits)
4 credits: CScD-501Design and Analysis of Algorithms

Spring 2011 course load (4 credits)
4 credits: CScD-320Algorithms

Printed 2012/Oct/27 at 07:18

Timothy RolfeCourses Taught at Eastern Washington University: Sept 1998 To Present Page 1

Spring ’90 course load (11 hours):

2 hrs: CSc-100Computer Concepts [i.e., literacy course]

3 hrs: CSc-234Assembler I

3 hrs: CSc-317Computer Organization and Architecture

3 hrs: CSc-346C Programming Language