Sitemap

A list of all the posts and pages found on the site. For you robots out there, there is an XML version available for digesting as well.

Pages

Posts

BetterWebUI: A Faculty-Friendly Agentic Front End for OpenWebUI

11 minute read

Published:

Most large language model interfaces are designed for developers or for a general consumer audience. Faculty who want to use an AI assistant to help with grading, research, or course preparation either accept the limitations of a consumer chat interface or invest significant time learning to run and configure a developer-grade setup. BetterWebUI is an attempt to close that gap. It is a local Python/FastAPI server with a pure-HTML front end that connects to an existing OpenWebUI instance and layers on the features that make an agentic assistant genuinely useful in a higher-education context: workspaces, skills, MCP server management, CLI shortcuts, math rendering, and a suite of integrations with sibling agentic services.

AutoGUI: A Vendor-Neutral Desktop Automation Agent for LLMs

8 minute read

Published:

Most LLM agents can read files, call APIs, and run shell commands, but they have no reliable way to operate a graphical desktop. They cannot click a button in a running application, verify that a dialog appeared, fill a form field, or observe what is currently on screen. AutoGUI is a research prototype that fills that gap. It connects any OpenAI-compatible LLM — including models served locally through OpenWebUI or directly through Ollama — to a full suite of OS-level desktop controls via a ReAct-style agentic loop.

OSScreenObserver: Giving AI Agents Eyes and Hands on Your Desktop

15 minute read

Published:

Most AI agents, whether a large language model assistant running locally or a cloud-hosted agentic framework, have no reliable way to see or interact with the desktop applications running on the machine they are supposed to be helping with. They can read files, call APIs, and run shell commands, but they cannot observe that a dialog box appeared, that a form field is waiting for input, or that an application is in a specific state. OSScreenObserver is a prototype that changes that. It exposes the operating system’s UI accessibility tree, textual descriptions from multiple sources, and ASCII spatial sketches of the current screen layout through two simultaneous interfaces: a browser-based web inspector for humans and an MCP sees are always consistent.

A Private AI Knowledge Base: Obsidian, GitHub Sync, and Cross-Platform AI Context

38 minute read

Published:

For the past year I have been building a knowledge management system with a specific design constraint in mind: every AI system I work with, whether a cloud-hosted assistant, a local agentic coding tool, or an automated GitHub Action, should be able to read the same authoritative description of who I am, what I am working on, and how I want to interact. More importantly, those systems should be able to write back into the knowledge base and have their work appear seamlessly in Obsidian on my local machine the next time I open the app. The proliferation of capable AI tools in 2025-2026 made both sides of this problem, reading and writing, tractable in a way they had not been before. This post documents the architecture I settled on: an Obsidian vault hosted on GitHub, synchronized via the Gitless Sync plugin, structured around three canonical files that any AI system can read and act on, and organized into a curated wiki that agents can query, extend, and maintain across platforms.

Building a Private AI Stack: From Mini PC to Autonomous Agents

45 minute read

Published:

For the past several years I have been thinking carefully about what it means to run AI infrastructure that I actually own, control, and understand from the ground up. The rapid proliferation of frontier model APIs, agentic coding tools, and open-weight model releases in 2025-2026 finally made this tractable at a price and complexity point that a single person could manage. This post documents the architecture I settled on: a self-hosted, Docker-based stack running on a mini PC, unified by a single OpenAI-compatible model gateway, and surfaced through a collection of local inference servers, agentic CLI tools, autonomous agent frameworks, open-source Cowork alternatives, and a task-bounded command harness built around structured queues. My goals were privacy, sovereignty, reproducibility, and the ability to swap components without rebuilding everything from scratch.

Cognitive Loop Kernel: A Local-First Multi-Agent Development Harness

21 minute read

Published:

The emergence of capable code-generation models has prompted a wave of experiments in autonomous software development, where LLM agents plan, implement, test, and revise code with minimal human intervention. Most of these systems, however, rely on cloud orchestration services, opaque runtimes, or monolithic agent designs that make it difficult to inspect, customize, or extend the underlying behavior. The Cognitive Loop Kernel (CLK) is a local-first, multi-agent development harness that attempts to address these constraints directly. You give it an idea, and a dynamically assembled team of agents iterates that idea into a working system through repeated agentic development cycles, all under your local filesystem.

Setting Up AREDN on a Mikrotik hAp to use 44net

13 minute read

Published:

This guide will walk you through setting up a Mikrotik hAp device (I used a hAp ac2) to use 44net addresses, bridging AREDN and 44net services between the two networks. I set up the hAp to broadcast a WiFi hotspot SSID that, when connected to a client, enables access to both 44net and to AREDN resources simultaneously. I use 44net Connect (formerly 44net.cloud) to route a network allocation they assigned to me through a Wireguard tunnel that they also assigned. The tunnel can be configured through their portal to route to the network. It is likely also possible to do this by decapsulating the ipencap packets from the raspberry pi directly, and using a traditional 44net subnet allocation, but this setup enables me to take the hAp setup to mobile deployments, without worring about the NAT configuration or my ability to forward ipencap traffic at my destination.

