@misc{Laufer_TLANotebook_2025,author={Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=myself},date={2025-02},doi={10.6084/m9.figshare.28376276.v1},title={{TLA}+ for All: Model Checking in a Python Notebook},year={2025}}
Background: In this paper, we present our initial efforts to integrate formal methods, with a focus on model-checking specifications written in Temporal Logic of Actions (TLA+), into computer science education, targeting undergraduate juniors/seniors and graduate students. Formal methods can play a key role in ensuring correct behavior of safety-critical systems, yet remain underutilized in educational and industry contexts. Aims: We aim to (1) qualitatively assess the state of formal methods in computer science programs, (2) construct level-appropriate examples that could be included midway into one’s undergraduate studies, (3) demonstrate how to address successive "failures" through progressively stringent safety and liveness requirements, and (4) establish an ongoing framework for assessing interest and relevance among students. Methods: After starting with a refresher on mathematical logic, students specify the rules of simple puzzles in TLA+ and use its included model checker (known as TLC) to find a solution. We gradually escalate to more complex, dynamic, event-driven systems, such as the control logic of a microwave oven, where students will study safety and liveness requirements. We subsequently discuss explicit concurrency, along with thread safety and deadlock avoidance, by modeling bounded counters and buffers. Results: Our initial findings suggest that through careful curricular design and choice of examples and tools, it is possible to inspire and cultivate a new generation of software engineers proficient in formal methods. Conclusions: Our initial efforts suggest that 84% of our students had a positive experience in our formal methods course. Future plans include a longitudinal analysis within our own institution and proposals to partner with other institutions to explore the effectiveness of our open-source and open-access modules.
@inproceedings{Laufer_FIE_2024,author={Läufer, Konstantin and Mertin, Gunda and Thiruvathukal, George K.},author+an={1=myself;2=graduate},booktitle={Proceedings of the 2024 {IEEE} Frontiers in Education Conference ({FIE})},date={2024-10},doi={10.1109/FIE61694.2024.10893422},eprint={2407.21152 [cs.SE]},eprinttype={arxiv},location={Washington, {DC}},title={{WIP}: An Engaging Undergraduate Intro to Model Checking in Software Engineering Using {TLA}+},url={https://arxiv.org/abs/2407.21152},year={2024}}
Our hands-on course introduces model checking using Temporal Logic of Actions through practical examples like the control logic for a microwave oven. Due to highly positive initial feedback from our own students, we plan to broaden our reach by partnering with other institutions.
@article{Laufer_IEEEComputer_2024,author={Läufer, Konstantin and Mertin, Gunda and Thiruvathukal, George K.},author+an={1=myself;2=graduate},date={2024-12},doi={10.1109/MC.2024.3462188},journaltitle={Computer},number={12},title={Engaging More Students in Formal Methods Education: A Practical Approach Using Temporal Logic of Actions},volume={57},year={2024}}
Can Large-Language Models Help us Better Understand and Teach the Development of Energy-Efficient Software?
Ryan Hasler, Konstantin Läufer, George K. Thiruvathukal, and 5 more authors
@misc{Hasler_LLMENERGY_2024,author={Hasler, Ryan and Läufer, Konstantin and Thiruvathukal, George K. and Peng, Huiyun and Robinson, Kyle and Davis, Kirsten and Lu, Yung-Hsiang and Davis, James C.},author+an={1=graduate;2=myself},date={2024-10},eprint={2411.08912 [cs.CY]},eprinttype={arxiv},title={Can Large-Language Models Help us Better Understand and Teach the Development of Energy-Efficient Software?},year={2024}}
Large Language Models for Energy-Efficient Code: Emerging Results and Future Directions
Huiyun Peng, Arjun Gupte, Nicholas John Eliopoulos, and 8 more authors
Energy-efficient software helps improve mobile device experiences and reduce the carbon footprint of data centers. However, energy goals are often de-prioritized in order to meet other requirements. We take inspiration from recent work exploring the use of large language models (LLMs) for different software engineering activities. We propose a novel application of LLMs: as code optimizers for energy efficiency. We describe and evaluate a prototype, finding that over 6 small programs our system can improve energy efficiency in 3 of them, up to 2x better than compiler optimizations alone. From our experience, we identify some of the challenges of energy-efficient LLM code optimization and propose a research agenda.
@misc{Peng_LLMEnergy_2024,author={Peng, Huiyun and Gupte, Arjun and Eliopoulos, Nicholas John and Ho, Chien Chou and Mantri, Rishi and Deng, Leo and Jiang, Wenxin and Lu, Yung-Hsiang and Läufer, Konstantin and Thiruvathukal, George K. and Davis, James C.},author+an={9=myself},date={2024-10},eprint={2410.09241 [cs.SE]},eprinttype={arxiv},title={Large Language Models for Energy-Efficient Code: Emerging Results and Future Directions},year={2024}}
One of the key goals in high-performance and distributed software engineering is to leverage the specific capabilities of the target hardware to the extent possible. Today’s systems are typically heterogeneous, where one or more architectures may be present within a single system, such as conventional CPU cores combined with accelerators such as GPUs and FPGAs. Although parallel computing itself has reached a high level of maturity, as we move toward exascale and beyond computing, challenges similar to those that plagued the earliest days of parallel and distributed computing are beginning to resurface: Leveraging heterogeneity while balancing performance, software portability, and developer productivity (P3). This tutorial provides hands-on experience in developing high-performance and embedded software for heterogeneous architectures using Intel’s oneAPI reference implementation of the Khronos SYCL standard in conjunction with state-of-the-art software engineering methods. By raising the abstraction level via its unified application programming interface (API), oneAPI makes it easier to develop portable high-performance software for systems with embedded hardware accelerators, such as GPUs and FPGAs.
@inproceedings{Laufer_escience_2023,author={Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=myself},booktitle={{IEEE} {eScience} Conference, Limmasol, Cyprus},date={2023-10},title={{UnoAPI}: Modern Techniques for Engineering High-Performance Software (Tutorial)},url={https://www.escience-conference.org/2023/tutorials/unoapi},year={2023}}
New technologies as decision aids for the advancement of ecological risk assessment
Federico Sinche Chele, Priscilla Jimenez‐Pazmino, and Konstantin Läufer
Moore’s law states that the number of transistors that can be placed on an integrated circuit doubles every two years (Moore, 1975). This has led to a steady increase in the processing power of computers over time, and technology is now enhancing and advancing software and scientific applications, which has enabled computationally intensive methods such as machine learning, data science, modeling, and simulation. The advancement of computers and data-driven algorithms is profoundly impacting people’s lives. It is changing the way we work, the way we learn, and the way we interact with the world around us. Here, this editorial will discuss how scientists can benefit from the latest technology advancements and related tools by incorporating them into the ecological risk assessment (ERA) to study ecosystems as a way to create refined assessments and accelerate the turnaround times.
@article{Sinche_OSTI_2023,author={Chele, Federico Sinche and Jimenez‐Pazmino, Priscilla and Läufer, Konstantin},author+an={3=myself},date={2023-08},doi={10.1002/ieam.4815},journaltitle={Integrated Environmental Assessment and Management},number={5},title={New technologies as decision aids for the advancement of ecological risk assessment},url={https://www.osti.gov/biblio/2000330},volume={19},year={2023}}
Abstract—oneAPI is a major initiative by Intel aimed at making it easier to program heterogeneous architectures used in high-performance computing using a unified application programming interface (API). While raising the abstraction level via a unified API represents a promising step for the current generation of students and practitioners to embrace highperformance computing, we argue that a curriculum of welldeveloped software engineering methods and well-crafted exemplars will be necessary to ensure interest by this audience and those who teach them. We aim to bridge the gap by developing a curriculum—codenamed UnoAPI—that takes a more holistic approach by looking beyond language and framework to include the broader development ecosystem, similar to the experience found in popular HPC languages such as Python. We hope to make parallel programming a more attractive option by making it look more like general application development in modern languages being used by most students and educators today. Our curriculum emanates from the perspective of well-crafted exemplars from the foundations of computer systems—given that most HPC architectures of interest begin from the systems tradition—with an integrated treatment of essential principles of distributed systems, programming languages, and software engineering. We argue that a curriculum should cover the essence of these topics to attract students to HPC and enable them to confidently solve computational problems using oneAPI. By the time of this submission, we have shared our materials with a small group of undergraduate sophomores, and their responses have been encouraging in terms of self-reported comprehension and ability to reproduce the compilation and execution of exemplars on their personal systems. We plan a follow-up study with a larger cohort by incorporating some of our materials in our existing course on High-Performance Computing.
@inproceedings{Laufer_EduHPC_2022,author={Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=myself},booktitle={Proceedings of the Workshop on Education for High-Performance Computing ({EduHPC}-22)},date={2022-11},doi={10.6084/m9.figshare.21200464.v3},location={Dallas, {TX}, {USA}},note={Held in conjunction with {SC}22},title={{UnoAPI}: Balancing Performance, Portability, and Productivity (P3) in {HPC} Education},url={https://ecommons.luc.edu/cs_facpubs/314/},year={2022}}
Software metrics capture information about software development products and processes. These metrics support decision-making, e.g., in team management or dependency selection. However, existing metrics tools measure only a snapshot of a software project. Little attention has been given to enabling engineers to reason about metric trends over time—longitudinal metrics that give insight about process, not just product. In this work, we present PRIME (PRocess Internal MEtrics), a tool for computing and visualizing process metrics. The currently-supported metrics include productivity, issue density, issue spoilage, and bus factor. We illustrate the value of longitudinal data and conclude with a research agenda.
@inproceedings{Synovic_ASE_2022,author={Synovic, Nicholas and Hyatt, Matt and Sethi, Rohan and Thota, Sohini and {Shilpika} and Miller, Allan J. and Jiang, Wenxin and Amobi, Emmanuel S. and Pinderski, Austin and Läufer, Konstantin and Hayward, Nicholas J. and Klingensmith, Neil and Davis, James C. and Thiruvathukal, George K.},author+an={1=undergrad;2=undergrad;3=undergrad;4=undergrad;6=graduate;8=undergrad;9=undergrad;10=myself},booktitle={Proceedings of the 37th {IEEE}/{ACM} International Conference on Automated Software Engineering},date={2022-10},doi={10.1145/3551349.3559517},location={Ann Arbor, {MI}, {USA}},publisher={Association for Computing Machinery},series={{ASE} '22},title={Snapshot Metrics Are Not Enough: Analyzing Software Repositories with Longitudinal Metrics (Tool Demonstration)},url={https://ecommons.luc.edu/cs_facpubs/296/},year={2022}}
LUC
DriveAware: Generating Actionable Data through Vehicle-Based Citizen Science (Poster)
Álvaro Landaluce, Federico Sinche Chele, Loretta Stalans, and 2 more authors
As we’re driving around Chicago going about our weekly business, we can’t help but notice telltale signs of social problems in our neighborhoods, such as homelessness, drug use, street prostitution, and suspected human trafficking. Some neighborhoods are frozen in time, often with little evidence of new development and access to opportunities that are clustered around the north side of Chicago. It may not be comfortable for us to intervene directly or scientifically sound to draw conclusions based on our isolated observations. Nevertheless, we may have an opportunity to contribute as citizen scientists by recording our observations and sharing them with better-equipped stakeholders. The interdisciplinary DriveAware project aims to use mobile computing technology to make it safe and convenient for citizen scientists in their vehicles or on foot to augment existing observations, e.g. Google Street View, such as geotagged annotated images, to various stakeholders, such as social scientists, law enforcement, social service providers, and ordinary fellow citizens. The collected data can be used in various ways, including offline data analysis and real-time maps and dashboards, as well as concrete action, such as social scientists going on location to interview the affected individuals, law enforcement investigating and prosecuting potential incidents, and social service providers intervening directly, e.g., by picking up homeless persons during a cold spell and taking them to shelters. In addition to the interdisciplinary stakeholders’ existing research questions, this project gives rise to various computer science research questions, such as system requirements and architecture, system implementation, integration with existing databases in particular fields, user experience studies to determine the likelihood of reporting observations through in-car voice-based and/or reduced distraction touch interfaces (Android Auto/Apple CarPlay) versus conventional mobile apps. To support our research questions, we have developed a proof of concept of a mobile application for reporting observations in various pertinent categories, which get stored in a cloud-hosted Firebase (NoSQL) instance and can be accessed through a Python Jupyter notebook and analyzed/visualized in multidimensional ways. Future plans include integration with commercial automotive frameworks, such as Android Auto (and eventually Apple CarPlay) and automatic image collection from dashcams connected to the mobile phone via Bluetooth. The diagram below illustrates the high-level system architecture.
@inproceedings{DeLandaluce_DriveAware_2022,author={de Landaluce, Álvaro and Sinche Chele, Federico and Stalans, Loretta and Thiruvathukal, George K. and Läufer, Konstantin},author+an={1=graduate;5=myself},booktitle={Computer Science Research Symposium},date={2022},title={{DriveAware}: Generating Actionable Data through Vehicle-Based Citizen Science (Poster)},url={https://ecommons.luc.edu/csrs/ay2021-2022/techreport/1/},year={2022}}
@book{SaleemSiddiqui_2021,author={Siddiqui, Saleem},date={2021},isbn={978-1-0981-0647-8},note={Foreword by Konstantin Läufer},publisher={O'Reilly Media, Inc.},title={Learning Test-Driven Development},url={https://learning.oreilly.com/library/view/learning-test-driven-development/9781098106461/foreword01.html},year={2021}}
LUC
Metrics Pipeline (Codename): An Analytics and Visualization Pipeline for Software Quality Metrics (Poster)
Nicholas Synovic, Emmanuel Amobi, Erik Greve, and 8 more authors
In Undergraduate Research and Engagement Symposium, 2021
The Metrics Pipeline (Codename) focuses on metrics indicative of team progress and project health instead of privileging individual metrics, e.g. number of commits, etc. The Metrics Dashboard allows the user to submit the URL of a hosted repository for batch analysis, whose results are then cached. Upon completion, the user can interactively study various metrics over time (at varying granularity), numerically, and visually. The initial version of the system is up and running as a public cloud service (SaaS) and supports project size (KLOC), defect density, defect spoilage, and productivity. While our system is by no means the first to support software metrics, we believe it may be one of the first community-focused extensible resources that can be used by any hosted project.
@inproceedings{Synovic_URES_2021,author={Synovic, Nicholas and Amobi, Emmanuel and Greve, Erik and Von Hatten, Sophie and Pinderski, Austin and Rodriguez, Stephanie and Zugschwert, Martin and Davis, Jamie C. and Hayward, Nicholas and Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=undergrad;2=undergrad;3=undergrad;4=graduate;5=undergrad;6=undergrad;7=undergrad;10=myself},booktitle={Undergraduate Research and Engagement Symposium},date={2021},title={Metrics Pipeline (Codename): An Analytics and Visualization Pipeline for Software Quality Metrics (Poster)},url={https://ecommons.luc.edu/ures/2021/2021/91/},year={2021}}
2020
LUC
Toward a containerized pipeline for longitudinal analysis of open-source software projects (Poster)
Allan Miller, George K. Thiruvathukal, Konstantin Läufer, and 10 more authors
Trust in open-source software is a cornerstone of scientific progress and a foundation of high-quality public services. Just as standards are integral when judging the efficacy of a novel pharmaceutical compound or determining the spread of a new disease, the software used to make those determinations should be useful, error-free, reliable, performant, and secure. A small bug in an application, library, or framework can lead to economic loss and even loss of life. We rely on software developers to be dynamic and responsive to user review and bug-reporting. Our team developed an open-source modular pipeline to perform empirical investigations of software quality. A key innovation of our approach is to look at projects “from a distance” similar to methods used in climate, e.g. satellite images being used to observe environmental impacts in air quality/rain forests. Instead of looking at language-specific source code features, our pipeline uses a language-agnostic high-level approach to track software quality by focusing on the development process itself, which yields great insight into the processes programmers use to write and maintain their software. Our distributed modular approach to analytics allows the pipeline to be easily extended to support additional metrics in future work. We store extracted data in an embedded SQLite database, which means that analysis can proceed without complex server setup, let alone hosting the software on dedicated servers. Our analytical modules are designed for efficiency, and future runs of our software only collect missing data, supporting the incremental analysis of known, important open-source projects.
@inproceedings{Miller_GRS_2020,author={Miller, Allan and Thiruvathukal, George K. and Läufer, Konstantin and Amobi, Emmanuel and Higgins, Sean and Maliakal, Linette and Meister, Emily and Putter, Jean-Luc and Rose, Alex and Synovic, Nicholas and Von Hatten, Sophie and Warkentin, Jonathan and Zugschwert, Martin},author+an={1=graduate;3=myself;4=undergrad;5=undergrad;6=undergrad;7=undergrad;8=undergrad;9=undergrad;10=undergrad;11=undergrad;12=undergrad;13=undergrad},booktitle={Graduate Research Symposium},date={2020},title={Toward a containerized pipeline for longitudinal analysis of open-source software projects (Poster)},url={https://ecommons.luc.edu/grs/2020/posters/4},year={2020}}
In testing stateful abstractions, it is often necessary to record interactions, such as method invocations, and express assertions over these interactions. Following the Test Spy design pattern, we can reify such interactions programmatically through additional mutable state. Alternatively, a mocking framework, such as Mockito, can automatically generate test spies that allow us to record the interactions and express our expectations in a declarative domain-specific language. According to our study of the test code for Scala’s Iterator trait, the latter approach can lead to a significant reduction of test code complexity in terms of metrics such as code size (in some cases over 70% smaller), cyclomatic complexity, and amount of additional mutable state required. In this tools paper, we argue that the resulting test code is not only more maintainable, readable, and intentional, but also a better stylistic match for the Scala community than manually implemented, explicitly stateful test spies.
@inproceedings{Laufer_Scala_2019,author={Läufer, Konstantin and O'Sullivan, John and Thiruvathukal, George K.},author+an={1=myself;2=graduate},booktitle={Proceedings of the Tenth {ACM} {SIGPLAN} Symposium on Scala},date={2019-07},doi={10.1145/3337932.3338814},eprint={1808.09630},eprinttype={arxiv},keywords={automated unit testing, iterator design pattern, mock-based testing, prefix sum, spy-based testing, stream processing, test code complexity, test code metrics},location={London, United Kingdom},pages={17--21},publisher={Association for Computing Machinery},series={Scala '19},title={Tests as Maintainable Assets via Auto-Generated Spies: A Case Study Involving the Scala Collections Library's Iterator Trait},url={https://2019.ecoop.org/details/scala-2019-papers/6/Tests-as-Maintainable-Assets-Via-Auto-generated-Spies},year={2019}}
In this chapter, we explore various parallel and distributed computing topics from a user-centric software engineering perspective. Specifically, in the context of mobile application development, we study the basic building blocks of interactive applications in the form of events, timers, and asynchronous activities, along with related software modeling, architecture, and design topics.
@incollection{Laufer_CDERBook_2018,author={Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=myself},booktitle={Topics in Parallel and Distributed Computing},date={2018-09},doi={10.1007/978-3-319-93109-8_9},editor={Prasad, Sushil K. and Gupta, Anshul and Rosenberg, Arnold and Sussman, Alan and Weems, Charles},eprint={1705.02899},eprinttype={arxiv},publisher={Springer},title={Managing Concurrency in Mobile User Interfaces with Examples in Android},url={https://arxiv.org/abs/1705.02899},year={2018}}
Metrics Dashboard: A Hosted Platform for Software Quality Metrics
George K. Thiruvathukal, Shilpika, Nicholas J. Hayward, and 1 more author
There is an emerging consensus in the scientific software community that progress in scientific research is dependent on the "quality and accessibility of software at all levels" (this http URL). This progress depends on embracing the best traditional—and emergent—practices in software engineering, especially agile practices that intersect with the more formal tradition of software engineering. As a first step in our larger exploratory project to study in-process quality metrics for software development projects in Computational Science and Engineering (CSE), we have developed the Metrics Dashboard, a platform for producing and observing metrics by mining open-source software repositories on GitHub. Unlike GitHub and similar systems that provide individual performance metrics (e.g. commits), the Metrics Dashboard focuses on metrics indicative of team progress and project health. The Metrics Dashboard allows the user to submit the URL of a hosted repository for batch analysis, whose results are then cached. Upon completion, the user can interactively study various metrics over time (at varying granularity), numerically and visually. The initial version of the system is up and running as a public cloud service (SaaS) and supports project size (KLOC), defect density, defect spoilage, and productivity. While our system is by no means the first to support software metrics, we believe it may be one of the first community-focused extensible resources that can be used by any hosted project.
@report{Thiruvathukal_MetricsDashboard_2018,author={Thiruvathukal, George K. and {Shilpika} and Hayward, Nicholas J. and Läufer, Konstantin},author+an={4=myself;2=graduate},date={2018-04},eprint={1804.02053 [cs.SE]},eprinttype={arxiv},institution={Loyola University Chicago},timestamp={Mon, 13 Aug 2018 16:47:28 +0200},title={Metrics Dashboard: A Hosted Platform for Software Quality Metrics},type={techreport},year={2018}}
2017
Experiences with Scala Across the College-Level Curriculum (Invited Talk)
Mark Lewis, Konstantin Läufer, and George K. Thiruvathukal
@inproceedings{Lewis_ScalaDays_2017,author={Lewis, Mark and Läufer, Konstantin and Thiruvathukal, George K.},author+an={2=myself},date={2017-05},eventtitle={Scala Days},location={Chicago, {IL}, {USA}},publisher={{GOTO} Conferences},title={Experiences with Scala Across the College-Level Curriculum (Invited Talk)},url={https://docs.google.com/presentation/d/1bRLxAcNxrtbOW8T0SUNs_PdyCfKL9ZGhBIChXWgv29Q},year={2017}}
As sequencing technologies continue to drop in price and increase in throughput, new challenges emerge for the management and accessibility of genomic sequence data. We have developed a pipeline for facilitating the storage, retrieval, and subsequent analysis of molecular data, integrating both sequence and metadata. Taking a polyglot approach involving multiple languages, libraries, and persistence mechanisms, sequence data can be aggregated from publicly available and local repositories. Data are exposed in the form of a RESTful web service, formatted for easy querying, and retrieved for downstream analyses. As a proof of concept, we have developed a resource for annotated HIV-1 sequences. Phylogenetic analyses were conducted for ¿6,000 HIV-1 sequences revealing spatial and temporal factors influence the evolution of the individual genes uniquely. Nevertheless, signatures of origin can be extrapolated even despite increased globalization. The approach developed here can easily be customized for any species of interest.
@article{doi:10.4137/EBO.S32757,author={Reisman, Steven and Hatzopoulos, Thomas and Läufer, Konstantin and Thiruvathukal, George K. and Putonti, Catherine},author+an={1=graduate;2=undergrad;3=myself},date={2016},doi={10.4137/EBO.S32757},journaltitle={Evolutionary Bioinformatics},title={A Polyglot Approach to Bioinformatics Data Integration: A Phylogenetic Analysis of {HIV}-1},volume={12},year={2016}}
Academic courses focused on individual microcomputers or client/server applications are no longer sufficient for students to develop knowledge in embedded systems. Current and near-term industrial systems employ multiple interacting components and new network and security approaches; hence, academic preparation requires teaching students to develop realistic projects comparable to these real-world products. However, the complexity, breadth, and technical variations of these real-world products are difficult to reproduce in the classroom. This paper outlines preliminary work on a framework architecture suitable for academic teaching of modern embedded systems including the Internet of Things. It defines four layers, two of which are at the edges of the network, and not adequately covered in academia. For each layer of the architecture, specific technology and suitable devices are identified. Desired academic outcomes for courses using projects based on the architecture are identified. Feedback and comparison is sought on how effective student course and research activities based on the framework will be to real-world embedded systems developers.
@inproceedings{Honig_SIES_2015,author={Honig, William and Läufer, Konstantin and Thiruvathukal, George K.},author+an={2=myself},booktitle={10th {IEEE} International Symposium on Industrial Embedded Systems ({SIES})},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2015-06},doi={10.1109/SIES.2015.7185052},pages={1--4},title={A Framework Architecture for Student Learning in Distributed Embedded Systems},url={https://ecommons.luc.edu/cs_facpubs/257/},year={2015}}
Middleware for Collaborative Distributed/Mobile Applications: XMPP or Reactive HTTP? (Poster)
Brian Gathright, Konstantin Läufer, Aziz Parsa, and 1 more author
@inproceedings{Gathright_GCASR_2015,author={Gathright, Brian and Läufer, Konstantin and Parsa, Aziz and Thiruvathukal, George K.},author+an={1=undergrad;2=myself;3=graduate},date={2015-05},eventtitle={4th Greater Chicago Area System Research Workshop ({GCASR})},location={Chicago, {IL}, {USA}},title={Middleware for Collaborative Distributed/Mobile Applications: {XMPP} or Reactive {HTTP}? (Poster)},url={https://drive.google.com/file/d/0B8Bb5t8tHAw-bzY5blk4Q3U5ckE/view?resourcekey=0-ZCTtc5dJ5ke3QDj1d7Ct-Q},year={2015}}
Towards Sustainable Digital Humanities Software
George K. Thiruvathukal, Shilpika, Nicholas Hayward, and 2 more authors
@inproceedings{Thiruvathukal_CCDHCS_2015,author={Thiruvathukal, George K. and {Shilpika} and Hayward, Nicholas and Aguiar, Saulo and Läufer, Konstantin},author+an={2=graduate;4=graduate;5=myself},date={2015-11},eventtitle={Chicago Colloquium on Digital Humanities and Computer Science},location={Chicago, {IL}, {USA}},title={Towards Sustainable Digital Humanities Software},url={https://ecommons.luc.edu/cs_facpubs/126/},year={2015}}
2014
SIGCSE
Scala for Introductory CS and Parallelism (Workshop)
Mark Lewis, Konstantin Läufer, and George K. Thiruvathukal
In 45th ACM Technical Symposium / Computer Science Education (SIGCSE ’14), New York, NY, USA, 2014
Scala is one of a new breed of hybrid languages with both object-oriented and functional aspects. It happens to be the most successful of these languages coming in at #12 on the Red Monk language ranking and leading all languages in their 2nd tier. This workshop will introduce participants to the Scala programming language, how it can be used effectively in introductory CS courses, and the parallel tools that are available for it. We begin with simple examples in the REPL and scripting environment, then look at doing larger, object-oriented projects. We finish off with an exploration of composable futures and the Akka actor library. Participants are strongly recommended to bring a laptop.
@inproceedings{Lewis_SIGCSE_2014,author={Lewis, Mark and Läufer, Konstantin and Thiruvathukal, George K.},author+an={2=myself},booktitle={45th {ACM} Technical Symposium / Computer Science Education ({SIGCSE} '14)},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2014},isbn={978-1-4503-2605-6},location={New York, {NY}, {USA}},publisher={Association for Computing Machinery},title={Scala for Introductory {CS} and Parallelism (Workshop)},url={http://scalaworkshop.cs.luc.edu/html},year={2014}}
@inproceedings{Laufer_EduPar_2013,author={Läufer, Konstantin and Sekharan, Chandra and Thiruvathukal, George K. and Kaylor, Joseph P.},author+an={1=myself;4=graduate},booktitle={3rd {NSF}/{IEEE}-{CS} {TCPP} Workshop on Parallel and Distributed Computing Education ({EduPar}), Boston, Massachusetts},date={2013-05},title={Spring-11: Introducing {PDC} topics into {CS}1/2 and a Mobile- and Cloud-Based Intermediate Software Design Course},url={https://tcpp.cs.gsu.edu/curriculum/?q=EduPar-13_Proceedings},year={2013}}
GCASR
Building Capable, Energy-Efficient, Flexible Visualization and Sensing Clusters from Commodity Tablets (Poster)
Thomas Delgado Dias, Xian Yan, Konstantin Läufer, and 1 more author
@inproceedings{Dias_GCASR_2013,author={Dias, Thomas Delgado and Yan, Xian and Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=undergrad;2=graduate;3=myself},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2013-05},eventtitle={2nd Greater Chicago Area System Research Workshop ({GCASR})},location={Chicago, {IL}, {USA}},shorttitle={{GCASR} 13},title={Building Capable, Energy-Efficient, Flexible Visualization and Sensing Clusters from Commodity Tablets (Poster)},url={https://ecommons.luc.edu/cs_facpubs/66/},year={2013}}
SIGCSE
Using Scala strategically across the undergraduate curriculum (Workshop)
Mark Lewis, Konstantin Läufer, and George K. Thiruvathukal
In 44th ACM Technical Symposium / Computer Science Education (SIGCSE ’13), New York, NY, USA, 2013
Various hybrid-paradigm languages, designed to balance compile-time error detection, conciseness, and performance, have emerged. Scala, e.g., is interoperable with Java and has become an early leader in adoption, especially in the start-up and open-source spaces. Workshop participants experience Scala’s value as a teaching language in the CS curriculum through four lecture-lab modules: In CS1, the read-eval-print loop and simple, uniform syntax aid programming in the small. In CS2, higher-order methods allow concise, efficient manipulation of collections. Advanced topics include domain-specific languages, concurrency, web apps/services, and mobile apps. Laptop recommended with Scala installed.
@inproceedings{Lewis_SIGCSE_2013,author={Lewis, Mark and Läufer, Konstantin and Thiruvathukal, George K.},author+an={2=myself},booktitle={44th {ACM} Technical Symposium / Computer Science Education ({SIGCSE} '13)},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2013},isbn={978-1-4503-1868-6},location={New York, {NY}, {USA}},publisher={Association for Computing Machinery},title={Using Scala strategically across the undergraduate curriculum (Workshop)},url={http://scalaworkshop.cs.luc.edu/html},year={2013}}
GCASR
Network Technologies Used to Aggregate Environmental Data (Poster)
Paul Stasiuk, Konstantin Läufer, and George K. Thiruvathukal
@inproceedings{Stasiuk_GCASR_2013,author={Stasiuk, Paul and Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=undergrad;2=myself},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2013-05},eventtitle={2nd Greater Chicago Area System Research Workshop ({GCASR})},location={Chicago, {IL}, {USA}},shorttitle={{GCASR} 13},title={Network Technologies Used to Aggregate Environmental Data (Poster)},url={https://ecommons.luc.edu/cs_facpubs/65/},year={2013}}
@inproceedings{Kaylor_EIT_2012,author={Kaylor, Joseph P. and Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=graduate;2=myself},booktitle={International Conference on Electro Information Technology 2012},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2012},doi={10.1109/EIT.2012.6220733},title={Simplifying Domain Modeling and Memory Management in User-Mode Filesystems with the {NOFS} Framework},url={https://ecommons.luc.edu/cs_facpubs/62/},year={2012}}
Early Adopter Report: PDC Modules for Every Level: A Comprehensive Model for Incorporating PDC Topics into the Existing Undergraduate Curriculum (Poster)
Konstantin Läufer, Chandra Sekharan, George K. Thiruvathukal, and 1 more author
In 2nd NSF/IEEE-CS TCPP Workshop on Parallel and Distributed Computing Education (EduPar), Shanghai, China, 2012
@inproceedings{Laufer_EduPar_2012,author={Läufer, Konstantin and Sekharan, Chandra and Thiruvathukal, George K. and Kaylor, Joseph P.},author+an={1=myself;4=graduate},booktitle={2nd {NSF}/{IEEE}-{CS} {TCPP} Workshop on Parallel and Distributed Computing Education ({EduPar}), Shanghai, China},date={2012-05},title={Early Adopter Report: {PDC} Modules for Every Level: A Comprehensive Model for Incorporating {PDC} Topics into the Existing Undergraduate Curriculum (Poster)},url={https://tcpp.cs.gsu.edu/curriculum/?q=advanced-technical-program},year={2012}}
@incollection{Kaylor_CloudBookRestFS_2011,author={Kaylor, Joseph P. and Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=graduate;2=myself},booktitle={Cloud Computing: Methodology, System, and Applications},date={2011-12},doi={10.1201/b11149},editor={Wang, Lizhe and Ranjan, Rajiv and Chen, Jinjun and Benatallah, Boualem},publisher={{CRC} Press},title={{RestFS}: The Filesystem as a Connector Abstraction for Flexible Resource and Service Composition},url={https://ecommons.luc.edu/cs_facpubs/45/},year={2011}}
@inproceedings{DBLP:conf/icsoft/2011-1,author={Läufer, Konstantin and Thiruvathukal, George K. and Dennis, David B.},author+an={1=myself},bibsource={dblp computer science bibliography, https://dblp.org},booktitle={{ICSOFT} 2011 - Proceedings of the 6th International Conference on Software and Data Technologies, Volume 1, Seville, Spain, 18-21 July, 2011},date={2011},isbn={978-989-8425-76-8},publisher={{SciTePress}},timestamp={Wed, 28 Sep 2011 18:26:31 +0200},title={Initial experience in moving key academic department functions to social networking sites},url={https://ecommons.luc.edu/cs_facpubs/36/},year={2011}}
@inproceedings{DBLP:conf/icsoft/2011-2,author={Kaylor, Joseph P. and Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=graduate;2=myself},bibsource={dblp computer science bibliography, https://dblp.org},booktitle={{ICSOFT} 2011 - Proceedings of the 6th International Conference on Software and Data Technologies, Volume 1, Seville, Spain, 18-21 July, 2011},date={2011},isbn={978-989-8425-76-8},publisher={{SciTePress}},timestamp={Wed, 28 Sep 2011 18:26:31 +0200},title={{REST} on Routers? Preliminary Lessons for Language Designers, Framework Architects, and App Developers},url={https://ecommons.luc.edu/cs_facpubs/35/},year={2011}}
We have designed and implemented RestFS, a software framework that provides a uniform, configurable connector layer for mapping remote web-based resources to local filesystem-based resources, recognizing the similarity between these two types of resources. Such mappings enable programmatic access to a resource, as well as composition of two or more resources, through the local operating system’s standard filesystem application programming interface (API), scriptable file-based command-line utilities, and inter-process communication (IPC) mechanisms. The framework supports automatic and manual authentication. We include several examples intended to show the utility and practicality of our framework.
@inproceedings{Kaylor_WSREST_2011,author={Kaylor, Joseph P. and Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=graduate;2=myself},booktitle={Second International Workshop / {RESTful} Design ({WS}-{REST} '11)},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2011},doi={10.1145/1967428.1967439},location={New York, {NY}, {USA}},publisher={Association for Computing Machinery},title={{RestFS}: Resources are Filesystems, too},url={https://ecommons.luc.edu/cs_facpubs/15/},year={2011}}
@inproceedings{Laufer_EduPar_2011,author={Läufer, Konstantin and Sekharan, Chandra and Thiruvathukal, George K.},author+an={1=myself},booktitle={1st {NSF}/{IEEE}-{CS} {TCPP} Workshop on Parallel and Distributed Computing Education ({EduPar}), Anchorage, Alaska},date={2011-05},title={{PDC} Modules for Every Level: A Comprehensive Model for Incorporating {PDC} Topics into the Existing Undergraduate Curriculum},url={https://tcpp.cs.gsu.edu/curriculum/?q=node/16950},year={2011}}
@article{Laufer_CISE_Cloud_2011,author={Läufer, Konstantin and Thiruvathukal, George K. and Dennis, David B.},author+an={1=myself},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2011},doi={10.1109/MCSE.2011.85},journaltitle={Computing in Science and Engineering},number={5},pages={84--89},shorttitle={Moving Academic Department Functions to Social Networks and Clouds},title={Moving Academic Department Functions to Social Networks and Clouds: Initial Experiences},url={https://ecommons.luc.edu/cs_facpubs/144/},volume={13},year={2011}}
We present a novel form of intra-volume directory layering with hierarchical, inheritance-like namespace unification. While each layer of an OLFS volume constitutes a subvolume that can be mounted separately in a fan-in configuration, the entire hierarchy is always accessible (online) and fully navigable through any mounted layer. OLFS uses a relational database to store its layering metadata and either a relational database or any (virtual) host file system as its backing store, along with metadata and block caching for improved performance. Because OLFS runs as a virtual file system in user-space, its capabilities are available to all existing software without modification or special privileges. We have developed a reference implementation of OLFS for FUSE based on MySQL and XFS, and conducted performance benchmarking against XFS by itself. We explore several applications of OLFS, such as enhanced server synchronization, transactional file operations, and versioning.
@inproceedings{Kaylor_EIT_2010,author={Kaylor, Joseph P. and Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=graduate;2=myself},booktitle={{IEEE} International Conference on Electro/Information Technology ({EIT} 2010)},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2010},doi={10.1109/EIT.2010.5612094},pages={1--9},shorttitle={Online Layered File System ({OLFS})},title={Online Layered File System ({OLFS}): A layered and versioned filesystem and performance analysis},url={https://ecommons.luc.edu/cs_facpubs/40},year={2010}}
@article{Thiruvathukal_CISE_Virtualization_2010,author={Thiruvathukal, George K. and Läufer, Konstantin and Hinsen, Konrad and Kaylor, Joseph P.},author+an={2=myself;4=graduate},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2010},doi={10.1109/MCSE.2010.92},journaltitle={Computing in Science and Engineering},number={4},pages={52--61},title={Virtualization for Computational Scientists},url={https://ecommons.luc.edu/cs_facpubs/16/},volume={12},year={2010}}
@inproceedings{DBLP:conf/icws/GutmanRKSL09,author={Gutman, Moshe and Radhakrishnan, Sridhar and Kim, Changwook and Sekharan, Chandra N. and Läufer, Konstantin},author+an={5=myself},bibsource={dblp computer science bibliography, https://dblp.org},booktitle={{IEEE} International Conference on Web Services, {ICWS} 2009, Los Angeles, {CA}, {USA}, 6-10 July 2009},date={2009},doi={10.1109/ICWS.2009.135},pages={1035--1036},publisher={{IEEE} Computer Society},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={{GroupSpeak}: High-level Language Extension for Workflow Capability},year={2009}}
@article{Hinsen_CISE_VCS_2009,author={Hinsen, Konrad and Läufer, Konstantin and Thiruvathukal, George K.},author+an={2=myself},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2009},doi={10.1109/MCSE.2009.194},journaltitle={Computing in Science and Engineering},number={6},pages={84--91},shorttitle={Essential Tools},title={Essential Tools: Version Control Systems},url={https://ecommons.luc.edu/cs_facpubs/27/},volume={11},year={2009}}
@article{Laufer_CISE_Functional2_2009,author={Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=myself},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2009},doi={10.1109/MCSE.2009.147},journaltitle={Computing in Science and Engineering},number={5},pages={68--75},shorttitle={Scientific Programming},title={Scientific Programming: The Promises of Typed, Pure, and Lazy Functional Programming: Part {II}},url={https://ecommons.luc.edu/cs_facpubs/25/},volume={11},year={2009}}
@article{Laufer_CISE_Slug_2007,author={Läufer, Konstantin and Thiruvathukal, George K. and Nishimura, Ryohei and Martínez-Eiroa, Carlos Ramírez},author+an={1=myself;3=undergrad;4=graduate},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2009},doi={10.1109/MCSE.2009.35},journaltitle={Computing in Science and Engineering},number={2},pages={62--68},title={Putting a Slug to Work},url={https://ecommons.luc.edu/cs_facpubs/23/},volume={11},year={2009}}
Processing markup in object-oriented languages often requires the programmer to focus on the objects generating the markup rather than the more pertinent domain objects. The BetterXML framework aims to improve this situation by allowing the programmer to develop a domain-specific object model as usual and later bind this model to preexisting or newly generated markup. To this end, the framework provides two types of object trees, XElement and NaturalXML, for representing XML documents. XElement goes beyond DOM-like automatic parsing of XML by supporting the custom mapping of elements to domain objects; NaturalXML allows the mapping of existing domain objects to XML elements using class metadata. Both types of object trees can be inflated and deflated by means of a common intermediate representation in the form of an event stream. Finally, the framework includes the XML Intermediate Representation (XIR), a lossless record-oriented representation of XML documents for efficient streaming and other types of data exchange.
@inproceedings{Bone_EIT_2008,author={Bone, Matt and Nabicht, Peter F. and Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=graduate;3=myself},booktitle={{IEEE} International Conference on Electro/Information Technology ({EIT} 2008)},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2008},doi={10.1109/EIT.2008.4554352},pages={488--493},shorttitle={Taming {XML}},title={Taming {XML}: Objects First, Then Markup},url={https://ecommons.luc.edu/cs_facpubs/39},year={2008}}
Combining SOA and BPM Technologies for Cross-System Process Automation
Sebastian Herr, Konstantin Läufer, John Shafaee, and 2 more authors
In Proceedings of the Twentieth International Conference on Software Engineering & Knowledge Engineering (SEKE’2008), San Francisco, CA, USA, July 1-3, 2008, 2008
@inproceedings{DBLP:conf/seke/HerrLSTW08,author={Herr, Sebastian and Läufer, Konstantin and Shafaee, John and Thiruvathukal, George K. and Wirtz, Guido},author+an={1=graduate;2=myself},bibsource={dblp computer science bibliography, https://dblp.org},booktitle={Proceedings of the Twentieth International Conference on Software Engineering \& Knowledge Engineering ({SEKE}'2008), San Francisco, {CA}, {USA}, July 1-3, 2008},date={2008},isbn={978-1-62748-662-0},pages={339--344},publisher={Knowledge Systems Institute},timestamp={Thu, 12 Mar 2020 11:30:50 +0100},title={Combining {SOA} and {BPM} Technologies for Cross-System Process Automation},url={https://www.proceedings.com/18678.html},year={2008}}
@article{DBLP:journals/cse/Laufer08,author={Läufer, Konstantin},author+an={1=myself},bibsource={dblp computer science bibliography, https://dblp.org},date={2008},doi={10.1109/MCSE.2008.67},journaltitle={Computing in Science \& Engineering},number={3},pages={76--83},shortjournal={Comput. Sci. Eng.},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={A Stroll through Domain-Driven Development with Naked Objects},volume={10},year={2008}}
@article{Thiruvathukal_CISE_Summer_2008,author={Thiruvathukal, George K. and Läufer, Konstantin},author+an={2=myself},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2008},doi={10.1109/MCSE.2008.159},journaltitle={Computing in Science and Engineering},number={6},pages={76--81},title={What I Did on My Summer Vacation},volume={10},year={2008}}
@inproceedings{Mehta_IPDPS_2007,author={Mehta, Neeraj and Kanitkar, Yogesh and Läufer, Konstantin and Thiruvathukal, George K.},author+an={1=graduate;2=graduate;3=myself},booktitle={2007 {IEEE} International Parallel and Distributed Processing Symposium},date={2007},doi={10.1109/IPDPS.2007.370423},pages={1--8},title={A Model-Driven Approach to Job/Task Composition in Cluster Computing},year={2007}}
By incorporating automated component, integration, and acceptance testing into the various tiers of a lightweight lava 2 Enterprise Edition (J2EE) Web application architecture, developers can shorten the development cycle and increase the quality of their work
@article{Laufer_CISE_Hike3_2007,author={Läufer, Konstantin and Thiruvathukal, George K. and González, Benjamin},author+an={1=myself;3=graduate},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2007},doi={10.1109/MCSE.2007.2},journaltitle={Computing in Science and Engineering},number={1},title={A Hike through a Post-{EJB} J2EE Web Application Architecture, Part {III}},url={https://ecommons.luc.edu/cs_facpubs/263/},volume={9},year={2007}}
@article{Thiruvathukal_CISE_Testing_2006,author={Thiruvathukal, George K. and Läufer, Konstantin and González, Benjamin},author+an={2=myself;3=graduate},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2006},doi={10.1109/MCSE.2006.124},journaltitle={Computing in Science and Engineering},number={6},pages={76--87},title={Unit Testing Considered Useful},url={https://ecommons.luc.edu/cs_facpubs/33/},volume={8},year={2006}}
@article{Thiruvathukal_CISE_Plone_2004,author={Thiruvathukal, George K. and Läufer, Konstantin},author+an={2=myself},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2004},doi={10.1109/MCSE.2004.19},journaltitle={Computing in Science and Engineering},number={4},pages={88--95},title={Plone and Content Management},url={https://ecommons.luc.edu/cs_facpubs/30/},volume={6},year={2004}}
@article{Thiruvathukal_CISE_XML_2004,author={Thiruvathukal, George K. and Läufer, Konstantin},author+an={2=myself},copyright={Creative Commons Attribution-{NonCommercial}-{ShareAlike} 4.0 International License ({CC}-{BY}-{NC}-{SA})},date={2004},doi={10.1109/MCISE.2004.1267615},journaltitle={Computing in Science and Engineering},pages={86--92},title={Natural {XML} for Data Binding, Processing, and Persistence},url={https://ecommons.luc.edu/cs_facpubs/9/},volume={6},year={2004}}
@inproceedings{DBLP:conf/ic/ZhangLG03,author={Zhang, Jia and Läufer, Konstantin and Gong, Zhiguo},author+an={2=myself},bibsource={dblp computer science bibliography, https://dblp.org},booktitle={Proceedings of the International Conference on Internet Computing, {IC} '03, Las Vegas, Nevada, {USA}, June 23-26, 2003, Volume 2},date={2003},editor={Arabnia, Hamid R. and Mun, Youngsong},pages={684--687},publisher={{CSREA} Press},title={Mockup Supporting Web Requirements Engineering},year={2003}}
Using handheld and wireless technology for classroom and community-based South Asian language pedagogy
Christopher Chung, Daisy Rockwell, Tao Bai, and 2 more authors
@misc{chung2003,author={Chung, Christopher and Rockwell, Daisy and Bai, Tao and Läufer, K and Thiruvathukal, George K},author+an={3=graduate;4=myself},date={2003},howpublished={Presented at the 2003 Midwest Software Engineering Conference, Chicago, Illinois},title={Using handheld and wireless technology for classroom and community-based South Asian language pedagogy},url={https://ecommons.luc.edu/cs_facpubs/2/},year={2003}}
Patent
Method and apparatus for providing interactive services with multiple interfaces
Thomas J Ball, Peter John Danielsen, Lalita Jategaonkar Jagadeesan, and 3 more authors
@patent{ball2003method1,author={Ball, Thomas J and Danielsen, Peter John and Jagadeesan, Lalita Jategaonkar and Läufer, Konstantin and Mataga, Peter Andrew and Rehor, Kenneth G},author+an={4=myself},date={2003-03},holder={Lucent Technologies Inc.},number={6529863B1},title={Method and apparatus for providing interactive services with multiple interfaces},type={patentus},url={https://patents.google.com/patent/US6529863B1},year={2003}}
Patent
Method and apparatus for providing interactive services with multiple interfaces
Thomas J Ball, Peter John Danielsen, Lalita Jategaonkar Jagadeesan, and 3 more authors
@patent{ball2003method2,author={Ball, Thomas J and Danielsen, Peter John and Jagadeesan, Lalita Jategaonkar and Läufer, Konstantin and Mataga, Peter Andrew and Rehor, Kenneth G},author+an={4=myself},date={2003-08},holder={Lucent Technologies Inc.},number={6609089B1},title={Method and apparatus for providing interactive services with multiple interfaces},type={patentus},url={https://patents.google.com/patent/US6609089B1},year={2003}}
Enhancing the CS Curriculum with with Aspect-Oriented Software Development (AOSD) and Early Experience
Konstantin Läufer, George K. Thiruvathukal, and Tzilla Elrad
@report{Laufer_AOSD_2003,author={Läufer, Konstantin and Thiruvathukal, George K. and Elrad, Tzilla},author+an={1=myself},date={2003-09},institution={Loyola University Chicago},title={Enhancing the {CS} Curriculum with with Aspect-Oriented Software Development ({AOSD}) and Early Experience},type={techreport},url={https://ecommons.luc.edu/cs_facpubs/4/},year={2003}}
2002
Half & Half: Multiple Dispatch and Retroactive Abstraction for Java
Gerald Baumgartner, Martin Jansche, and Konstantin Läufer
@report{BaumgartnerHalf2002,author={Baumgartner, Gerald and Jansche, Martin and Läufer, Konstantin},author+an={3=myself},date={2002-03},institution={Purdue University},number={{OSU}-{CISRC}-5/01-{TR}08},title={Half \& Half: Multiple Dispatch and Retroactive Abstraction for Java},type={techreport},url={https://www.csc.lsu.edu/~gb/Brew/Publications/HalfNHalf.pdf},year={2002}}
@inproceedings{DBLP:conf/cp/GuptaJJJL00,author={Gupta, Vineet and Jagadeesan, Lalita Jategaonkar and Jagadeesan, Radha and Jiang, Xiaowei and Läufer, Konstantin},author+an={4=graduate;5=myself},bibsource={dblp computer science bibliography, https://dblp.org},booktitle={Principles and Practice of Constraint Programming - {CP} 2000, 6th International Conference, Singapore, September 18-21, 2000, Proceedings},date={2000},doi={10.1007/3-540-45349-0_16},editor={Dechter, Rina},pages={202--217},publisher={Springer},series={Lecture Notes in Computer Science},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={A Constraint-Based Framework for Prototyping Distributed Virtual Applications},volume={1894},year={2000}}
@inproceedings{DBLP:conf/sigsoft/GodefroidJJL00,author={Godefroid, Patrice and Jagadeesan, Lalita Jategaonkar and Jagadeesan, Radha and Läufer, Konstantin},author+an={4=myself},bibsource={dblp computer science bibliography, https://dblp.org},booktitle={{ACM} {SIGSOFT} Symposium on Foundations of Software Engineering, an Diego, California, {USA}, November 6-10, 2000, Proceedings},date={2000},doi={10.1145/355045.355051},editor={Knight, John C. and Rosenblum, David S.},pages={40--49},publisher={{ACM}},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={Automated systematic testing for constraint-based interactive services},year={2000}}
@article{DBLP:journals/cj/LauferBR00,author={Läufer, Konstantin and Baumgartner, Gerald and Russo, Vincent F.},author+an={1=myself},bibsource={dblp computer science bibliography, https://dblp.org},date={2000},doi={10.1093/comjnl/43.6.469},journaltitle={Computer Journal},number={6},pages={469--481},shortjournal={Comput. J.},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={Safe Structural Conformance for Java},volume={43},year={2000}}
@article{DBLP:journals/ijst/BallCDJJLMR00,author={Ball, Thomas and Colby, Christopher and Danielsen, Peter J. and Jagadeesan, Lalita Jategaonkar and Jagadeesan, Radha and Läufer, Konstantin and Mataga, Peter and Rehor, Kenneth},author+an={6=myself},bibsource={dblp computer science bibliography, https://dblp.org},date={2000},doi={10.1023/A:1009645414233},journaltitle={International Journal of Speech Technology},number={2},pages={93--108},shortjournal={Int. J. Speech Technol.},timestamp={Mon, 08 Jun 2020 01:00:00 +0200},title={Sisl: Several Interfaces, Single Logic},volume={3},year={2000}}
@inproceedings{Colby_OOPSLAEDU_1998,author={Colby, Christopher and Jagadeesan, Radha and Läufer, Konstantin and Sekharan, Chandra},author+an={3=myself},booktitle={Proceedings of the {OOPSLA} 1998 Educators' Symposium},date={1998-10},location={Vancouver, Canada},title={Interaction, Concurrency, and {OOP} in the Curriculum: a Sophomore Course},year={1998}}
@inproceedings{DBLP:conf/coots/ColbyJJLP98,author={Colby, Christopher and Jagadeesan, Lalita Jategaonkar and Jagadeesan, Radha and Läufer, Konstantin and Puchol, Carlos},author+an={4=myself},bibsource={dblp computer science bibliography, https://dblp.org},booktitle={4th {USENIX} Conference on Object-Oriented Technologies and Systems ({COOTS}), April 27-30, 1998, Eldorado Hotel, Santa Fe, New Mexico, {USA}},date={1998},pages={131--149},publisher={{USENIX}},timestamp={Tue, 02 Feb 2021 00:00:00 +0100},title={Objects and Concurrency in Triveni: A Telecommunication Case Study in Java},url={https://www.usenix.org/conference/coots-98/objects-and-concurrency-triveni-telecommunication-case-study-java},year={1998}}
@inproceedings{DBLP:conf/iccl/ColbyJJLP98,author={Colby, Christopher and Jagadeesan, Lalita Jategaonkar and Jagadeesan, Radha and Läufer, Konstantin and Puchol, Carlos},author+an={4=myself},bibsource={dblp computer science bibliography, https://dblp.org},booktitle={Proceedings of the 1998 International Conference on Computer Languages, {ICCL} 1998, Chicago, {IL}, {USA}, May 14-16, 1998},date={1998},doi={10.1109/ICCL.1998.674157},pages={58--67},publisher={{IEEE} Computer Society},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={Design and Implementation of Triveni: A Process-Algebraic {API} for Threads + Events},year={1998}}
@article{DBLP:journals/entcs/ColbyJJLP98,author={Colby, Christopher and Jategaonkar, Lalita and Jagadeesan, Radha and Läufer, Konstantin and Puchol, Carlos},author+an={4=myself},bibsource={dblp computer science bibliography, https://dblp.org},date={1998},doi={10.1016/S1571-0661(05)80233-6},journaltitle={Electronic Notes in Theoretical Computer Science},pages={107--133},shortjournal={Electron. Notes Theor. Comput. Sci.},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={The Semantics of Triveni: A Process-Algebraic {API} for Threads + Events},volume={14},year={1998}}
1997
Using Java in the Undergraduate Computer Science Curriculum
@misc{Laufer_MCC_1997,author={Läufer, Konstantin},author+an={1=myself},date={1997-03},howpublished={Presented at the Eleventh Annual Midwest Computer Conference, Springfield, Illinois},title={Using Java in the Undergraduate Computer Science Curriculum},year={1997}}
In 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, 1996
@inproceedings{DBLP:conf/popl/OderskyL96,author={Odersky, Martin and Läufer, Konstantin},author+an={2=myself},bibsource={dblp computer science bibliography, https://dblp.org},booktitle={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},date={1996},doi={10.1145/237721.237729},editor={Boehm, Hans-Juergen and Jr., Guy L. Steele},pages={54--67},publisher={{ACM} Press},timestamp={Tue, 06 Nov 2018 00:00:00 +0100},title={Putting Type Annotations to Work},year={1996}}
@misc{Laufer_MCC_1996,author={Läufer, Konstantin},author+an={1=myself},date={1996-03},howpublished={Presented at the Tenth Annual Midwest Computer Conference, Chicago},title={An Open Environment for Common Gateway Interface Programming},year={1996}}
On the Interaction of Object-Oriented Design Patterns and Programming Languages
Gerald Baumgartner, Konstantin Läufer, and Vincent F. Russo
Design patterns are distilled from many real systems to catalog common programming practice. However, some object-oriented design patterns are distorted or overly complicated because of the lack of supporting programming language constructs or mechanisms. For this paper, we have analyzed several published design patterns looking for idiomatic ways of working around constraints of the implementation language. From this analysis, we lay a groundwork of general-purpose language constructs and mechanisms that, if provided by a statically typed, object-oriented language, would better support the implementation of design patterns and, transitively, benefit the construction of many real systems. In particular, our catalog of language constructs includes subtyping separate from inheritance, lexically scoped closure objects independent of classes, and multimethod dispatch. The proposed constructs and mechanisms are not radically new, but rather are adopted from a variety of languages and programming language research and combined in a new, orthogonal manner. We argue that by describing design patterns in terms of the proposed constructs and mechanisms, pattern descriptions become simpler and, therefore, accessible to a larger number of language communities. Constructs and mechanisms lacking in a particular language can be implemented using paradigmatic idioms.
@report{BaumgartnerLauferRusso_Interactions_1996,author={Baumgartner, Gerald and Läufer, Konstantin and Russo, Vincent F.},author+an={2=myself},date={1996-02},eprint={1905.13674},eprinttype={arxiv},institution={Purdue University},number={{CSD}-{TR}-96-020},title={On the Interaction of Object-Oriented Design Patterns and Programming Languages},type={techreport},url={https://arxiv.org/abs/1905.13674},year={1996}}
@inproceedings{DBLP:conf/coots/Laufer95,author={Läufer, Konstantin},author+an={1=myself},bibsource={dblp computer science bibliography, https://dblp.org},booktitle={Proceedings of the {USENIX} Conference on Object-Oriented Technologies, {COOTS}'95, Monterey, California, {USA}, June 26-29, 1995},date={1995},editor={Russo, Vincent F.},publisher={{USENIX}},title={A Framework for Higher-Order Functions in C++},url={https://www.usenix.org/conference/coots-95/framework-higher-order-functions-c},year={1995}}
Interactive Web Applications Based on Finite State Machines (Invited Talk)
Konstantin Läufer
In Proceedings of the Symposium on Information Systems Analysis and Synthesis (ISAS), Baden-Baden, Germany, 1995
@inproceedings{Laufer_ISAS_1995,author={Läufer, Konstantin},author+an={1=myself},booktitle={Proceedings of the Symposium on Information Systems Analysis and Synthesis ({ISAS})},date={1995-08},location={Baden-Baden, Germany},title={Interactive Web Applications Based on Finite State Machines (Invited Talk)},year={1995}}
@inproceedings{Laufer_PANEL_1994,author={Läufer, Konstantin},author+an={1=myself},booktitle={Proceedings of the Latin American Informatics Conference ({PANEL})},date={1994-09},location={Mexico},publisher={{ITESM}-{CEM}},title={Combining Type Classes and Existential Types},year={1994}}
@article{DBLP:journals/toplas/LauferO94,author={Läufer, Konstantin and Odersky, Martin},author+an={1=myself},date={1994},doi={10.1145/186025.186031},journaltitle={{ACM} Trans. Program. Lang. Syst.},number={5},pages={1411--1430},timestamp={Thu, 14 Oct 2021 01:00:00 +0200},title={Polymorphic Type Inference and Abstract Data Types},volume={16},year={1994}}
@inproceedings{LauferOdersky_Reflection_1993,author={Läufer, Konstantin and Odersky, Martin},author+an={1=myself},booktitle={Proceedings of the {OOPSLA} Workshop on Reflection and Metalevel Architectures},date={1993-10},publisher={{ACM}},title={Self-Interpretation and Reflection in a Statically Typed Language},year={1993}}
@inproceedings{LauferOdersky_ML_1992,author={Läufer, Konstantin and Odersky, Martin},author+an={1=myself},booktitle={Proceedings of the {ACM} {SIGPLAN} Workshop on {ML} and its Applications},date={1992-06},title={An Extension of {ML} with First-Class Abstract Types},year={1992}}
PhDThesis
Polymorphic Type Inference and Abstract Data Types
Many statically-typed programming languages provide an abstract data type construct, such as the package in Ada, the cluster in CLU, and the module in Modula2. However, in most of these languages, instances of abstract data types are not first-class values. Thus they cannot be assigned to a variable, passed as a function parameter, or returned as a function result. The higher-order functional language ML has a strong and static type system with parametric polymorphism. In addition, ML provides type reconstruction and consequently does not require type declarations for identifiers. Although the ML module system supports abstract data types, their instances cannot be used as first-class values for type-theoretic reasons. In this dissertation, we describe a family of extensions of ML. While retaining ML’s static type discipline, type reconstruction, and most of its syntax, we add significant expressive power to the language by incorporating first-class abstract types as an extension of ML’s free algebraic datatypes. In particular, we are now able to express multiple implementations of a given abstract type; heterogeneous aggregates of different implementations of the same abstract type; and dynamic dispatching of operations with respect to the implementation type. Following Mitchell and Plotkin, we formalize abstract types in terms of existentially quantified types. We prove that our type system is semantically sound with respect to a standard denotational semantics. We then present an extension of Haskell, a non-strict functional language that uses type classes to capture systematic overloading. This language results from incorporating existentially quantified types into Haskell and gives us first-class abstract types with type classes as their interfaces. We can now express heterogeneous structures over type classes. The language is statically typed and offers comparable flexibility to object-oriented languages. Its semantics is defined through a type-preserving translation to a modified version of our ML extension. We have implemented a prototype of an interpreter for our language, including the type reconstruction algorithm, in Standard ML.
@thesis{Laufer_Thesis_1992,author={Läufer, Konstantin},author+an={1=myself},date={1992-07},institution={New York University},key={lau92},title={Polymorphic Type Inference and Abstract Data Types},type={phdthesis},year={1992}}
In Declarative Programming, Sasbachwalden 1991, PHOENIX Seminar and Workshop on Declarative Programming, Sasbachwalden, Black Forest, Germany, 18-22 November 1991, 1991
@inproceedings{DBLP:conf/phoenix/LauferO91,author={Läufer, Konstantin and Odersky, Martin},author+an={1=myself},bibsource={dblp computer science bibliography, https://dblp.org},booktitle={Declarative Programming, Sasbachwalden 1991, {PHOENIX} Seminar and Workshop on Declarative Programming, Sasbachwalden, Black Forest, Germany, 18-22 November 1991},date={1991},doi={10.1007/978-1-4471-3794-8_10},editor={Darlington, John and Dietrich, Roland},pages={148--162},publisher={Springer},series={Workshops in Computing},timestamp={Fri, 21 Jun 2019 13:08:59 +0200},title={Type Classes are Signatures of Abstract Types},year={1991}}
@inproceedings{HengleinLaufer_PANEL_1991,author={Henglein, Fritz and Läufer, Konstantin},author+an={2=myself},booktitle={Proceedings of the {XVII} Latin American Informatics Conference ({PANEL} '91)},date={1991},location={Universidad Simón Bolívar, Caracas, Venezuela},pages={333--352},title={Programming with Structures, Functions, and Objects},year={1991}}
Three Approaches to Transformational Programming – A Comparative Survey
@report{Laufer_Transformational_1991,author={Läufer, Konstantin},author+an={1=myself},date={1991-04},institution={Department of Computer Science, New York University},number={{NYU}-{CS}-{TR} 555},title={Three Approaches to Transformational Programming – A Comparative Survey},type={techreport},year={1991}}
@report{laufer1987,author={Läufer, Konstantin and Mehl, Wolfgang},author+an={1=myself},date={1987},institution={Cobra {GmbH}},location={Technologiezentrum Konstanz, Germany},title={Cobra Address User Manual},type={techreport},year={1987}}
@report{laufer1984,author={Dierenbach, Ralf and Erbs, Heinz-Erich and Läufer, Konstantin},author+an={3=myself},date={1984},institution={Universität Konstanz},title={{MailBox} User Manual and Administration Guide},type={techreport},year={1984}}