skip to main content
US FlagAn official website of the United States government
dot gov icon
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
https lock icon
Secure .gov websites use HTTPS
A lock ( lock ) or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.


Title: Automating Testing of Visual Observed Concurrency
Existing techniques for automating the testing of sequential programming assignments are fundamentally at odds with concurrent programming as they are oblivious to the algorithm used to implement the assignments. We have developed a framework that addresses this limitation for those object-based concurrent assignments whose user-interface (a) is implemented using the observer pattern and (b) makes apparent whether concurrency requirements are met. It has two components. The first component reduces the number of steps a human grader needs to take to interact with and score the user-interfaces of the submitted programs. The second component completely automates assessment by observing the events sent by the student-implemented observable objects. Both components are used to score the final submission and log interaction. The second component is also used to provide feedback during assignment implementation. Our experience shows that the framework is used extensively by students, leads to more partial credit, reduces grading time, and gives statistics about incremental student progress  more » « less
Award ID(s):
1924059
PAR ID:
10351954
Author(s) / Creator(s):
; ; ; ; ;
Date Published:
Journal Name:
2021 IEEE/ACM Ninth Workshop on Education for High Performance Computing (EduHPC)
Page Range / eLocation ID:
https://ieeexplore.ieee.org/document/9651252
Format(s):
Medium: X
Sponsoring Org:
National Science Foundation
More Like this
  1. null (Ed.)
    Student experiences in large undergraduate Computer Science courses are increasingly impacted by automated systems. Bots, or agents of software automation, are useful for efficiently grading and generating feedback. Current efforts at automation in CS education focus on supporting instructional tasks, but do not address student struggles due to poor behaviors, such as procrastination. In this paper, we explore using bots to improve the software engineering behaviors of students using developer recommendation choice architectures, a framework incorporating behavioral science concepts in recommendations to improve the actions of programmers. We implemented this framework in class-bot, a novel system designed to nudge students to make better choices while working on programming assignments. This work presents a preliminary evaluation integrating this tool in an introductory programming course. Our results show that class-bot is beneficial for improving student development behaviors increasing code quality and productivity. 
    more » « less
  2. Within the framework of functional data analysis, we develop principal component analysis for periodically correlated time series of functions. We define the components of the above analysis including periodic, operator--valued filters, score processes and the inversion formulas. We show that these objects are defined via convergent series under a simple condition requiring summability of the Hilbert--Schmidt norms of the filter coefficients, and that they possess optimality properties. We explain how the Hilbert space theory reduces to an approximate finite--dimensional setting which is implemented in a custom build \verb|R| package. A data example and a simulation study show that the new methodology is superior to existing tools if the functional time series exhibit periodic characteristics. 
    more » « less
  3. Concurrent abstraction layers are ubiquitous in modern computer systems because of the pervasiveness of multithreaded programming and multicore hardware. Abstraction layers are used to hide the implementation details (e.g., fine-grained synchronization) and reduce the complex dependencies among components at different levels of abstraction. Despite their obvious importance, concurrent abstraction layers have not been treated formally. This severely limits the applicability of layer-based techniques and makes it difficult to scale verification across multiple concurrent layers. In this paper, we present CCAL---a fully mechanized programming toolkit developed under the CertiKOS project---for specifying, composing, compiling, and linking certified concurrent abstraction layers. CCAL consists of three technical novelties: a new game-theoretical, strategy-based compositional semantic model for concurrency (and its associated program verifiers), a set of formal linking theorems for composing multithreaded and multicore concurrent layers, and a new CompCertX compiler that supports certified thread-safe compilation and linking. The CCAL toolkit is implemented in Coq and supports layered concurrent programming in both C and assembly. It has been successfully applied to build a fully certified concurrent OS kernel with fine-grained locking. 
    more » « less
  4. programming concepts in programming assignments in a CS1 course. We seek to answer the following research questions: RQ1. How effectively can large language models identify knowledge components in a CS1 course from programming assignments? RQ2. Can large language models be used to extract program-level knowledge components, and how can the information be used to identify students’ misconceptions? Preliminary results demonstrated a high similarity between course-level knowledge components retrieved from a large language model and that of an expert-generated list. 
    more » « less
  5. Researchers have looked into ways to make computer science assignments more engaging, practical, and beneficial to students to improve learning outcomes by increasing student appeal. Offering a pool of assignments and allowing students to choose their preferred assignments is considered as a potential method for improving learning outcomes. In this paper, we investigate the effect of context choice for assignments in an object-oriented programming course that covers various topics such as object-oriented programming concepts, database design and implementation, graphical user interface design, and web application development. Students complete three immersive simulation-based learning (ISBL) modules as course assignments. ISBL modules involve technology-enhanced problem-based learning where the problem context is represented via a three-dimensional (3D), animated discrete-event simulation model that resembles a real-world system or context, in this case, we have three simulated systems/contexts around which ISBL assignments are defined: an airport, a manufacturing system, and a hospital emergency department. The research experiments involve four groups: (1) students with no choice who use the same assigned simulated system for all three ISBL assignments; (2) students with no choice who are given a different simulated system for each ISBL assignment; (3) students who can choose their preferred simulated system at the beginning but cannot change their choice for future assignments; and, (4) students who can choose at the beginning and switch between the three simulated systems for subsequent assignments. Data are collected over multiple semesters and statistical analyses are conducted to compare the four groups in terms of motivation, experiential learning, and self assessment of learning. We also conduct qualitative assessments in the form of interviews to support and explain our statistical results. 
    more » « less