Setting Up 44net on a Mikrotik Using 44net.cloud for ipencap Forwarding

10 minute read

Published:

This guide will walk you through setting up a Mikrotik router with a 44net network allocation using Wireguard to 44net.cloud in order to receive ipip encapsulated packets from the UCSD 44net router. This way, you do not need to be able to forward these packets through your home router or have native IP Protocol 4 support to access 44net. In this setup, I used a Mikrotik hAp ac2 lite.

Setting Up HBLink for a Private DMR Network with HBlink

6 minute read

Published:

This guide walks you through setting up HBLink for a private DMR network, including configuring a Parrot (echo test) repeater and talkgroup. Ensure that you have administrative access to your server and basic knowledge of Python.

Using ChatGPT to Write Code

7 minute read

Published:

I’ve been asked occasionally about my opinion about generative AI tools such as Chat GPT and their potential to disrupt the way we design and create. While I think there is a risk that fundamental knowledge and skill may erode as they are abstracted away by tools like these, I also think these tools create wonderful “jumping off points” for prototyping ideas. We still need a technically educated population to a) know what questions to ask, b) ask them in a precise way, and c) validate the results.

Remake Learning Day: Equitable CS Education for Broader Workforce Preparation through Design Thinking and Ubiquitous Platforms

24 minute read

Published:

In this article, we will explore tools that enable students to leverage technology in informal contexts that facilitate problem solving in preparation for diverse workforce pathways. Technical solutions and automation aren’t just for Computer Science majors, and there exists a variety of platforms that support exploration and learning as well as productive applications of computing. Our goal is to democratize computing skillsets across all disciplines, and to give students the tools they need to bring computing and technology to their favorite subjects. This has the potential to enhance teaching and learning broadly, and to facilitate participation in computing with inexpensive (or free!) no-code or ubiquitous-code platforms.

Replit in the Classroom

6 minute read

Published:

In this workshop, we will explore opportunities to utilize Replit in the classroom for both small classroom exercises and assignments. We will integrate Replit projects with additional tools and techniques including GitHub Classroom and POGIL instructional methods.

Using GitHub Classroom

15 minute read

Published:

In this article, we’ll explore GitHub classroom as a tool to manage classroom assignments. GitHub classroom creates assignments that students “accept” as git repositories. They can work with their repository on any computer and synchronize or backup their work to the GitHub cloud. Using GitHub practices like Pull Requests, students can request help from the instructor and receive line-by-line feedback right in the repository, all while developing good habits in the use of git repositories. Instructors can automate downloading and grading through scripting or through the GitHub Classroom Assistant tool. In addition, assignments can be specified as group assignments, which create shared repositories as you organize students (or as they self-organize) into teams. GitHub classroom also allows you to tie your assignments to a “starter repository” in which you can post boilerplate materials or code, instructions, rubrics, and FAQs that you can evolve over time.

Using Git with GitHub

6 minute read

Published:

In this article, we’ll summarize some basic operations using the git version control system using the GitHub platform.

Pop, The Question Podcast (S3-E19)

less than 1 minute read

Published:

I sat down with Dr. Melinda Lewis from the Penoni Honors College at Drexel University to talk about computing and its ubiquitous place in our culture, and the need for inclusivity in the field.

CSTA Philly

less than 1 minute read

Published:

Drexel is an institutional member of CSTA Philly, an active group in developing curriculum, sharing ideas, and broadening the reach of computing across educational disciplines.

portfolio

publications

Towards a Reference Model for Intelligent Agent Systems

Published in Proceedings of the International Conference of Autonomous Agents and Multiagent Systems (AAMAS), 2006

Proceedings of the International Conference of Autonomous Agents and Multiagent Systems (AAMAS)

Recommended citation: Pragnesh Jay Modi, Spiros Mancoridis, William M. Mongan, William Regli, Israel Mayk. Towards a Reference Model for Intelligent Agent Systems. Proceedings of the International Conference of Autonomous Agents and Multiagent Systems (AAMAS) 2006.
Download Paper

A Reference Model for Agent-Based Command and Control Systems

Published in Proceedings of the 25th Army Science Conference, 2006

Proceedings of the 25th Army Science Conference

Recommended citation: Christopher J. Dugan, Pragnesh Jay Modi, Joseph Kopena, William M. Mongan, William C. Regli, Israel Mayk. A Reference Model for Agent-Based Command and Control Systems. Proceedings of the 25th Army Science Conference 2006
Download Paper

Dynamic Analysis of Agent Frameworks in Support of a Multiagent Systems Reference Model

Published in IADIS Proceedings of the International Conference Intelligent Systems and Agents (ISA), 2007

IADIS Proceedings of the International Conference Intelligent Systems and Agents (ISA)

Recommended citation: William M. Mongan, Christopher J. Dugan, Robert N. Lass, Andrew K. Hight, Jeff Salvage, William C. Regli, Pragnesh J. Modi. Dynamic Analysis of Agent Frameworks in Support of a Multiagent Systems Reference Model. IADIS Proceedings of the International Conference Intelligent Systems and Agents (ISA) 2007.
Download Paper

A Cyber-Infrastructure for Supporting K-12 Engineering Education through Robotics

