Open Access. Powered by Scholars. Published by Universities.®
Programming Languages and Compilers Commons™
Open Access. Powered by Scholars. Published by Universities.®
- Discipline
- Keyword
-
- Computer science (3)
- Algorithms (1)
- App Inventor (1)
- Arduino course (1)
- Assessment (1)
-
- Bioinformatics (1)
- Bloom's taxonomy mobile apps (1)
- C++ (1)
- Cloud computing (1)
- Colab (1)
- Common Object Request Broker Architecture (CORBA) (1)
- Computer Science Education (1)
- Computer science education (1)
- Concurrency (1)
- Cs1 (1)
- Cs2 (1)
- Curriculum design (1)
- Data integration (1)
- Data-Parallel C++ (1)
- Deep learning (1)
- Distributed Systems (1)
- Economics (1)
- Embedded systems (1)
- Empirical software engineering (1)
- Experimentation (1)
- Formal Methods (1)
- Formal methods (1)
- Functional programming languages (1)
- Heterogeneous Computing (1)
- High-Performance Computing (1)
Articles 1 - 15 of 15
Full-Text Articles in Programming Languages and Compilers
Hotlangbench, A Tiny Benchmark Suite For Higher-Order Statically Typed Languages, Konstantin Laufer
Hotlangbench, A Tiny Benchmark Suite For Higher-Order Statically Typed Languages, Konstantin Laufer
Computer Science: Faculty Publications and Other Works
This work in progress aims to compare various HOT (higher-order and statically typed, a term coined by Phil Wadler) through reproducible course-grained, wall-time benchmarks. Our overall goals include simplicity, agility, and reproducibility.
There is currently only one benchmark, but it brings out substantial performance differences among the various languages and platforms. It uses function composition and other higher-order constructs to build a pipeline of transformations, along with a brute-force iteration that is computationally expensive for input files specifying large ranges as function domains. We currently include versions in Modern C++, C#, Go, Haskell, Kotlin, Modern (stream-based) Java (24), OCaml, Scala …
Tla+ For All: Model Checking In A Python Notebook, Konstantin Laufer, George K. Thiruvathukal
Tla+ For All: Model Checking In A Python Notebook, Konstantin Laufer, George K. Thiruvathukal
Computer Science: Faculty Publications and Other Works
TLA+ is widely recognized for its effectiveness in specifying and verifying concurrent and distributed systems. However, for educators and practitioners, barriers to adoption include installation complexity and tooling setup. In the proposed presentation, we demonstrate a lightweight, easily shareable, and fully reproducible approach to running TLA+ in a Python notebook hosted on Google Colab without requiring new tools or custom Jupyter kernel development. By creating an environment where users can experiment with TLA+ models instantly, we lower these barriers and demonstrate the suitability for education and outreach.
Wip: An Engaging Undergraduate Intro To Model Checking In Software Engineering Using Tla+, Konstantin Laufer, Gunda Mertin, George K. Thiruvathukal
Wip: An Engaging Undergraduate Intro To Model Checking In Software Engineering Using Tla+, Konstantin Laufer, Gunda Mertin, George K. Thiruvathukal
Computer Science: Faculty Publications and Other Works
Background: In this Innovative Practice Work in Progress, 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. Many safety-critical systems and services crucially depend on correct and reliable behavior. Formal methods can play a key role in ensuring correct and safe system behavior, 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 …
Interoperability In Deep Learning: A User Survey And Failure Analysis Of Onnx Model Converters, Purvish Jajal, Wenxin Jiang, Arav Tewari, Erik Kocinare, Joseph Woo, Anusha Sarraf, Yung-Hsiang Lu, George Thiruvathukal, James C. Davis
Interoperability In Deep Learning: A User Survey And Failure Analysis Of Onnx Model Converters, Purvish Jajal, Wenxin Jiang, Arav Tewari, Erik Kocinare, Joseph Woo, Anusha Sarraf, Yung-Hsiang Lu, George Thiruvathukal, James C. Davis
Computer Science: Faculty Publications and Other Works
Software engineers develop, fine-tune, and deploy deep learning (DL) models using a variety of development frameworks and runtime environments. DL model converters move models between frameworks and to runtime environments. Conversion errors compromise model quality and disrupt deployment. However, the failure characteristics of DL model converters are unknown, adding risk when using DL interoperability technologies. This paper analyzes failures in DL model converters. We survey software engineers about DL interoperability tools, use cases, and pain points (N=92). Then, we characterize failures in model converters associated with the main interoperability tool, ONNX (N=200 issues in PyTorch and TensorFlow). Finally, we formulate …
Unoapi: Balancing Performance, Portability, And Productivity (P3) In Hpc Education, Konstantin Laufer, George K. Thiruvathukal
Unoapi: Balancing Performance, Portability, And Productivity (P3) In Hpc Education, Konstantin Laufer, George K. Thiruvathukal
Computer Science: Faculty Publications and Other Works
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 high- performance computing, we argue that a curriculum of well- developed software engineering methods and well-crafted exem- plars 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 …
Tests As Maintainable Assets Via Auto-Generated Spies: A Case Study Involving The Scala Collections Library's Iterator Trait, Konstantin Läufer, John O'Sullivan, George K. Thiruvathukal
Tests As Maintainable Assets Via Auto-Generated Spies: A Case Study Involving The Scala Collections Library's Iterator Trait, Konstantin Läufer, John O'Sullivan, George K. Thiruvathukal
Computer Science: Faculty Publications and Other Works
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 …
Teaching And Assessing Programming Fundamentals For Non Majors With Visual Programming, William L. Honig
Teaching And Assessing Programming Fundamentals For Non Majors With Visual Programming, William L. Honig
Computer Science: Faculty Publications and Other Works
Visual programming tools and mobile device applications are a natural tool to engage university students; but, are they effective in teaching quantitative thinking skills to non computer science majors? Answering this question can be based on careful assessment of the learning outcomes.
This paper reports the results from teaching over 100 students mobile app development with App Inventor in a university core course. Results were measured using an assessment process motivated by Bloom's Taxonomy that included student self assessment, ratings by instructors, and comparisons of the two results. The categories in the assessment were mapped to specific levels of skills …
Spring11: Pdc In Cs1/2 And A Mobile/Cloud Intermediate Mobile/Cloud Intermediate Software Design Course, Joseph P. Kaylor, Konstantin Läufer, Chandra N. Sekharan, George K. Thiruvathukal
Spring11: Pdc In Cs1/2 And A Mobile/Cloud Intermediate Mobile/Cloud Intermediate Software Design Course, Joseph P. Kaylor, Konstantin Läufer, Chandra N. Sekharan, George K. Thiruvathukal
Computer Science: Faculty Publications and Other Works
Recent changes in the environment of Loyola University Chicago’s Department of Computer Science include a better differentiation of our four undergraduate majors, growing interest in computing among science majors, and an increased demand for graduates with mobile and cloud skills. In our continued effort to incorporate parallel and distributed computing topics into the undergraduate curriculum, we are focusing on these three existing courses:
CS1: In response to a request from the physics department, we started to offer a CS1 section aimed at majors in physics and other hard sciences this spring semester. This section includes some material on numerical methods …
Building Capable, Energy-Efficient, Flexible Visualization And Sensing Clusters From Commodity Tablets, Thomas Delgado Dias, Xian Yan, Konstantin Läufer, George K. Thiruvathukal
Building Capable, Energy-Efficient, Flexible Visualization And Sensing Clusters From Commodity Tablets, Thomas Delgado Dias, Xian Yan, Konstantin Läufer, George K. Thiruvathukal
Computer Science: Faculty Publications and Other Works
We explore the application of clusters of commodity tablet devices to problems spanning a “trilogy” of concerns: visualization, sensing, and computation. We conjecture that such clusters provide a low-cost, energy-efficient, flexible, and ultimately effective platform to tackle a wide range of problems within this trilogy. This is a work in progress, and we now elaborate our position and give a preliminary status report.
A wide range of Android tablet devices are available in terms of price and capabilities. “You get what you pay for” w.r.t. display resolution, sensors, and chipset---corresponding to the trilogy. $200 gets one a 1280x800-pixel touch display, …
Network Technologies Used To Aggregate Environmental Data, Paul Stasiuk, Konstantin Läufer, George K. Thiruvathukal
Network Technologies Used To Aggregate Environmental Data, Paul Stasiuk, Konstantin Läufer, George K. Thiruvathukal
Computer Science: Faculty Publications and Other Works
The goal of the Loyola Weather Service (lws) project is to design and build a system of functioning environmental monitoring widgets that can intelligently and autonomously control the environment around them based on set thresholds and triggers. The widgets will also have the ability to aggregate their data and easily display this data in various ways: through a user interface in the room that the widget is placed, via a web application, and programmatically via a RESTful web service.
A Polyglot Approach To Bioinformatics Data Integration: Phylogenetic Analysis Of Hiv-1, Steven Reisman, Catherine Putonti, George K. Thiruvathukal, Konstantin Läufer
A Polyglot Approach To Bioinformatics Data Integration: Phylogenetic Analysis Of Hiv-1, Steven Reisman, Catherine Putonti, George K. Thiruvathukal, Konstantin Läufer
Computer Science: Faculty Publications and Other Works
RNA-interference has potential therapeutic use against HIV-1 by targeting highly-functional mRNA sequences that contribute to the virulence of the virus. Empirical work has shown that within cell lines, all of the HIV-1 genes are affected by RNAi-induced gene silencing. While promising, inherent in this treatment is the fact that RNAi sequences must be highly specific. HIV, however, mutates rapidly, leading to the evolution of viral escape mutants. In fact, such strains are under strong selection to include mutations within the targeted region, evading the RNAi therapy and thus increasing the virus’ fitness in the host. Taking a phylogenetic approach, we …
Intelligent Systems Development In A Non Engineering Curriculum, Emily A. Brand, William L. Honig, Matthew Wojtowicz
Intelligent Systems Development In A Non Engineering Curriculum, Emily A. Brand, William L. Honig, Matthew Wojtowicz
Computer Science: Faculty Publications and Other Works
Much of computer system development today is programming in the large - systems of millions of lines of code distributed across servers and the web. At the same time, microcontrollers have also become pervasive in everyday products, economical to manufacture, and represent a different level of learning about system development. Real world systems at this level require integrated development of custom hardware and software.
How can academic institutions give students a view of this other extreme - programming on small microcontrollers with specialized hardware? Full scale system development including custom hardware and software is expensive, beyond the range of any …
Reflective Remote Method Invocation, George K. Thiruvathukal, Lovely S. Thomas, Andy T. Korczynski
Reflective Remote Method Invocation, George K. Thiruvathukal, Lovely S. Thomas, Andy T. Korczynski
Computer Science: Faculty Publications and Other Works
Remote Method Invocation (RMI) is available in the current Java language design and implementation, providing the much-needed capability of allowing objects running in different Java processes to collaborate using a variation on the popular Remote Procedure Call (RPC).
Although RMI provides features which are desirable for high-performance distributed computing, its design and implementation are deficient in key areas of importance to the high-performance computing community in general. This paper addresses the key deficiencies of RMI and how these deficiencies affect the design and implementation of distributed object applications.
Reflective RMI (RRMI) is an open RMI implementation which makes better use …
Technologies For Ubiquitous Supercomputing: A Java Interface To The Nexus Communication System, Ian Foster, George K. Thiruvathukal, Steven Tuecke
Technologies For Ubiquitous Supercomputing: A Java Interface To The Nexus Communication System, Ian Foster, George K. Thiruvathukal, Steven Tuecke
Computer Science: Faculty Publications and Other Works
We use the term ubiquitous supercomputing to refer to systems that integrate low- and mid-range computing systems, advanced networks and remote high-end computers with the goal of enhancing the computational power accessible from local environments. Such systems promise to enable new applications in areas as diverse as smart instruments and collaborative environments. However, they also demand tools for transporting code between computers and for establishing flexible, dynamic communication structures. In this article, we propose that these requirements be satisfied by introducing Java classes that implement the global pointer and remote service request mechanisms defined by a communication library called Nexus. …
On The Interaction Of Object-Oriented Design Patterns And Programming Languages, Gerald Baumgartner, Konstantin Läufer, Vincent F. Russo
On The Interaction Of Object-Oriented Design Patterns And Programming Languages, Gerald Baumgartner, Konstantin Läufer, Vincent F. Russo
Computer Science: Faculty Publications and Other Works
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 …