Steven R. Vegdahl

Associate Professor of Computer Science, Emeritus

Shiley School of Engineering, MSC 145
University of Portland
5000 N. Willamette Blvd.
Portland, OR 97203-5798
email: vegdahl@up.edu
web: http://faculty.up.edu/vegdahl

Education:

                   Ph.D., Computer Science

                     

B.S., Mathematics

                   Carnegie-Mellon University

Stanford University

                   December 1982

June 1976

Employment:

June 2002 – June 2023          University of Portland, Portland, OR
   Associate Professor of Computer Science

Teaching undergraduate courses and laboratories in computer science. Performing research in compilers, computer architecture, computer science education, and data structures. Advising students. Advising senior capstone projects. Reviewing and revising CS curriculum. Serving on school and university committees. (Chair of the CS program 2005-2018.)

August 1996 - May 2002          University of Portland, Portland, OR
   Assistant Professor of Computer Science

Teaching undergraduate courses and laboratories in computer science. Performing research in compilers and data structures. Advising students. Facilitating relations with nearby industry; placing students in (and supervising) internships. Serving on school and university committees. Reviewing and revising CS curriculum.

June 1990 - June 1996          Adaptive Solutions, Inc., Beaverton, OR
   Senior Software Engineer

Led a three-person team that designed and implemented the language and compiler for a parallel version of the C programming language for the CNAPS parallel computer, an architecture designed for neural-net and pattern-matching applications. Gave presentations about the architecture, language and compiler to customers and researchers.

August 1995 - December 1995          University of Portland, Portland, OR
   Adjunct Assistant Professor of Computer Science

Taught an undergraduate course in assembly language programming. (Concurrent with position at Adaptive Solutions.)

August 1989 - May 1990          Harvey Mudd College, Claremont, CA
   Visiting Associate Professor of Computer Science

Taught courses whose topics included introductory programming, computer architecture, compilers, theory of computation, and programming languages. Supervised a seven-person student research group that implemented a compiler for the Turing programming language. Served on committee that designed a curriculum for a new computer science major. Senior-thesis advisor for two students.

August 1983 - August 1989          Tektronix Inc., Beaverton, OR
   Research Computer Scientist

Part of a three-person team that implemented a Scheme compiler for the Motorola 88000; responsibilities included design of a major portion of the runtime environment, and the implementation of many of the source- and intermediate-level transformations. Used the Smalltalk programming language to implement a program transformation system. Designed and helped implement a program-generator that produces interpreters for variants of the GPIB machine-interface language, which has been used in a number of successful Tektronix products.

March 1986 - March 1989          Oregon Graduate Institute, Beaverton, OR
   Adjunct Assistant Professor of Computer Science

Taught a graduate-level two-course sequence in compilers where students implemented a compiler for a subset of the ML programming language. (Concurrent with Tektronix position.)

February 1983 - August 1983          Tartan Laboratories, Pittsburgh, PA
   Software Engineer

Implemented several modules of an automated compiler-generating system.

Professional Activities and Affiliations:

Member, Association for Computing Machinery (SIGPLAN, SIGMICRO, SIGCSE).

Courses taught:

·      Introduction to Engineering

·      Introduction to Computer Science

·      Introduction to Computer Science Laboratory

·      Object-Oriented Design

·      Object-Oriented Design Laboratory

·      Data Structures

·      Data Structures Laboratory

·      Unix/Linux Tools Laboratory

·      Assembly Language Programming

·      Analysis of Algorithms

·      Computer Architecture

·      Programming Languages

·      Compiler Design

·      Advanced Programming Techniques

·      Computer Graphics

·      Topics in Computer Science

Research Interests:

Compilers, compiler testing, functional and object-oriented programming languages, data structures.

University Service (University of Portland):

·      Presidential Advisory Committee on Athletics

·      Committee on Curriculum and Academic Regulations

·      Committee on Committees

·      Committee on Teaching and Scholarship

·      Faculty search committees

Honors, Awards:

Publications:

Jones, A.K. and R.J. Chansler, I. Durham, P. Feiler, D.A. Scelza, K. Schwans, S.R. Vegdahl, Programming Issues Raised by a Multiprocessor, Proc. IEEE, Vol. 66, No. 2, 1978.

Jones, A.K. and R.J. Chansler, I. Durham, K. Schwans, S.R. Vegdahl, StarOS, A Multiprocessor Operating System for the Support of Task Forces, Proc. 7th Symposium on Operating Systems Principles, 1979.

Gehringer, E.F. and S.R. Vegdahl, LETTER: a System for Personalizing Processed Text, Proc. 3rd Symposium on Small Systems, 1980.

Vegdahl, S.R., Phase Coupling and Constant Generation in an Optimizing Microcode Compiler, Proc. 15th Annual Workshop on Microprogramming, October 1982.

Vegdahl, S.R., Local Code Generation and Compaction in Optimizing Microcode Compilers, Ph.D. Thesis, Computer Science Department, Carnegie-Mellon University, 1982.

Vegdahl, S.R., A Survey of Proposed Architectures for the Execution of Functional Languages (invited paper), IEEE Transactions on Computers, Vol. C-33, No. 12, December 1984.

Vegdahl, S.R., The Design of an Interactive Compiler for Optimizing Microprograms, Proc. 18th Annual Workshop on Microprogramming, December 1985.

Vegdahl, S.R., Microcode Optimization: Examples and Approaches, IEEE Software, Vol. 3, No. 4, July 1986.

Vegdahl, S.R., Moving Structures between Smalltalk Images, Proc. of OOPSLA-86 (Conference on Object-Oriented Systems, Languages and Applications), September 1986.

Miller, M.S. and H. Cunningham, C. Lee, S.R. Vegdahl, The Application Accelerator Illustration System, Proc. OOPSLA-86, September 1986.

Vegdahl, S.R., "Architectures that Support Functional Programming Languages," pp. 405-453 in Computer Architecture, Concepts and Systems, edited by V.M. Milutinovic, North-Holland, 1988.

Vegdahl, S.R., and U.F. Pleban, The Runtime System for Screme, a Scheme Implementation on the 88000, Proc. 3rd International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-III), April 1989.

Vegdahl, S.R., A Dynamic-Programming Technique for Compacting Loops, Proc. 25th Annual International Symposium on Microarchitecture, December 1992.

Vegdahl, S.R., Using Node Merging to Enhance Graph Coloring, Proc. SIGPLAN Conference on Programming Language Design and Implementation, May 1999.

Vegdahl, S.R., Using Visualization Tools to Teach Compiler Design, Consortium for Computing in Small Colleges Northwest Conference, October 2000.

Vegdahl, S.R., MIPSPILOT: A Compiler-Oriented MIPS Simulator, Journal of Computing in Small Colleges, December 2008, Vol. 24, No. 2.

Vegdahl, S.R., Visualizing NP-completeness through circuit-based widgets, Journal of Computing in Small Colleges, October 2014, Vol. 30, No. 1.

Presentations:

Vegdahl, S.R., Analysis of Recursive, List-Based Insertion Sort, presented at SIGCSE conference (March 2014) in Atlanta, GA.