VLDB 2026 Research / reviewers in the wild / expert
Adrian A. de Freitas
dblp:66/3752
· DBLP profile ↗
13ranked-venue papers
6as first author
7since 2021 · last 2023
0000-0003-1946-8650ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Human-computer interaction and ubiquitous computing · 11 · 5 first-author · 7 since 2021Artificial intelligence and machine learning · 1 · 1 first-authorSoftware engineering, systems software and programming languages · 1Applied, interdisciplinary, general and emerging computing · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | Visual vs. Textual Programming Languages in CS0.5: Comparing Student Learning with and Student Perception of RAPTOR and PythonabstractMuch debate surrounds the choice of programming language for teaching computer science. Our institution's replacement of a visual programming language (RAPTOR) with a textual programming language (Python) provided a novel opportunity to explore the impacts of the programming language on students' learning and perception of programming. We conducted a randomized comparative study that involved 1083 students who took our introductory computing course in the 2019-2020 academic year. A unique aspect of our work stems from our course being a general education requirement; thus, our study includes students with a wide variety of backgrounds and majors. This report presents a comparison of student performance in each version of the course, including the impact of the programming language on underrepresented groups, and provides a summary of student feedback. Our results show that students in our introductory course performed similarly overall, but overwhelmingly perceived Python to be more valuable. Joel Coffman, Adrian A. de Freitas, Justin M. Hill, Troy Weingart |
SIGCSE (1) | 2 |
| 2023 | FalconCode: A Multiyear Dataset of Python Code Samples from an Introductory Computer Science CourseabstractThe lack of large and diverse datasets of student code samples limits some forms of computer science education research. To address this problem, we created FalconCode, a novel collection of over 1.5 million Python programs from over two thousand undergraduate students at the United States Air Force Academy. FalconCode captures over five semesters worth of code samples from our introduction to computing course, which is taken by every student regardless of their academic major. The dataset contains student code submissions for over 800 programming assignments, as well as additional metadata such as the prompt for each assignment, the testcase(s) used to evaluate student submissions, and the specific skills needed to solve each problem. In this paper, we describe the methodology used to create FalconCode and the steps taken to anonymize the data. We then describe FalconCode's data schema, and show how it can support a wide range of research---including those utilizing machine learning (ML) and artificial intelligence (AI). FalconCode is provided free-of-charge, and is available upon request for computer science education research. Adrian A. de Freitas, Joel Coffman, Michelle M. de Freitas, Justin C. Wilson, Troy Weingart |
SIGCSE (1) | 1 |
| 2022 | An Approach to Teaching Applied Machine Learning with Autonomous Systems Integration
Chad Mello, Adrian A. de Freitas, Troy Weingart |
CSEDU (2) | 2 |
| 2022 | Good Students are Good Students Student Achievement with Visual versus Textual ProgrammingabstractIn this full research paper, we compare the impact of learning a visual versus textual programming language in an introductory computing course that is a general education requirement at our institution. We conducted a randomized comparative study with "experimental" sections that were taught using Python instead of RAPTOR, a flowchart-based programming language. The populations of students learning each programming language were similar with respect to gender, race, and predicted performance based upon standardized test scores and prior post-secondary education. Although students' performance on the whole was similar regardless of the programming language taught, predicted performance is correlated with SAT Math scores, grades in mathematics courses (specifically Calculus II), and, for lower-performing students, grades in other courses that satisfy general education requirements. That is, students from these groups who had lower predicted performance and learned Python performed worse on average than their peers who learned RAPTOR, and students with higher predicted performance outperformed (on average) their peers who learned RAPTOR. In addition, students' performance in subsequent computer science courses was not correlated with their performance and the language they learned in our introductory computing course. Our results raise important questions about the role of an introductory computing course in promoting equity and engaging students from historically underrepresented groups in computing fields. Joel Coffman, Justin M. Hill, Shannon Beck, Adrian A. de Freitas, Troy Weingart |
FIE | 4 |
| 2022 | Introducing Software Development Process, Software Engineering, and Artificial Intelligence in a CS0.5 Course ProjectabstractOur CS0.5 course is required for all students and tasked to develop and assess the system development process proficiencies of an engineering-based institutional outcome. To achieve this tasking, we created a course-wide project that simulates NASA's Mars Ingenuity helicopter using an approach that emphasized our software system development process. With this project, our first-year college students created a 2-dimensional simulation of the Ingenuity helicopter flying through the thin Martian atmosphere with the goal of maximizing the area mapped subject to flight dynamics, available battery, landing proximity, and impact constraints. Students created their Ingenuity simulator using Python in three spirals: Spiral 1 - rendering of the simulation view with some initial movement, Spiral 2 - manual flight operations via thrust and roll keyboard inputs, and Spiral 3 - full auto-pilot. The students utilized a software system development process called "UDIT" (pronounced, "U Did IT") which stands for Understand - Design - Implement - Test. The assignment document was purposefully organized based on this process. The Understand and Design steps were presented via storyboards, enumerated requirements, a recommended structure chart, pseudocode, and suggested variables. As the Understand and Design steps address higher order objectives on Bloom's Taxonomy, we strived to model effective approaches for these steps. Most of our novice programmer's efforts involved the Implementation and Test steps emphasizing a build-a-little, test-a-little strategy. Forty percent of points come from testing via test procedures that the students created. The remaining points were earned based on code correctness and quality. The course also introduced the students to Artificial Intelligence to contribute to another proficiency of the engineering institutional outcome. For this, the project introduced students to genetic algorithms. They learned how the algorithm's parameters can be configured to train a more sophisticated version of the autopilot that needed to deal with additional Ingenuity features, including altitude-dependent mapping, as well as randomness in the form of varying winds at different altitudes. Currently being used with 450 students across 22 sections, the project is being assessed by sub-score tracking across the spirals; students' self-assessments of learning, interest, and self-efficacy; and collection of instructors' experiences and perceptions on the project. Steven M. Hadfield, Alexander C. Roosma, Adrian A. de Freitas, Kimberly A. Braun, Steven Fulton, Joel Coffman, David T. Merritt, Kenneth R. Sample, Justin C. Wilson, Bobby D. Birrer |
ITiCSE (2) | 3 |
| 2021 | I'm Going to Learn What?!?: Teaching Artificial Intelligence to Freshmen in an Introductory Computer Science CourseabstractAs artificial intelligence (AI) becomes more widely utilized, there is a need for non-computer scientists to understand 1) how the technology works, and 2) how it can impact their lives. Currently, however, computer science educators have been reluctant to teach AI to non-majors out of concern that the topic is too advanced. To fill this gap, we propose an AI and machine learning (ML) curriculum that is specifically designed for first-year students. In this paper, we describe our curriculum and show how it covers four key content areas: core concepts, implementation details, limitations, and ethical considerations. We then share our experiences teaching our new curriculum to 174 randomly-selected Freshman students. Our results show that non-computer scientists can comprehend AI/ML concepts without being overwhelmed by the subject material. Specifically, we show that students can design, code, and deploy their own intelligent agents to solve problems, and that they understand the importance and value of learning about AI in a general-education course. Adrian A. de Freitas, Troy Weingart |
SIGCSE | 1 |
| 2021 | Nifty AssignmentsabstractThe Nifty Assignments special session is about promoting and sharing the ideas and ready-to-use materials of successful assignments. Nick Parlante, Julie Zelenski, Adrian A. de Freitas, Troy Weingart, Keith Schwarz, Ben Stephenson, Steven Bitner |
SIGCSE | 3 |
| 2016 | Snap-To-It: A User-Inspired Platform for Opportunistic Device InteractionsabstractThe ability to quickly interact with any nearby appliance from a mobile device would allow people to perform a wide range of one-time tasks (e.g., printing a document in an unfamiliar office location). However, users currently lack this capability, and must instead manually configure their devices for each appliance they want to use. To address this problem, we created Snap-To-It, a system that allows users to opportunistically interact with any appliance simply by taking a picture of it. Snap-To-It shares the image of the appliance a user wants to interact with over a local area network. Appliances then analyze this image (along with the user's location and device orientation) to see if they are being "selected," and deliver the corresponding control interface to the user's mobile device. Snap-To-It's design was informed by two technology probes that explored how users would like to select and interact with appliances using their mobile phone. These studies highlighted the need to be able to select hardware and software via a camera, and identified several novel use cases not supported by existing systems (e.g., interacting with disconnected objects, transferring settings between appliances). In this paper, we show how Snap-To-It's design is informed by our probes and how developers can utilize our system. We then show that Snap-To-It can identify appliances with over 95.3% accuracy, and demonstrate through a two-month deployment that our approach is robust to gradual changes to the environment. Adrian A. de Freitas, Michael Nebeling, Xiang 'Anthony' Chen, Jackie Yang, Akshaye Shreenithi Kirupa Karthikeyan Ranithangam, Anind K. Dey |
CHI | 1 |
| 2016 | WearWrite: Crowd-Assisted Writing from SmartwatchesabstractThe physical constraints of smartwatches limit the range and complexity of tasks that can be completed. Despite interface improvements on smartwatches, the promise of enabling productive work remains largely unrealized. This paper presents WearWrite, a system that enables users to write documents from their smartwatches by leveraging a crowd to help translate their ideas into text. WearWrite users dictate tasks, respond to questions, and receive notifications of major edits on their watch. Using a dynamic task queue, the crowd receives tasks issued by the watch user and generic tasks from the system. In a week-long study with seven smartwatch users supported by approximately 29 crowd workers each, we validate that it is possible to manage the crowd writing process from a watch. Watch users captured new ideas as they came to mind and managed a crowd during spare moments while going about their daily routine. WearWrite represents a new approach to getting work done from wearables using the crowd. Michael Nebeling, Alexandra To, Anhong Guo, Adrian A. de Freitas, Jaime Teevan, Steven Dow, Jeffrey P. Bigham |
CHI | 4 |
| 2016 | The Use of Ubiquitous Computing for Business Process ImprovementabstractDue to the cut throat competition among organizations, business process improvement is now an everyday activity. A relentless activity that makes business processes more complex than ever. As they get more complex, the improvement rounds become time-consuming, costly and the quality of each outcome is put into jeopardy, which is somehow paradoxical with the concept of improvement. In this paper, we propose a business process improvement technique based on ubiquitous computing. First, we couple business processes with ubiquitous computing and define a ubiquitous business process. Then, we explain how ubiquitous computing positively impacts the performance metrics of business processes. Afterwards, we set a specification for designing ubiquitous business processes by extending BPMN. Finally, we propose a concrete case study about time-banking to corroborate our theory. A comparative study of the same process, in ubiquitous and non-ubiquitous versions, is established. The results clearly illustrate that ubiquitous computing impacts positively the business process performance metrics. Still, the case study corroborates that ubiquitous computing not only improves a business process but also enables it to get improved with the least of human interventions. Alaaeddine Yousfi, Adrian A. de Freitas, Anind K. Dey, Rajaa Saidi |
IEEE Trans. Serv. Comput. | 2 |
| 2015 | The Group Context Framework: An Extensible Toolkit for Opportunistic Grouping and CollaborationabstractIn this paper, we present the Group Context Framework (GCF), a general-purpose toolkit that allows mobile devices to opportunistically share contextual information. GCF provides a standardized way for developers to request contextual data for their applications. The framework then intelligently groups with other devices to satisfy these requirements. Through two prototypes, we demonstrate how GCF can be used to support a broad range of collaborative and cooperative tasks. We then show how our framework's architecture allows devices to opportunistically detect and collaborate with one another, even when running different applications. Finally, we present two real-world domains that show how GCF's ability to form groups increases users' access to relevant and timely information, and discuss possible incentives and safeguards to context sharing from a user standpoint. Adrian A. de Freitas, Anind K. Dey |
CSCW | 1 |
| 2015 | Using Multiple Contexts to Detect and Form Opportunistic GroupsabstractWe present a new technique that allows mobile devices to opportunistically group with one another, thus improving their ability to facilitate one-time or spontaneous exchanges of information. In our approach, devices share context with each other, and form groups when these readings are found to be similar to one another. Through a formative study, we examine the limitations of using a single type of context to form groups, and show how leveraging multiple contexts improves our ability to detect and form relevant groupings. We then present DIDJA, a robust software toolkit that automatically collects and analyzes contextual information in order to find and form groups. Through two prototypes, we demonstrate how DIDJA enhances existing user experiences, and show how developers can use our toolkit to easily facilitate frictionless collaborations between users and their environment. We then perform an extended experiment and show how DIDJA is able to accurately form groups under realistic conditions. Adrian A. de Freitas, Anind K. Dey |
CSCW | 1 |
| 2007 | The effectiveness of dynamic ant colony tuningabstractWe examine the Genetically Modified Ant Colony System (GMACS) algorithm [3], which claims to dynamically tune an Ant Colony Optimization (ACO) algorithm to its near-optimal parameters. While our research indicates that the use of GMACS does result in higher quality solutions over a hand-tuned ACO algorithm, we found that the algorithm is ultimately hindered by its emphasis on randomized ant breeding. Specifically, our investigation shows that tuning ACO parameters on a single colony using a genetic algorithm, as done by GMACS, is not as effective as it may first appear and has several drawbacks. Adrian A. de Freitas, Christopher B. Mayer |
GECCO | 1 |