Published in The Proceedings of the Association for the Advancement of Artificial Intelligence (AAAI) Education Track, 2008

The Proceedings of the Association for the Advancement of Artificial Intelligence (AAAI) Education Track

Recommended citation: William M. Mongan and William C. Regli. A Cyber-Infrastructure for Supporting K-12 Engineering Education through Robotics. The Proceedings of the Association for the Advancement of Artificial Intelligence (AAAI) Education Track 2008.
Download Paper

Computer Aided Instruction as a Vehicle for Problem Solving: Scratch Programming Environment in the Middle Years Classroom

Published in Proceedings of the American Society for Engineering Education (ASEE) K-12 Track, 2008

Proceedings of the American Society for Engineering Education (ASEE) K-12 Track

Recommended citation: Quincy Brown, William Mongan, Elaine Garbarine, Dara Kusic, Eli Fromm, Adam Fontecchio. Computer Aided Instruction as a Vehicle for Problem Solving: Scratch Programming Environment in the Middle Years Classroom. Proceedings of the American Society for Engineering Education (ASEE) K-12 Track 2008.
Download Paper

Re-engineering a Reverse Engineering Portal to a Distributed SOA

Published in IEEE Proceedings of the 16th International Conference on Program Comprehension (ICPC), 2008

IEEE Proceedings of the 16th International Conference on Program Comprehension (ICPC)

Recommended citation: William M. Mongan, Maxim Shevertalov, Spiros Mancoridis. Re-engineering a Reverse Engineering Portal to a Distributed SOA. IEEE Proceedings of the 16th International Conference on Program Comprehension (ICPC) 2008.
Download Paper

Development and Specification of a Reference Model for Agent-Based Systems

Published in IEEE Transactions on Systems Man and Cybernetics, 2009

IEEE Transactions on Systems Man and Cybernetics, Part C (Applications and Reviews)

Recommended citation: William Regli, Israel Mayk, Christopher J. Dugan, Joseph B. Kopena, Robert N. Lass, Pragnesh Jay Modi, William M. Mongan, Jeff K. Salvage and Evan A. Sultanik. Development and Specification of a Reference Model for Agent-Based Systems. IEEE Transactions on Systems, Man, and Cybernetics, September 2009.
Download Paper

Developing an Agent Systems Reference Architecture

Published in the Proceedings of the 11th International Workshop on Agent Oriented Software Engineering, 2010

the Proceedings of the 11th International Workshop on Agent Oriented Software Engineering

Recommended citation: Duc N. Nguyen, Robert N. Lass, Kyle Usbeck, William M. Mongan, Christopher T. Cannon, William C. Regli, Israel Mayk and Todd Urness. Developing an Agent Systems Reference Architecture. The Proceedings of the 11th International Workshop on Agent Oriented Software Engineering, May 2010.
Download Paper

A Methodology for Developing an Agent Systems Reference Architecture

Published in Agent-Oriented Software Engineering XI, 2010

Agent-Oriented Software Engineering XI

Recommended citation: Duc N. Nguyen, Kyle Usbeck, William M. Mongan, Christopher T. Cannon, Robert N. Lass, Jeff Salvage, William C. Regli, Israel Mayk, Todd Urness. A Methodology for Developing an Agent Systems Reference Architecture. Agent-Oriented Software Engineering XI, pp. 177-188. Danny Weyns, Marie-Pierre Gleizes, eds, Springer Berlin Heidelberg: 2011.
Download Paper

Wireless Heart and Respiration Monitoring for Infants through Passive RFID Tags

Published in IEEE International Conference on Biomedical and Health Informatics (BHI), 2016

IEEE International Conference on Biomedical and Health Informatics (BHI)

Recommended citation: Shrenik Vora, William Mongan, Kapil Dandekar, Adam Fontecchio, and Tim Kurzweg. Wireless Heart and Respiration Monitoring for Infants through Passive RFID Tags. International Conference on Biomedical and Health Informatics (BHI), February, 2016.
Download Paper

A Multi-Disciplinary Framework for Continuous Biomedical Monitoring Using Low-Power Passive RFID-based Wireless Wearable Sensors

Published in Proceedings of the IEEE Smart Systems Workshop, 2016

Proceedings of the IEEE Smart Systems Workshop

Recommended citation: William Mongan, Endla Anday, Genevieve Dion, Adam Fontecchio, Tim Kurzweg, Kelly Joyce, Yuqiao Liu, Owen Montgomery, Ilhaan Rasheed, Cem Sahin, Shrenik Vora, and Kapil Dandekar. A Multi-Disciplinary Framework for Continuous Biomedical Monitoring Using Low-Power Passive RFID-based Wireless Wearable Sensors. Proceedings of the IEEE Smart Systems Workshop, May, 2016.
Download Paper

Real-Time Detection of Apnea via Signal Processing of Time-Series Properties of RFID-Based Smart Garments

Published in IEEE Signal Processing in Medicine and Biology (SPMB), 2016

IEEE Signal Processing in Medicine and Biology (SPMB)

