E-mail: rdondero@cs.princeton.edu
Telephone: 609-258-2211
Address: Department of Computer Science, Princeton University, 35 Olden Street, Princeton, NJ 08540
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.
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.
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.
Software engineering, software engineering education, programming languages, instructional design.
Member of the Association for Computing Machinery (ACM).
Member of ACM's Special Interest Group on Computer Science Education (SIGCSE).
COS 126: General Computer Science
COS 217: Introduction to Programming Systems
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
C Programming I
Introductory C++ Programming
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
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
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
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
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
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.