Open Access. Powered by Scholars. Published by Universities.®

Physical Sciences and Mathematics Commons

Open Access. Powered by Scholars. Published by Universities.®

Articles 1 - 11 of 11

Full-Text Articles in Physical Sciences and Mathematics

Conversations With Chatgpt About C Programming: An Ongoing Study, James C. Davis, Yung-Hsiang Lu, George K. Thiruvathukal Mar 2023

Conversations With Chatgpt About C Programming: An Ongoing Study, James C. Davis, Yung-Hsiang Lu, George K. Thiruvathukal

Computer Science: Faculty Publications and Other Works

AI (Artificial Intelligence) Generative Models have attracted great attention in recent years. Generative models can be used to create new articles, visual arts, music composition, even computer programs from English specifications. Among all generative models, ChatGPT is becoming one of the most well-known since its public announcement in November 2022. GPT means {\it Generative Pre-trained Transformer}. ChatGPT is an online program that can interact with human users in text formats and is able to answer questions in many topics, including computer programming. Many computer programmers, including students and professionals, are considering the use of ChatGPT as an aid. The quality …


An Empirical Study Of Artifacts And Security Risks In The Pre-Trained Model Supply Chain, Wenxin Jiang, Nicholas Synovic, Rohan Sethi, Aryan Indarapu, Matt Hyattt, Taylor R. Schorlemmer, George K. Thiruvathukal, James C. Davis Nov 2022

An Empirical Study Of Artifacts And Security Risks In The Pre-Trained Model Supply Chain, Wenxin Jiang, Nicholas Synovic, Rohan Sethi, Aryan Indarapu, Matt Hyattt, Taylor R. Schorlemmer, George K. Thiruvathukal, James C. Davis

Computer Science: Faculty Publications and Other Works

Deep neural networks achieve state-of-the-art performance on many tasks, but require increasingly complex architectures and costly training procedures. Engineers can reduce costs by reusing a pre-trained model (PTM) and fine-tuning it for their own tasks. To facilitate software reuse, engineers collaborate around model hubs, collections of PTMs and datasets organized by problem domain. Although model hubs are now comparable in popularity and size to other software ecosystems, the associated PTM supply chain has not yet been examined from a software engineering perspective.

We present an empirical study of artifacts and security features in 8 model hubs. We indicate the potential …


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 Jul 2019

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 …


A Survey Of Software Metric Use In Research Software Development, Nasir U. Eisty, George K. Thiruvathukal, Jeffrey C. Carver Oct 2018

A Survey Of Software Metric Use In Research Software Development, Nasir U. Eisty, George K. Thiruvathukal, Jeffrey C. Carver

Computer Science: Faculty Publications and Other Works

Background: Breakthroughs in research increasingly depend on complex software libraries, tools, and applications aimed at supporting specific science, engineering, business, or humanities disciplines. The complexity and criticality of this software motivate the need for ensuring quality and reliability. Software metrics are a key tool for assessing, measuring, and understanding software quality and reliability. Aims: The goal of this work is to better understand how research software developers use traditional software engineering concepts, like metrics, to support and evaluate both the software and the software development process. One key aspect of this goal is to identify how the set of metrics …


Software Engineering For Science, Jeffrey C. Carver, Neil P. Chue Hong, George K. Thiruvathukal Oct 2016

Software Engineering For Science, Jeffrey C. Carver, Neil P. Chue Hong, George K. Thiruvathukal

Computer Science: Faculty Publications and Other Works

Software Engineering for Science provides an in-depth collection of peer-reviewed chapters that describe experiences with applying software engineering practices to the development of scientific software. It provides a better understanding of how software engineering is and should be practiced, and which software engineering practices are effective for scientific software.

The book starts with a detailed overview of the Scientific Software Lifecycle, and a general overview of the scientific software development process. It highlights key issues commonly arising during scientific software development, as well as solutions to these problems.

The second part of the book provides examples of the use of …


Metrics, Software Engineering, Small Systems – The Future Of Systems Development, William L. Honig Jun 2016

