Konstantin Läufer

Konstantin Läufer

Professor, Department of Computer Science

Software and Systems Laboratory

Loyola University Chicago

About

Hello and welcome! Sali und willkomme zäme! ¡Hola y bienvenidos/as! Ciao e benvenuti/e!

Brief bio

I am a professor of computer science at Loyola University Chicago. I majored in physics at the University of Konstanz, Germany, and attended Rutgers University, New Jersey, as an exchange student. Prior to joining Loyola in 1992, I earned a PhD in computer science from the Courant Institute at New York University under the supervision of Benjamin F. Goldberg and Martin Odersky.

My research and teaching interests include programming languages, software architecture, distributed and pervasive computing systems, and data engineering, as well as applications in environmental sustainability and other areas of social justice. I’m affiliated with the Software and Systems Laboratory (SSL), an environment for computer systems and applied software engineering research. My research has been funded by government agencies and corporations. I’m a co-inventor on two patents owned by Lucent Technologies, where I was a research consultant (1996-2000).

I also served in various administrative roles, including associate dean of the graduate school (2005-06), department chair (2012-2018), and graduate program director (2019-20).

Hobbies

Music (saxophone), trail running (non-ultra), strength training, soccer, hiking, nordic skiing, sailing, traveling (especially scenic driving on unpaved backroads leading to remote trailheads and campsites), current affairs, movies.

Interests
  • Programming Languages
  • Software Architecture
  • Mobile and Pervasive Computing
  • Data Engineering
Education
  • PhD in Computer Science, 1992

    New York University

  • MS in Computer Science, 1989

    New York University

  • Vordiplom in Physics, 1984

    University of Konstanz

Teaching

Fall 2022

  • COMP 335/488: Formal Methods in Software Engineering
  • COMP 371/471: Theory (and Practice) of Programming Languages
  • Office hour:
    • Tue/Thu after class (no appointment required)
    • Fri 14:00-15:30 (please use Calendly to make an appointment)

Spring 2023

Code examples

GitHub

Past courses

Please see my legacy website for past course content.

*

Research

Active projects

  • UnoAPI: Curricular modules for high-performance computing using data-parallel C++ with Intel’s OneAPI.
  • DriveAware: Generating actionable data on social justice issues through vehicle-based citizen science.
  • SparkBadge: Longitudinal project status badges.
  • Loyola42ndParallel (incubation): A data-driven view of sustainability and other social justice challenges along the 42nd parallel, which runs not only through Chicago but also through Loyola University Chicago’s main campus.
  • Doyle Living Systems Lab (incubation): Smart office spaces using open-source software and hardware.
*

Publications

Quickly discover relevant content by filtering publications.
(2022). UnoAPI: Balancing Performance, Portability, and Productivity (P3) in HPC Education. Proc. EduHPC-22: Workshop on Education for High-Performance Computing.

Cite URL

(2022). Snapshot Metrics Are Not Enough: Analyzing Software Repositories with Longitudinal Metrics (Tool Demonstration). Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering.

Cite URL

(2021). Learning Test-Driven Development. O’Reilly Media, Inc..

Cite URL

(2021). Metrics Pipeline (Codename): An Analytics and Visualization Pipeline for Software Quality Metrics (Poster). Undergraduate Research and Engagement Symposium.

Cite URL

(2020). Toward a containerized pipeline for longitudinal analysis of open-source software projects (Poster). Graduate Research Symposium.

Cite URL

(2019). Tests as Maintainable Assets via Auto-Generated Spies: A Case Study Involving the Scala Collections Library's Iterator Trait. Proceedings of the Tenth ACM SIGPLAN Symposium on Scala.

Cite DOI URL

(2018). Managing Concurrency in Mobile User Interfaces with Examples in Android. Topics in Parallel and Distributed Computing.

Cite DOI

(2018). Metrics Dashboard: A Hosted Platform for Software Quality Metrics. CoRR.

Cite URL

(2017). Experiences with Scala Across the College-Level Curriculum (Invited Talk). Scala Days.

PDF Cite

(2016). A Polyglot Approach to Bioinformatics Data Integration: A Phylogenetic Analysis of HIV-1. Evolutionary Bioinformatics.

Cite DOI URL

(2015). Middleware for Collaborative Distributed/Mobile Applications: XMPP or Reactive HTTP? (Poster). Proc. 4th Greater Chicago Area System Research Workshop (GCASR), Chicago, Illinois.

PDF Cite