Recommended citation: William M. Mongan, Ilhaan Rasheed, Khyati Ved, Ariana Levitt, Endla Anday, Kapil Dandekar, Genevieve Dion, Timothy Kurzweg, and Adam Fontecchio. Real-Time Detection of Apnea via Signal Processing of Time-Series Properties of RFID-Based Smart Garments. IEEE Signal Processing in Medicine and Biology (SPMB), December, 2016.
Download Paper

On the Use of Knitted Antennas and Inductively Coupled RFID Tags for Wearable Applications

Published in IEEE Transactions on Biomedical Circuits and Systems, 2016

IEEE Transactions on Biomedical Circuits and Systems

Recommended citation: Damiano Patron, William Mongan, Timothy Kurzweg, Adam Fontecchio, Genevieve Dion, Endla Anday, and Kapil R. Dandekar. On the Use of Knitted Antennas and Inductively Coupled RFID Tags for Wearable Applications. IEEE Transactions on Biomedical Circuits and Systems, January 2016.
Download Paper

On the Use of Radio Frequency Identification for Continuous Biomedical Monitoring

Published in ACM/IEEE International Conference on Internet-of-Things Design and Implementation (IoTDI), 2017

ACM/IEEE International Conference on Internet-of-Things Design and Implementation (IoTDI)

Recommended citation: William Mongan, Ilhaan Rasheed, Khyati Ved, Shrenik Vora, Kapil Dandekar, Genevieve Dion, Timothy Kurzweg, and Adam Fontecchio. On the Use of Radio Frequency Identification for Continuous Biomedical Monitoring. ACM/IEEE International Conference on Internet-of-Things Design and Implementation (IoTDI), April, 2017.
Download Paper

Data Fusion of Single-Tag RFID Measurements for Respiratory Rate Monitoring

Published in IEEE Signal Processing in Medicine and Biology (SPMB), 2017

IEEE Signal Processing in Medicine and Biology (SPMB)

Recommended citation: William M. Mongan, Robert Ross, Ilhaan Rasheed, Yuqiao Liu, Khyati Ved, Endla Anday, Kapil Dandekar, Genevieve Dion, Timothy Kurzweg, and Adam Fontecchio. Data Fusion of Single-Tag RFID Measurements for Respiratory Rate Monitoring. IEEE Signal Processing in Medicine and Biology (SPMB), December, 2017.
Download Paper

Ensemble Learning Approach via Kalman Filtering for a Passive Wearable Respiratory Monitor

Published in IEEE Transactions on Biomedical and Health Informatics, 2019

IEEE Transactions on Biomedical and Health Informatics

Recommended citation: Sayandeep Acharya, William M. Mongan, Ilhaan Rasheed, Yuqiao Liu, Endla Anday, Genevieve Dion, Adam Fontecchio, Timothy Kurzweg, and Kapil R. Dandekar. Ensemble Learning Approach via Kalman Filtering for a Passive Wearable Respiratory Monitor. IEEE Transactions of Biomedical and Health Informatics, May 2019.
Download Paper

Activity Segmentation Using Wearable Sensors for DVT/PE Risk Detection

Published in The First IEEE International Workshop on Integrated Smart Healthcare (WISH 2019) at IEEE COMPSAC, 2019

The First IEEE International Workshop on Integrated Smart Healthcare (WISH 2019) at IEEE COMPSAC

Recommended citation: Austin Gentry, William M. Mongan, Brent Lee, Owen Montgomery, and Kapil Dandekar. Activity Segmentation Using Wearable Sensors for DVT/PE Risk Detection. The First IEEE International Workshop on Integrated Smart Healthcare (WISH 2019) at IEEE COMPSAC, July, 2019.
Download Paper

An Adaptive Search Algorithm for Detecting Respiratory Artifacts Using a Wireless Passive Wearable Device

Published in IEEE Signal Processing in Medicine and Biology, 2019

IEEE Signal Processing in Medicine and Biology

Recommended citation: Patrick O-Neill, William M. Mongan, Robert Ross, Sayandeep Acharya, Adam K. Fontecchio, and Kapil R. Dandekar. An Adaptive Search Algorithm for Detecting Respiratory Artifacts Using a Wireless Passive Wearable Device. IEEE Signal Processing in Medicine and Biology (SPMB), December, 2019.
Download Paper

Fusion Learning on Multiple-Tag RFID Measurements for Respiratory Rate Monitoring

Published in IEEE International Conference on Bioinformatics and Biomedical Engineering (BIBE), 2020

IEEE International Conference on Bioinformatics and Biomedical Engineering (BIBE)

Recommended citation: Stephen Hansen, Daniel Schwartz, Jesse Stover, Md Abu Saleh Tajin, William M. Mongan, and Kapil R. Dandekar. Fusion Learning on Multiple-Tag RFID Measurements for Respiratory Rate Monitoring. IEEE International Conference on Bioinformatics and Biomedical Engineering (BIBE), October, 2020.
Download Paper

Wearable Smart Garment Devices for Passive Biomedical Monitoring

Published in Biomedical Signal Processing: Innovation and Applications, 2021

Biomedical Signal Processing: Innovation and Applications

