Robert M. Dondero, Ph.D.

E-mail: rdondero@cs.princeton.edu

Telephone: 609-258-2211

Address: Department of Computer Science, Princeton University, 35 Olden Street, Princeton, NJ 08540


Employment History

Princeton University, Princeton, NJ. 7/01 to present. Lecturer, Department of Computer Science. Preceptor for the courses COS 217: Introduction to Programming Systems and COS 126: General Computer Science. Developed and taught precepts. Supervised teaching assistants. Developed and graded programming assignments and examinations. Earned eight Engineering Council "Excellence in Engineering Education" awards for work as a preceptor on the COS 217 course (Fall 2001, Fall 2002, Fall 2003, Spring 2004, Fall 2005, Spring 2006, and Fall 2010, and Fall 2011). Awarded Engineering Council "Lifetime Achievement Award for Excellence in Teaching," December 2006.

Hewlett-Packard, Mount Laurel, NJ. 12/97 to 7/01. Chief Course Developer, HPAS/Bluestone Division (formerly Bluestone Software). Developed and taught courses on the company's Java-based World Wide Web application infrastructure software products. Also developed and taught courses on underlying technologies: Java Programming Language, Java for Non-C Programmers, Advanced Java, Java Swing, JavaBeans, JavaServer Pages (JSP), Enterprise JavaBeans (EJB), The C Programming Language, C++ Object-Oriented Programming, and XML. Created CD-based distance education versions of those courses; the company used them to teach instructors, software developers, support personnel, consultants from partner companies, and customers. Promoted from Technical Trainer to Chief Course Developer in 1999.

Towers Perrin, Philadelphia, PA. 8/94 to 12/97. Lead Applications Programmer/Analyst, Retirement Systems Department. Developed components of Towers Perrin Solutions (TPS), a client/server system to support the company's "benefits administration" line of business. Developed the indices, data dictionary, error reporting, and auditing subsystems of the TPS server, a multi-database system which presents to its clients a unified logical view of heterogeneous distributed physical databases. Developed the transaction management and callback propagation component of a TPS client, a graphical user interface builder and engine. Proposed, developed, and taught internal courses entitled Object-Oriented Programming Using C++, Object-Oriented Design Patterns, The C++ Standard Template Library, and Rational Rose.

Pennsylvania State University, Great Valley, PA. 1/94 to 12/97. Instructor, Continuing Education Department. Developed and taught courses entitled Introductory C++ Programming and C Programming I.

Sterling Winthrop Inc., Malvern, PA. 6/92 to 8/94. Senior Software Engineer, Information Sciences Department. Evaluated commercial software packages for a company-wide client/server system to help users compose computer-assisted new drug applications (CANDAs). Created an object-oriented prototype system that demonstrated the feasibility of user-directed CANDA composition. Developed software utilities that loaded data into the company's first CANDA. The system was successfully deployed internationally (U.S., Canada, Australia). Received Vision and Accomplishment Award for "extraordinary contribution toward achievement of Sterling Winthrop's mission and values." Proposed, developed, and taught an internal course entitled Object-Oriented Programming Using C++.

La Salle University, Philadelphia, PA. 9/80 to 7/83 and 9/84 to 6/92. Assistant Professor, Mathematical Sciences Department. Developed and taught courses in theory of programming languages, database management systems, and algorithms and data structures. Proposed, developed, and taught a course in artificial intelligence emphasizing novel software architectures. Directed independent study courses in robotics. Sponsored cooperative education students. Member/chair of various departmental and university-wide committees. Promoted from Instructor to Assistant Professor in 1986. Awarded tenure in 1989.

Naval Air Development Center, Warminster, PA. 6/87 to 6/92. Software Engineering Consultant, reporting directly to the Project Leader of 4 research efforts with $1,600,000 budget. Developed an object-oriented prototype of a real-time artificial intelligence system to help airborne communications personnel analyze message traffic and sensor data. Developed a real-time artificial intelligence system to control an autonomous reconnaissance aircraft. Created a prototype, wrote the functional specification, designed the novel software architecture, and programmed many software modules. The Office of Naval Technology rated the system first among all internal research programs. Awarded 3 American Society for Engineering Education (ASEE) Fellowships.

University of Delaware, Newark, DE. 1/84 to 5/84. Research Assistant for a duPont/Foxboro sponsored project developing an artificial intelligence system to help operators of chemical plants diagnose component failures.

Sperry Univac, Blue Bell, PA. 4/79 to 7/80. Systems Programmer. Developed components of a small operating system.

E. I. duPont de Nemours & Company, Wilmington, DE. 6/78 to 3/79. Applications Programmer. Developed components of a financial forecasting system.


Education History

Drexel University, Philadelphia, PA. 9/03 to 6/08. Ph.D. in Information Science and Technology. Emphasis on software engineering and software engineering education. Dissertation title: Predicting Software Change Coupling.