(2015). A Framework Architecture for Student Learning in Distributed Embedded Systems. 10th IEEE International Symposium on Industrial Embedded Systems (SIES).

Cite URL

(2015). Towards Sustainable Digital Humanities Software. Proc. Workshop on Sustainable Software for Science: Practice and Experiences (WSSSPE).

Cite URL

(2014). Scala for Introductory CS and Parallelism (Workshop). 45th ACM technical symposium / Computer science education (SIGCSE ‘14).

Cite URL

(2013). Building Capable, Energy-Efficient, Flexible Visualization and Sensing Clusters from Commodity Tablets (Poster). Proc. 4th Greater Chicago Area System Research Workshop (GCASR), Chicago, Illinois.

Cite URL

(2013). Network Technologies Used to Aggregate Environmental Data (Poster). Proc. 2nd Greater Chicago Area System Research Workshop (GCASR), Chicago, Illinois.

Cite URL

(2013). Using Scala strategically across the undergraduate curriculum (Workshop). 44th ACM technical symposium / Computer science education (SIGCSE ‘13).

Cite URL

(2012). Early Adopter Report: PDC Modules for Every Level: A Comprehensive Model for Incorporating PDC Topics into the Existing Undergraduate Curriculum (Poster). 2nd NSF/IEEE-CS TCPP Workshop on Parallel and Distributed Computing Education (EduPar), Shanghai, China.

Cite URL

(2012). Simplifying Domain Modeling and Memory Management in User-Mode Filesystems with the NOFS Framework. International Conference on Electro Information Technology 2012.

Cite URL

(2011). PDC Modules for Every Level: A Comprehensive Model for Incorporating PDC Topics into the Existing Undergraduate Curriculum. 1st NSF/IEEE-CS TCPP Workshop on Parallel and Distributed Computing Education (EduPar), Anchorage, Alaska.

Cite URL

(2011). Initial experience in moving key academic department functions to social networking sites. ICSOFT 2011 - Proceedings of the 6th International Conference on Software and Data Technologies, Volume 1, Seville, Spain, 18-21 July, 2011.

Cite URL

(2011). Moving Academic Department Functions to Social Networks and Clouds: Initial Experiences. Computing in Science and Engineering.

Cite URL

(2011). REST on Routers? Preliminary Lessons for Language Designers, Framework Architects, and App Developers. ICSOFT 2011 - Proceedings of the 6th International Conference on Software and Data Technologies, Volume 1, Seville, Spain, 18-21 July, 2011.

Cite URL

(2011). RestFS: Resources are Filesystems, too. Second International Workshop / RESTful Design (WS-REST ‘11).

Cite URL

(2011). RestFS: The Filesystem as a Connector Abstraction for Flexible Resource and Service Composition. Cloud Computing: Methodology, System, and Applications.

Cite URL

(2010). Online Layered File System (OLFS): A layered and versioned filesystem and performance analysis. IEEE International Conference on Electro/Information Technology (EIT 2010).

Cite URL

(2010). Virtualization for Computational Scientists. Computing in Science and Engineering.

Cite URL

(2009). Essential Tools: Version Control Systems. Computing in Science and Engineering.

Cite URL

(2009). GroupSpeak: High-level Language Extension for Workflow Capability. IEEE International Conference on Web Services, ICWS 2009, Los Angeles, CA, USA, 6-10 July 2009.

Cite DOI URL

(2009). Putting a Slug to Work. Computing in Science and Engineering.

Cite URL

(2009). Scientific Programming: The Promises of Typed, Pure, and Lazy Functional Programming: Part II. Computing in Science and Engineering.

Cite URL

(2008). A Stroll through Domain-Driven Development with Naked Objects. Comput. Sci. Eng..

Cite DOI URL