Recommended citation: Chelsea Amanatides, Stephen Hansen, Ariana S. Levitt, Yuqiao Liu, Patrick O-Neill, Damiano Patron, Robert Ross, Daniel Schwartz, Jesse Stover, Md Abu Saleh Tajin, Genevieve Dion, Adam K. Fontecchio, Vasil Pano, William M. Mongan, and Kapil R. Dandekar. Wearable Smart Garment Devices for Passive Biomedical Monitoring. In Biomedical Signal Processing: Innovation and Applications. Iyad Obeid, Ivan Selesnick, and Joseph Picone, eds, Springer: April, 2021, pp. 85-128 (10.1007/978-3-030-67494-6).
Download Paper

Channel Emulation for the Characterization of Wearable RFID Antennas

Published in IEEE Wireless and Microwave Technology Conference (WAMICON), 2021

IEEE Wireless and Microwave Technology Conference (WAMICON)

Recommended citation: Md Abu Saleh Tajin, Marko Jacovic, Xaime Rivas Rey, William M. Mongan, and Kapil R. Dandekar. Channel Emulation for the Characterization of Wearable RFID Antennas. 21st Annual IEEE Wireless and Microwave Technology Conference (WAMICON 2020-2021), April, 2021.
Download Paper

An Adaptively Parameterized Algorithm Estimating Respiratory Rate from a Passive Wearable RFID Smart Garment

Published in IEEE Conference on Computers, Software, and Applications (COMPSAC), 2021

IEEE Conference on Computers, Software, and Applications (COMPSAC)

Recommended citation: Robert Ross, William M. Mongan, Patrick O-Neill, Ilhaan Rasheed, Adam Fontecchio, Genevieve Dion, and Kapil R. Dandekar. An Adaptively Parameterized Algorithm Estimating Respiratory Rate from a Passive Wearable RFID Smart Garment. IEEE Symposium on Mobile, Wearable and Ubiquitous Computing at COMPSAC 2021, July, 2021.
Download Paper

Energy-Effcient Respiratory Anomaly Detection in Premature Newborn Infants

Published in MDPI Electronics Journal - Neuromorphic Sensing and Computing Systems, 2022

MDPI Electronics Journal - Neuromorphic Sensing and Computing Systems

Recommended citation: Paul, Ankita, Md. A.S. Tajin, Anup Das, William M. Mongan, and Kapil R. Dandekar. 2022. Energy-Efficient Respiratory Anomaly Detection in Premature Newborn Infants Electronics 11, no. 5: 682.
Download Paper

Instructional Judgment, Not Just Correctness: Evaluating AI-Generated Feedback on Student Mathematical Thinking

Published in Society for Information Technology and Teacher Education, 2026

Society for Information Technology and Teacher Education

Recommended citation: Reinsburrow, A., Yovanov, C., Mongan, B., Cummins, M., Latta, M., Shumar, W., Klein, V., Silverman, J. & Weimar, S. (2026). Instructional Judgment, Not Just Correctness: Evaluating AI-Generated Feedback on Student Mathematical Thinking. In Proceedings of Society for Information Technology & Teacher Education International Conference 2026 (pp. 2542-2547).
Download Paper

software

AutoGUI Desktop Agent

A vendor-neutral desktop automation agent that connects any OpenWebUI-compatible LLM to OS-level controls — shell, filesystem, screenshots, accessibility-tree clicks, browser automation, and more — via a ReAct-style agentic loop.

BetterWebUI

A friendlier front-end for OpenWebUI built for higher-ed faculty who want the power of agentic AI — running commands, reading files, generating images and audio, and calling MCP servers — without having to be a developer.

ClusterNav

Visualiztion of Bunch Clustered Software Module Dependency Graphs

Cognitive Loop Kernel (CLK)

A local-first multi-agent development harness that iterates a natural-language idea into a working software system through repeated agentic engineering cycles with dynamic team casting, real file actions, and automatic git commits.

digital_link

A DTMF-controlled digital mode and talkgroup switcher for AllStarLink nodes running DVSwitch.

IoT Sensor Framework

A secure and modular data collection and processing framework for heterogeneous Internet-of-Things (IoT) sensor networks.

llmproxy

An OpenAI-compatible HTTP proxy that aggregates multiple LLM providers behind a single endpoint, routing requests by provider prefix embedded in the model name.

OSScreenObserver

A cross-platform prototype that exposes the operating system’s UI accessibility tree, textual descriptions, and ASCII spatial sketches through a browser-based dashboard and an MCP stdio server for AI agent integration.

pi-openai-compat

A pi coding agent extension that registers OpenAI-compatible LLM endpoints as first-class providers inside the pi terminal harness.

pxt-ESP8266_VarIOT

A MakeCode extension for the BBC micro:bit that enables telemetry upload to a VarIOT ThingsBoard IoT gateway over WiFi using an ESP8266 module.

Ursinus WebIDE

A serverless, browser-based integrated development environment for student coding practice and rapid instructor exercise development, supporting C++, Java, JavaScript, Python, R, SQL, and more without any software installation.

talks

Using GitHub Classroom

Published:

The CSTA Spring Symposium was scheduled to be held at Drexel University, but is being held remotely due to the COVID-19 pandemic. I have put my materials online for the benefit of attendees and the general public. They can be found here:

Using Replit in the Classroom

Published:

The CSTA Spring Symposium is being held remotely due to the COVID-19 pandemic. I have put my materials online for the benefit of attendees and the general public. They can be found here:

The Ursinus WebIDE: A Serverless Browser-Based Development Environment for Student Practice and Rapid Instructor Exercise Development

Published:

With Christopher Tralie

Recommended citation: Tralie, C., & Mongan, W. M. (2026). The Ursinus WebIDE: A Serverless Browser-Based Development Environment for Student Practice and Rapid Instructor Exercise Development. In Proceedings of the 55th ACM Technical Symposium on Computer Science Education (SIGCSE TS 2026). St. Louis, MO, USA.
Download Paper

teaching

2005-2006 Courses Taught

Course, Drexel University Department of Computer Science, 2005

CS 281: Systems Architecture I (Fall, Spring)
CS 282: Systems Architecture II (Winter, Summer)

2006-2007 Courses Taught

Course, Drexel University Department of Computer Science, 2006

CS 281: Systems Architecture I (Fall, Spring)
CS 282: Systems Architecture II (Winter, Summer)

2007-2008 Courses Taught

Course, Drexel University Department of Computer Science, 2007

CS 281: Systems Architecture I (Fall, Spring)
CS 282: Systems Architecture II (Winter, Summer)
ECEC 490: ST: Computer Organization (Summer)

2008-2009 Courses Taught

Course, Drexel University Department of Computer Science, 2008

ECEC 490: ST: Processor Design (Fall)
CS 281: Systems Architecture I (Fall, Spring)
CS 361: Concurrent Programming (Fall)
CS 282: Systems Architecture II (Winter, Summer)
CS 472/ECEC 490: Computer Networks (Winter)
CS 370/ECEC 421: Intro Operating Systems I / Operating Systems (Winter, Summer)
CS 498: Special Topics in Computer Architecture (Winter)
CS 680 (Graduate Course): Machine Organization (Spring)
CS 498: Advanced Topics in CPU Design (Spring)
ECEC 355: Computer Structures (Summer)

2009-2010 Courses Taught

Course, Drexel University Department of Computer Science, 2009

CS 281: Systems Architecture I (Fall, Spring)
CS 361: Concurrent Programming (Fall, Spring)
ECEC 357: Computer Networks (Fall)
CS 282: Systems Architecture II (Winter, Summer)
CS 265: Advanced Programming Techniques (Winter)
CS 370/ECEC 421: Intro Operating Systems I / Operating Systems (Winter, Summer)
CS 498: Concurrent Programming (Spring)
CS 498: Systems Architecture II (Spring)
CS 680 (Graduate Course): Machine Organization (Summer)

2010-2011 Courses Taught

Course, Drexel University Department of Computer Science, 2010

ECEC 432: Internet Arch and Protocols (Fall)
CS 361/ECEC 490: Concurrent Programming (Fall, Spring)
CS 281: Systems Architecture I (Fall, Spring)
ECEC 357: Intro to Computer Networks (Winter)
ECEC 433: Network Programming (Winter)
CS 370/ECEC 421: Operating Systems (Winter, Summer)
CS 283: Systems Programming (Winter, Summer)
ECEC 490: Networks 3 (Spring)
ECE 203: Programming for Engineers (Summer)
ECEC 355: Processor Design (Summer)

2011-2012 Courses Taught

Course, Drexel University Department of Computer Science, 2011

ECE 203: Programming for Engineers (Fall)
CS 361: Concurrent Programming (Fall, Spring)
CS 281: Systems Architecture I (Fall, Spring)
ECEC 357: Intro to Computer Networks (Winter)
CS 370/ECEC 421: Operating Systems (Winter, Summer)
CS 283/ECEC 353: Systems Programming (Winter, Summer)
ESL 098: KAUST Introduction to C++ (Spring)
CS 480: ST: Web and Mobile App Development (Spring)
ECEC 355: Computer Architecture (Summer)

2011-2012 Courses Taught

Course, University of Pennsylvania Department of Computer and Information Science (Visiting), 2012

CIT 595: Computer Systems II (Spring)

2012-2013 Courses Taught

Course, Drexel University Department of Computer Science, 2012

CS 498: Advanced Topics in Operating Systems (Fall)
ECE 203: Programming for Engineers (Fall)
CS 480: ST: Processor Architecture and Analysis (Fall)
ECEC 357: Intro to Computer Networks (Fall)
CS 361: Concurrent Programming (Fall)
CS 480: ST: Web and Mobile App Development (Winter)
CS 370: Operating Systems (Winter, Summer)
CS 283: Systems Programming (Winter, Summer)
CS 498: Big Data and Advanced Analytics (Summer)
HNRS 202: Making Apps (Summer)
ECEC 355: Computer Architecture (Summer)
CS 280: ST: Web and Mobile App Development (Summer)

2012-2013 Courses Taught

Course, University of Pennsylvania Department of Computer and Information Science (Visiting), 2013

CIT 595: Computer Systems II (Spring)

2013-2014 Courses Taught

Course, Drexel University Department of Computer Science, 2013