Metrics, Software Engineering, Small Systems – The Future Of Systems Development, William L. Honig

Computer Science: Faculty Publications and Other Works

In this talk I will introduce the importance of metrics, or measures, and the role they play in the development of high quality computer systems. I will review some key mega trends in computer science over the last three decades and then explain why I believe the trend to small networked systems, along with metrics and software engineering will define the future of high technology computer based systems.

I first learned about metrics at the Bell System where everything was measured. Metrics can be understood easily if you think of them as measures, for example of calories or salt in …


A Polyglot Approach To Bioinformatics Data Integration: A Phylogenetic Analysis Of Hiv-1, Steven Reisman, Thomas Hatzopoulous, Konstantin Läufer, George K. Thiruvathukal, Catherine Putonti Jan 2016

A Polyglot Approach To Bioinformatics Data Integration: A Phylogenetic Analysis Of Hiv-1, Steven Reisman, Thomas Hatzopoulous, Konstantin Läufer, George K. Thiruvathukal, Catherine Putonti

Computer Science: Faculty Publications and Other Works

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 …


Towards Sustainable Digital Humanities Software, George K. Thiruvathukal, Shilpika Shilpika, Nicholas J. Hayward, Saulo Aguiar, Konstantin Läufer Nov 2015

Towards Sustainable Digital Humanities Software, George K. Thiruvathukal, Shilpika Shilpika, Nicholas J. Hayward, Saulo Aguiar, Konstantin Läufer

Computer Science: Faculty Publications and Other Works

Our work in software quality for digital humanities was borne of an effort to address sustainable practices in scientific software development, where the speaker (Thiruvathukal) co-authored a position paper on the case for software engineering in scientific software development as part of an all-encompassing strategy to create more sustainable scientific software (an example of a well-known scientific software package is LINPACK). In this position paper, we addressed how “progress in scientific research is dependent on the quality and accessibility of software at all levels". This progress depends on embracing the best traditional--and emergent--practices in software engineering, especially agile practices that …


Teaching Successful "Real-World" Software Engineering To The "Net" Generation: Process And Quality Win!, William L. Honig Apr 2008

Teaching Successful "Real-World" Software Engineering To The "Net" Generation: Process And Quality Win!, William L. Honig

Computer Science: Faculty Publications and Other Works

Software engineering skills are critical for students seeking careers as software developers. However, academic course content often fails to teach practical, "real-world" software engineering as it is done in large organizations. Further, the proclivities of the current generation leave students disinclined to the disciplines of process and quality. Academics seldom use the Team Software Process (TSP), a leading methodology of global industries. Four years of data indicate that student teams using TSP can achieve industry levels of productivity and reasonable quality levels. Further, results from 23 teams and over 200 students indicate that these Net-Generation students developed an understanding for …


A Classroom Outsourcing Experience For Software Engineering Learning, William L. Honig, Tejasvini Prasad Sep 2007

A Classroom Outsourcing Experience For Software Engineering Learning, William L. Honig, Tejasvini Prasad

Computer Science: Faculty Publications and Other Works

Outsourcing of software development is a key part of globalization, oft misunderstood by computer science students, and possibly a cause of declining enrollments in the field. The authors developed and implemented an outsourcing experience for students in an advanced software engineering course. Student teams at two universities developed game playing programs and outsourced key parts of their systems to the other university. Results show students improved their understanding of outsourcing, developed better appreciation for the importance of software engineering techniques, and created ad hoc communication protocols between teams. The paper concludes with recommendations for expanding the approach used to other …


Unit Testing Considered Useful, George K. Thiruvathukal, Konstantin Läufer, Benjamin Gonzalez Nov 2006

Unit Testing Considered Useful, George K. Thiruvathukal, Konstantin Läufer, Benjamin Gonzalez

Computer Science: Faculty Publications and Other Works

Testing is an important part of application development. Hardware engineers, in particular, have a long established history of testing for the obvious reason that it's awfully hard to rebuild a microprocessor every time a bug pops up in the design stage--not to mention the enormous headaches such bugs generate on the software side.