Curriculum Vitae
Richard A Goodrum
---------------------------------------------------------------------------------------------------------------------------------
Education:
Southern Methodist University
Ph.D. Candidate, Computer Science and Engineering
University of Houston
M.S., Mathematics 1982
B.S., Mathematics 1979
---------------------------------------------------------------------------------------------------------------------------------
Tools:
Platforms:
Adaptive Solutions: CNAPS
ARM: ARM7
Intel: Pentium and i860
Motorola: PPC and 68000
Sun Microsystems: Sparc
Operating Systems:
LynuxWorks: LynxOS, BlueCat Linux
Micrium: MicroC/OS-II
Microsoft: Windows 95, NT, 98, 2000, XP,
Vista.
RedHat: Linux
Sun Microsystems: Solaris 9
Terra Soft: Yellow Dog Linux
Wind River: VxWorks 5.4 and 5.5
Development Environments:
IBM: Rhapsody
MathWorks: MatLab
Microsoft: Visio (UML) and Visual Studio
Sun Microsystems: NetBeans
Wind River: Tornado and Workbench
Xilinx: ISE and EDK
Languages:
C/C++
Java
PPC Assembler
FORTRAN
CPL
Verilog HDL
---------------------------------------------------------------------------------------------------------------------------------
UNT:
Lecturer University of North Texas 08/08-Present
Courses Taught:
2610. ASSEMBLY LANGUAGE AND COMPUTER ORGANIZATION. 3 hours. Principles of computer systems organization, instruction sets, computer arithmetic, data and control paths, memory hierarchies.
Spring 2011: Students: SETE: NA
Fall 2010: Students: 22 SETE: NA
Spring 2010: Students: 27 SETE: 775
Spring 2010: Students: 14 SETE: 771
Fall 2009: Students: 22 Evaluation: 3.96 (scale 1-5)
Summer 2009: Students: 11 Evaluation: NA
Spring 2009: Students: 27 Evaluation: 4.10 (scale 1-5)
3030. PARALLEL PROGRAMMING. 3 hours. Introduction to processing in parallel and distributed computing environment. General concepts of parallel machine models, processes, threads, mutual exclusion, synchronization, message passing. Design and analysis of parallel algorithms for engineering and scientific applications. Parallel programming using Pthreads and MPI.
Spring 2010: Students: 30 SETE: 781
Spring 2009: Students: 18 Evaluation: 3.83 (scale 1-5)
Fall 2008: Students: 10 Evaluation: 4.43 (scale 1-5)
3110. DATA STRUCTURES ANS ALGORITHMS. 3 hours. Computer storage structures; storage allocation and management; data sorting and searching techniques; data structures in programming languages.
Spring 2011: Students: 39 SETE: NA
3612. EMBEDDED SYSTEMS DESIGN. 3 hours. Computer systems as embedded computing elements and micro-controllers. System specification using UML or other high-level abstract models. Issues and constraints on embedded computing systems, including power, performance, memory and size. Use of DSP, ASIC and micro-controllers in a single design.
Fall 2010: Students: 30 SETE: NA
Summer 2010: Students: 15 SETE: 770
Fall 2009: Students: 30 Evaluation: 3.96 (scale 1-5)
Spring 2009: Students: 1 (Directed Study) Evaluation: NA
Fall 2008: Students: 12 Evaluation: 4.04 (scale 1-5)
4440-5440. REAL-TIME SOFTWARE DEVELOPMENT. 3 hours. Specification of real-time system requirements, timing, synchronization and fault-tolerance issues, construction and validation of real-time software. Mathematical formalisms, design and analyses using real-time UML are also emphasized.
4890: Spring 2010: Students: 5 SETE: NA
4890: Spring 2009: Students: 1 Evaluation: NA
5440: Spring 2009: Students: 8 Evaluation: 4.71 (scale 1-5)
4600-5640. INTRODUCTION TO OPERATING SYSTEMS. 3 hours. Concepts in operating system analysis and design. General topics of process, resource and file management are presented and analyzed in the context of different system architectures and performance constraints.
Spring 2011: Students: 8/15 SETE: NA
4620-5620. REAL-TIME OPERATING SYSTEMS. 3 hours. Basic real-time operating systems concepts and services, including interrupt processing, process and thread models, real-time software architectures and development environments. Detailed study of the design and implementation of real-time applications using real-time operating systems. Focus on commercial real-time operating systems/development environments, including VxWorks and MicroC/OS-II.
4620: Fall 2010: Students: 4 SETE: NA
5620: Fall 2010: Students: 7 SETE: NA
5620: Summer 2010 Students: 5 SETE: 781
4620: Fall 2009: Students: 4 Evaluation: 4.83 (scale 1-5)
5620: Fall 2009: Students: 7 Evaluation: 5.00 (scale 1-5)
5620: Summer 2009: Students: 10 Evaluation: NA
4620: Fall 2008: Students: 3 Evaluation: 3.40 (scale 1-5)
5620: Fall 2008: Students: 8 Evaluation: 4.12 (scale 1-5)
4910. COMPUTER ENGINEERING DESIGN I. 3 hours. First course in the senior capstone design sequence. Focus is the application of techniques to the design of electronic systems that have digital hardware and software components. Students apply the theory acquired from numerous engineering courses to solve real-world design problems. The design will consider realistic constraints including economic, environmental, sustainability, manufacturability, ethical, social, safety.
Fall 2010: Students: 17 SETE: NA
Fall 2009: Students: 11 Evaluation: 4.35 (scale 1-5)
4915. COMPUTER ENGINEERING DESIGN II. 3 hours. First course in the senior capstone design sequence. Focus is the application of techniques to the design of electronic systems that have digital hardware and software components. Students apply the theory acquired from numerous engineering courses to solve real-world design problems. The design will consider realistic constraints including economic, environmental, sustainability, manufacturability, ethical, social, safety.
Spring 2011: Students: 17 SETE: NA
Spring 2010: Students: 11 SETE: NA
NOTE: UNT Administration posted that SETE scores over 738 rate “Highly Effective” for Spring 2010 and over 741 for Summer 2010.
---------------------------------------------------------------------------------------------------------------------------------
Experience:
Adjunct Professor Southern Methodist University 07/07-12/07
Course Taught: 4381. Digital Computer Design. Machine organization, instruction set architecture design, memory design, control design: hardwired control and microprogrammed control, algorithms for computer arithmetic, microprocessors and pipelining. Working with Veril0808og HDL.
Fall 2007: Students: 23 Evaluation: 4.27 (scale 1-5)
Senior Software Engineer Sierra Nevada Corporation /PMI 10/02-06/07
Design, develop, and maintain application programs for the Signal Intelligence community. Work with Hardware and Systems Engineering to select appropriate platforms for such applications. Work with Systems Engineering to create algorithms to enhance the interpretability of collected signals. Supervisor Software Engineering Department. CMMi Appraiser.
Design applications with UML in Microsoft Visio. Program in C/C++ and Java. Work with NetBeans and Tornado 2 development environments on Windows 2000. Work to VxWorks and VSIPL for PPC based products.
Cleared for Top Secret Information and granted access to Sensitive Compartmented Information based on single scope background investigation completed on 27 Aug 2003.
Applications Engineer DNA Computing Solutions 06/00-10/02
Work with customers, in a pre- and post-sales effort, to understand the capabilities of the PowerPC products. Help customers, primarily in Mil/Aero Space market, migrate their embedded, real-time applications to the PowerPC products.
Work with Tornado 2, Windows NT, Solaris, and Linux as cross development environments. Work with VxWorks, VSIPL, and Linux on PPC based products. Programming in C/C++.
Senior Technical Support Engineer Lynx Real-Time Systems 06/98-04/00
Work with customers and staff to development solutions to problem dealing with all aspects of LynxOS Real-Time operating system for embedded, real-time applications. Worked with Lynx OS on PPC and X86 based platforms. Programming in C/C++.
Senior Software Engineer Andrew SciComm 10/96 -06/98
Lead team developing software enhancements to a cross-platform, X-Windows based GUI, ELINT application. Build new interfaces, develop functionality, integrate and test with multiple platforms (Windows/NT, UNIX, VxWorks). Modify and enhance embedded, real-time software under VxWorks. Provide instruction and direction to new hires. Security clearance granted.
Worked with Solaris and Windows NT based development environments. Worked with UIMX, NutCracker, and MKS Tools. Worked with VxWorks and Windows NT as deployment platforms. Developed TCP/IP interface between deployment platforms. Programmed in C.
Senior Applications Engineer Adaptiive Solutions 10/93-09/96
Performed customer presentation and week long training courses. Work with 64 processor, single chip, DSP-like (8/16 bit fixed point) embedded systems. Installed and configured systems. Developed, implemented, optimized, and benchmarked programs. Developed high performance parallel, embedded code, under contract, for customers. Applications as divergent as real time image processing for radar processing avionics and package label understanding.
Worked with C and CPL for an OS free deployment environment. Used Solaris and Windows based cross development tools.
Field Applications Engineer Maspar Computer Systems 07/91-10/93
Field Applications Engineer Alliant Computer Systems 06/90-05/91
Project Analyst HNSX Supercomputers xx/87-06/90
(Visiting Lecturer at the University of Singapore as representative of HNSX Supercomputers)
Mathematician CGG American Services 07/84-xx/87
Professional Services Analyst Control Data Corp 06/79-07/84
Geophysical Processor Shell Oil xx/76-06/79
Computer Operator National Convenience Stores 01/75-08/75
Sonar Technician Second Class USNR 01/75-01/81
---------------------------------------------------------------------------------------------------------------------------------
Memberships and Affiliations:
ASEE 2009 – present
INSNA 2008 – present
INFORMS 2010 – present
SIAM 2010 – present
---------------------------------------------------------------------------------------------------------------------------------
Papers/Publications/Conference Presentations in reverse chronological order:
Richard A. Goodrum, Eli V. Olinick and David W. Matula, Generating Test Data for Hierarchy Determination Software, Raytheon Information Systems and Computing Technology Network (ISaCTN) 2010
Richard A. Goodrum, David W. Matula and Eli V. Olinick, Community Identification via Structured Concurrent Flow, INFORMS Annual Meeting, 2009.
Richard A. Goodrum, David W. Matula, and Eli V. Olinick, Understanding Community Structure Identification Algorithms, INSNA Sunbelt XXIX, 2009.
Dan I. Moldovan, Sanda M. Harabagiu, Marius Pasca, Rada Mihalcea, Roxana Girju, Richard Goodrum, Vasile Rus: The Structure and Performance of an Open-Domain Question Answering System. ACL 2000
Dan I. Moldovan, Sanda M. Harabagiu, Marius Pasca, Rada Mihalcea, Richard Goodrum, Roxana Girju, Vasile Rus: LASSO: A Tool for Surfing the Answer Net. TREC 1999
Richard A. Goodrum, Paresh G. Pattani, and Gautham M. Sastri, Characterizing Performance of Supercomputer Architectures with Concurrent Scalar/Vector Capability, Supercomputing ’89, Reno, Nevada, 1989.
Henry Brysk, Marc Catheriner, Richard A. Goodrum, and Jean-Louis Pennacchioni, CGG American Services Inc., Predictive Deconvolution of Cylindrical Slant Stacks, SEG Technical Program Expanded Abstracts 6, 795, 1987.
Richard A. Goodrum, The E.M. Algorithm for Maximum Likelihood Estimates of Multivariate Normal Parameters with Incomplete Data, Masters Thesis, University of Houston, 1982.
K. C. Jain, R. R. Talley, J. A. Haggard, R. F. Kouri, R. A. Goodrum and D. E. Hartman, Integrated Use of Well Logs and Seismic Data in Exploration: State Line Area, Williston Basin, Shell Oil Company, 1978.