CS 361: Concurrent Programming (Fall)
CS 275: Web and Mobile App Development (Winter, Summer)
CS 370: Operating Systems (Winter, Summer)
CS 498: Design Experience (Summer)
ECEC 355: Computer Architecture (Summer)
HNRS 202: Making Apps (Summer)
CS 283: Systems Programming (Summer)

2014-2015 Courses Taught

Course, Drexel University Department of Computer Science, 2014

CI 101: Computing and Informatics Design I (Fall)
CS 275: Web and Mobile App Development (Winter, Summer)
CS 280/CI 106: Computing and Informatics Design Project (Winter)
CS 498: Social Media Analytics (Summer)
CS 370: Operating Systems (Summer)
CS 283: Systems Programming (Summer)

2015-2016 Courses Taught

Course, Drexel University Department of Computer Science, 2015

CI 101: Computing and Informatics Design I (Fall)
CS 283: Systems Programming (Winter, Summer)
CS 275: Web and Mobile App Development (Winter)
CI 106: Computing and Informatics Design Project (Winter)
CS 370: Operating Systems (Summer)

2016-2017 Courses Taught

Course, Drexel University Department of Computer Science, 2016

CI 101: Computing and Informatics Design I (Fall)
CS 283: Systems Programming (Summer)
CS 370: Operating Systems (Summer)

2017-2018 Courses Taught

Course, Drexel University Department of Computer Science, 2017

CI 101: Computing and Informatics Design I (Fall)
CS 283: Systems Programming (Summer)
CS 370: Operating Systems (Summer)

2018-2019 Courses Taught

Course, Drexel University Department of Computer Science, 2018

CS 520 (Graduate Course): Computer Science Foundations (Fall)
CS I799 (Graduate Course): ECE Magnetic Knitting Investigation (Fall, Winter, Spring)
CS I499: RF Multisensor Fusion (Winter)
CS I499: Advanced Operating Systems (Winter)
CS I499: Advanced Computing Systems (Winter)
CS I299: Cardio-respiratory RF Processing (Winter)
CS T280: Programming Practicum (Winter)
HNRS I399: Coordinated Radio Frequency Management (Winter)
CS I399: Machine Learning Research (Summer)
CS I599 (Graduate Course): RF Cardio RSA Monitoring (Summer)
CS 265: Advanced Programming Tools and Techniques (Winter, Summer)
CS 283: Systems Programming (Summer)
CS 370: Operating Systems (Summer)

2019-2020 Courses Taught

Course, Syracuse University Department of Computer Science and Engineering (Part-Time Instructor), 2020

CSE 674 (Graduate Course): Advanced Data Structures and Algorithms (Spring, Fall)

2020-2021 Courses Taught

Course, Ursinus College Department of Mathematics and Computer Science, 2020

CS 173: Introduction to Computer Science (Fall: 23 + 22 Students)
CS 471 (Special Topics): Web and Mobile Development (Fall: 15 Students)
CS 391 (Independent Study): Research Independent Study in Deep Learning in Astrophysics (Fall: 1 Student, Spring: 1 Student)
CS 173: Introduction to Computer Science (Spring: 22 Students)
CS 374: Principles of Programming Languages (Spring: 25 Students)
CS 475: Computer Networks (Spring: 15 Students)
CS 391 (Independent Study): Research Independent Study in IoT Wearable Biosensors (Spring: 2 Students)
CS 391 (Independent Study): Research Independent Study in Dynamic Antenna Selection for Real-Time RF Sensing (Spring: 1 Student)
CS 394 (Independent Study): Research Independent Study in Cross-Architecture Translation (Spring: 1 Student)

2021-2022 Courses Taught

Course, Ursinus College Department of Mathematics and Computer Science, 2021

CS 173: Introduction to Computer Science (Fall: 22 + 21 Students)
CS 377: Databases (Fall: 16 Students)
CS 173: Introduction to Computer Science (Spring: 19 + 16 Students)
CS 474: Human-Computer Interaction (Spring: 9 Students)
CS 392 (Independent Study): Research Independent Study in Deep Learning in Astrophysics (Fall: 2 Students, Spring: 1 Student)
CS 392 (Independent Study): Research Independent Study in Cross-Architecture Translation (Fall: 1 Student)
CS 394 (Independent Study): Research Independent Study in RF Biomedical Analysis through Wearable Internet-of-Things Devices (Fall: 2 Students, Spring: 2 Students)
CS 391 (Independent Study): Research Independent Study in Malware Detection through Electromagnetic System Response (Spring: 1 Student)

2022-2023 Courses Taught

Course, Ursinus College Department of Mathematics and Computer Science, 2022