(2008). Combining SOA and BPM Technologies for Cross-System Process Automation. Proceedings of the Twentieth International Conference on Software Engineering & Knowledge Engineering (SEKE'2008), San Francisco, CA, USA, July 1-3, 2008.

PDF Cite

(2008). Taming XML: Objects First, Then Markup. IEEE International Conference on Electro/Information Technology (EIT 2008).

Cite URL

(2008). What I Did on My Summer Vacation. Computing in Science and Engineering.

Cite URL

(2007). A Hike through a Post-EJB J2EE Web Application Architecture, Part III. Computing in Science and Engineering.

Cite URL

(2007). A Model-Driven Approach to Job/Task Composition in Cluster Computing. 2007 IEEE International Parallel and Distributed Processing Symposium.

Cite DOI

(2006). Unit Testing Considered Useful. Computing in Science and Engineering.

Cite URL

(2005). A hike through post-EJB J2EE Web application architecture. Comput. Sci. Eng..

Cite DOI URL

(2004). Natural XML for Data Binding, Processing, and Persistence. Computing in Science and Engineering.

Cite URL

(2004). Plone and Content Management. Computing in Science and Engineering.

Cite URL

(2003). Method and apparatus for providing interactive services with multiple interfaces.

Cite URL

(2003). Method and apparatus for providing interactive services with multiple interfaces.

Cite URL

(2003). Mockup Supporting Web Requirements Engineering. Proceedings of the International Conference on Internet Computing, IC ‘03, Las Vegas, Nevada, USA, June 23-26, 2003, Volume 2.

PDF Cite

(2003). Using handheld and wireless technology for classroom and community-based South Asian language pedagogy.

Cite URL

(2002). Half & Half: Multiple Dispatch and Retroactive Abstraction for Java.

PDF Cite

(2000). A Constraint-Based Framework for Prototyping Distributed Virtual Applications. Principles and Practice of Constraint Programming - CP 2000, 6th International Conference, Singapore, September 18-21, 2000, Proceedings.

Cite DOI URL

(2000). Automated systematic testing for constraint-based interactive services. ACM SIGSOFT Symposium on Foundations of Software Engineering, an Diego, California, USA, November 6-10, 2000, Proceedings.

Cite DOI URL

(2000). Safe Structural Conformance for Java. Comput. J..

PDF Cite DOI URL

(2000). Sisl: Several Interfaces, Single Logic. Int. J. Speech Technol..

Cite DOI URL

(2000). The Triveni project. ACM SIGSOFT Softw. Eng. Notes.

Cite DOI URL

(1998). Interaction, Concurrency, and OOP in the Curriculum: a Sophomore Course. Proc. OOPSLA 1998 Educators’ Symposium.

PDF Cite

(1998). Design and Implementation of Triveni: A Process-Algebraic API for Threads + Events. Proceedings of the 1998 International Conference on Computer Languages, ICCL 1998, Chicago, IL, USA, May 14-16, 1998.

Cite DOI URL

(1998). Objects and Concurrency in Triveni: A Telecommunication Case Study in Java. 4th USENIX Conference on Object-Oriented Technologies and Systems (COOTS), April 27-30, 1998, Eldorado Hotel, Santa Fe, New Mexico, USA.

Cite URL

(1998). The Semantics of Triveni: A Process-Algebraic API for Threads + Events. Electron. Notes Theor. Comput. Sci..

Cite DOI URL

(1996). On the Interaction of Object-Oriented Design Patterns and Programming Languages.

PDF Cite URL

(1996). Putting Type Annotations to Work. Conference Record of POPL'96: The 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Papers Presented at the Symposium, St. Petersburg Beach, Florida, USA, January 21-24, 1996.

PDF Cite DOI URL

(1996). Type Classes with Existential Types. J. Funct. Program..

PDF Cite DOI URL

(1995). Interactive Web Applications Based on Finite State Machines (Invited Talk). Proc. Symp. Information Systems Analysis and Synthesis (ISAS).

PDF Cite

(1995). A Framework for Higher-Order Functions in C++. Proceedings of the USENIX Conference on Object-Oriented Technologies, COOTS'95, Monterey, California, USA, June 26-29, 1995.

PDF Cite URL

(1994). Combining Type Classes and Existential Types. Proc. Latin American Informatics Conf. (PANEL).

PDF Cite

(1994). Polymorphic Type Inference and Abstract Data Types. ACM Trans. Program. Lang. Syst..

PDF Cite DOI URL

(1993). Self-Interpretation and Reflection in a Statically Typed Language. Proc. OOPSLA Workshop on Reflection and Metalevel Architectures.

PDF Cite

(1992). An Extension of ML with First-Class Abstract Types. Proc. ACM SIGPLAN Workshop on ML and its Applications.

PDF Cite

(1991). Programming with Structures, Functions, and Objects. Proc. XVII Latin American Informatics Conference (PANEL ‘91).

PDF Cite

(1991). Type Classes are Signatures of Abstract Types. Declarative Programming, Sasbachwalden 1991, PHOENIX Seminar and Workshop on Declarative Programming, Sasbachwalden, Black Forest, Germany, 18-22 November 1991.

PDF Cite DOI URL

Contact