Temple University, Philadelphia, PA. 9/84 to 12/91. Earned 33 post-Masters credits in Computer and Information Science. Emphasis on object-oriented technology and intelligent tutoring systems.

University of Delaware, Newark, DE. 9/83 to 5/84. Earned 12 post-Masters credits in Computer and Information Science. Emphasis on artificial intelligence.

University of Pennsylvania, Philadelphia, PA. 9/80 to 5/83. M.S.E. in Computer and Information Science with 4.0 GPA (out of 4.0). Emphasis on artificial intelligence and programming languages.

La Salle University, Philadelphia, PA. 9/74 to 5/78. B.A. in Mathematics and Computer Science with 3.85 GPA (out of 4.0). Maxima Cum Laude. Dean's Honor List for 4 years. Emphasis on programming languages and systems analysis.


Technical Skills

Software Development Techniques: structured and object-oriented analysis, design, and programming.

Programming Languages: Java, C++, C, Objective-C, SQL, Pascal, BASIC, LISP, Prolog, Forth, Ada, COBOL, FORTRAN, PL/I, various assembly.

Operating Systems: Unix, Microsoft Windows.

Databases: Informix, SQL Server, Oracle.


Professional Interests

Software engineering, software engineering education, programming languages, instructional design.


Professional Affiliations

Member of the Association for Computing Machinery (ACM).

Member of ACM's Special Interest Group on Computer Science Education (SIGCSE).


Courses Designed/Taught At Princeton University

COS 126: General Computer Science

COS 217: Introduction to Programming Systems


Courses Designed/Taught at Hewlett-Packard/Bluestone Software

The C Programming Language

C++ Object-Oriented Programming

Java Programming Language

Java for Non-C Programmers

Advanced Java Programming Part 1: Utilities, Input/Output, and Threads

Advanced Java Programming Part 2: Networking, RMI, and JDBC

JavaBeans

JavaServer Pages (JSP)

Enterprise JavaBeans (EJB)

XML

Bluestone Sapphire/Web NT

Bluestone JSP Server

Bluestone EJB Server

Bluestone XML Server

Bluestone Total-e-Server and Struts


Courses Designed/Taught at the Pennsylvania State University

C Programming I

Introductory C++ Programming


Courses Designed/Taught at La Salle University

CSC 151: Introduction to Computing with Applications

CSC 155: Fundamentals of Computing

CSC 156: Algorithms and Data Structures

CSC 254: File and Data Management Systems

CSC 356: Programming Languages

CSC 456: Artificial Intelligence

CSC 472: Independent Study in Robotics


Courses Taken at Drexel University

INFO 608: Human-Computer Interaction

INFO 610: Analysis of Interactive Systems

INFO 611: Design of Interactive Systems

INFO 625: Cognition and Information Retrieval

INFO 692: Quantitative Methods

INFO 694: Applied Research Methods

INFO 695: Research Statistics I

INFO 799: Identifying Software Anomalies

INFO 799: Modeling Software Quality

INFO 799: Software Change Coupling

INFO 799: Software Change Coupling Analysis

INFO 861: Topics in Information Science

INFO 863: Topics in Information Systems

INFO 998: Ph.D. Dissertation

INFO 998: Ph.D. Dissertation


Courses Taken at Temple University

CIS 551: Programming Techniques

CIS 573: Automata and Formal Languages

CIS 595: Seminar on Artificial Intelligence, Heuristic Models, and Education

CIS 598: Independent Study on Object-Oriented Programming

CIS 661: Data Management

CIS 673: Design and Analysis of Algorithms

CIS 693: Seminar on Advances in AI and Education

CIS 750: Artificial Intelligence Programming Techniques

CIS 750: Object-Oriented Concepts, Design, and Databases

LING 602: Semantics I

LING 501: Modern Linguistics I: Syntax


Courses Taken at the University of Delaware

CIS 620: Seminumeric Computer Algorithms

CIS 661: Computer Systems: Software (Compiler Theory)

CIS 662: Computer Systems: Architecture (Operating Systems)

CIS 825: Advanced Topics: Expert Systems


Courses Taken at the University of Pennsylvania

CIS 523: Introduction to Digital Computers: Programming and Logic

CIS 531: Computing with Symbolic Expressions

CIS 540: Theory of Computation

CIS 543: Introduction to Digital Computers: Systems and Devices

CIS 578: Algebraic Foundations for Computer Science

CIS 580A: Introduction to Computer Graphics

CIS 580B: Introduction to Microprocessors

CIS 581: Basic Logic for Computer Science

CIS 591: Introduction to Artificial Intelligence

CIS 675B: Techniques in Advanced Programming Languages: Logic Programming and Prolog


Publications

Dondero, Robert M. and Wiedenbeck, Susan. "Subsetability as a New Cognitive Dimension?" Proceedings of 18th Annual Psychology of Programming Interest Group Workshop (PPIG'06). Brighton, U.K. 2006.