CS 170: Programming for the World Around Us (Fall, 18 Students)
CS 374: Principles of Programming Languages (Fall, 24 Students)
CS 274: Computer Architecture (Spring, 14 Students)
CS 375: Software Engineering (Spring, 10 Students)
CS 475: Computer Networks (Spring, 19 Students)
CS/MATH 350: Oral Presentation (Fall Coordinator, 11 Students)
CS 391: Research Independent Study in Moon Crater Analysis (Fall, 2 Students)
CS 394: Research Independent Study in Neural Network Visualization (Fall, 1 Student)
CS 394: Research Independent Study in Software UX for Student Engagement (Spring, 1 Student)
CS 394: Research Independent Study in Moon Cracter Analysis (Spring, 1 Student)
CS 394: Research Independent Study in RF IoT Security Layer (Spring, 1 Student)
CS 392: Research Independent Study in Explainable AI Models (Spring, 1 Student)
CS 392: Research Independent Study in Grid Software Defined Radios (Spring, 1 Student)
CS 394: Research Independent Study in Educational Modules for Grid Software Defined Radios (Spring, 1 Student)
IDS-ADV: Advising Practicum (Fall, 9 Students)
Major Advising: 9 Students
First-Year Advising: 9 Students

2023-2024 Courses Taught

Course, Ursinus College Department of Mathematics and Computer Science, 2023

CS 377: Database Design (Fall, 6 Students)
CS 471: Special Topics: Computer Science Pedagogy (Fall, 29 Students)
CIE 100: Common Intellectual Experience I (Fall, 16 Students)
CS 010: Problem Solving in CS (Fall, 5 Students)
IDS 099: Special Topics: Hidden Curriculum in CS (Fall, 12 Students)
CS 394: Research Independent Study in Dynamic Radar Tracking (Fall, 1 Student)
IDS-ADV: Advising Practicum (Fall, 10 Students)
CS 376: Operating Systems (Spring, 17 Students)
CS 474: Human-Computer Interaction (Spring, 5 Students)
CS 391: Research Independent Study in Virtual Museum Environments (Spring, 1 Student)
CS 394: Research Independent Study in Advanced Computer Architecture and Organization (Spring, 1 Student)
CS 394: Research Independent Study in RFID Localization and Tracking (Spring, 3 Students)
CS 394: Research Independent Study in Human Pose Estimation (Spring, 2 Students)
CS/MATH/STAT 350: Oral Presentation (Spring Coordinator, 13 Students)
Major Advising: 23 Students
First-Year Advising: 9 Students

2024-2025 Courses Taught

Course, Ursinus College Department of Mathematics and Computer Science, 2024

CS 374: Principles of Programming Languages (Fall, 30 Students)
CIE 100: Common Intellectual Experience I (Fall, 15 Students)
CS 170Q: Programming for the World Around Us (Fall, 25 Students)
IDS-ADV: Advising Practicum (Fall, 10 Students)
IDS-099: AI for All (Special Topics, Fall, 7 Students)
CS 391: AI Feature Visualization (Independent Study, Fall, 1 Student)
CS 394: Retrieval Augmented AI (Independent Study, Fall, 1 Student)
CS 382: Summer Internship (Internship Supervision, Fall, 3 Students, Spring, 1 Student)
CS 274: Computer Architecture (Spring, 17 Students)
CS 375: Software Engineering (Spring, 16 Students)
CS392: Financial Literacy Toolkit (Independent Study, Spring, 1 Student)
CS392: AI Feature Visualization (Independent Study, Spring, 1 Student)
CS392: Sensor Fusion (Independent Study, Spring, 2 Students)
CS394: Natural Language Processing (Independent Study, Spring, 3 Students)
Major Advising: 22 Students
First-Year Advising: 10 Students

2025-2026 Courses Taught

Course, Ursinus College Department of Mathematics and Computer Science, 2025

CS 357: Foundations of Artificial Intelligence (Fall, 10 Students)
CS 352: Computer Science Pedagogy (Fall, 6 Students)
CS 477: Artificial Intelligence (Fall, 24 Students)
IDS 060: Pedagogical Partnerships (Fall, 7 Students; Spring, 9 Students)
CS 491: AI in Teaching and Learning (Honors Independent Study, Fall, 1 Student)
CS 394: AI in Teaching and Learning (Independent Study, Fall, 3 Students)
CS 394: Reliable Wireless Emergency Communications (Independent Study, Fall, 1 Student)
CS 491: AI Based Wi-Fi Penetration Tool (Honors Independent Study, Fall, 1 Student)
CS 382: Summer Internship (Internship Supervision, Fall, 5 Students, Spring, 3 Students)
CS 492: AI in Teaching and Learning (Honors Independent Study, Spring, 1 Student)
CS 492: AI Based Wi-Fi Penetration Tool (Honors Independent Study, Spring, 1 Student)
CS 392: Using Lightweight Machine Learning to Assess Risk in Network Port Configurations (Independent Study, Spring, 1 Student)
CS 392: Cybersecurity and Telecommunications (Independent Study, Spring, 1 Student)
CS 394: RF Emergency Communications (Independent Study, Spring, 1 Student)
CS 394: Biomedical Artificial Intelligence (Independent Study, Spring, 1 Student)
CS 394: Software Engineering in CS Education (Independent Study, Spring, 2 Students)
CS 394: Educational Pathways in Computing (Independent Study, Spring, 1 Student)
CS 394: Digital Interaction in Performance Art (Independent Study, Spring, 1 Student)
CS/MATH/STAT 350: XLP Presentations (Spring, 13 Students)
Major Advising: 29 Students
First-Year Advising: 4 Students