Kasra Ferdowsi

ORCID: 0000-0003-3924-8137
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Software Engineering Research
  • Software Testing and Debugging Techniques
  • Teaching and Learning Programming
  • Parallel Computing and Optimization Techniques
  • Online Learning and Analytics
  • Explainable Artificial Intelligence (XAI)
  • Software System Performance and Reliability
  • Software Engineering Techniques and Practices
  • Educational Games and Gamification
  • Reinforcement Learning in Robotics
  • Artificial Intelligence in Healthcare and Education
  • Scientific Computing and Data Management
  • Spreadsheets and End-User Computing

University of California, San Diego
2020-2024

AI-powered programming assistants are increasingly gaining popularity, with GitHub Copilot alone used by over a million developers worldwide. These tools far from perfect, however, producing code suggestions that may be incorrect in subtle ways. As result, face new challenge: validating AI's suggestions. This paper explores whether Live Programming (LP), continuous display of program's runtime values, can help address this challenge. To answer question, we built Python editor combines an...

10.1145/3613904.3642495 article EN cc-by 2024-05-11

Live programming is a paradigm in which the environment continually displays runtime values. Program synthesis technique that can generate programs or program snippets from examples. \deltextThis paper presents new called Synthesis-Aided Programming combines these two prior ideas synergistic way. When using Programming, programmers change values displayed by live \addtextPrevious works combine have taken holistic approach to way examples describe behavior of functions and programs. This...

10.1145/3379337.3415869 article EN 2020-10-16

Code-generating large language models (LLMs) are transforming programming. Their capability to generate multi-step solutions provides even non-programmers a mechanism harness the power of coding. Non-programmers often use spreadsheets manage tabular data, as they offer an intuitive understanding data manipulation and formula out-comes. Considering that LLMs can complex, potentially incorrect code, our focus is on enabling user trust in accuracy LLM-generated code. We present ColDeco, first...

10.1109/vl-hcc57772.2023.00017 article EN 2023-10-03

One vision for program synthesis, and specifically programming by example (PBE), is an interactive programmer's assistant, integrated into the development environment. To make synthesis practical use, prior work on Small-Step Live PBE has proposed to limit scope of small code snippets, enable users provide local specifications those snippets. This paradigm, however, does not well in presence loops. We present LooPy, a synthesizer live environment, which extends inside loops scales it up...

10.1145/3485530 article EN Proceedings of the ACM on Programming Languages 2021-10-15

Advanced type systems that enforce various correctness and safety guarantees--such as linear ownership types--have a long history in the Programming Languages research community. Despite this history, human-centered evaluation of these their usability was all but absent, with empirical evaluations limited to testing expressiveness programs written by experts, i.e. creators system. In past few years, has begun change adoption version affine types popular Rust programming language. With...

10.48550/arxiv.2301.02308 preprint EN cc-by arXiv (Cornell University) 2023-01-01

Novice programmers often struggle with code understanding and debugging. Live Programming environments visualize the runtime values of a program each time it is modified to provide immediate feedback, which help tracing execution. This paper presents use tool in CS1 course better understand impact on novices' learning metrics their perceptions tool. We conducted within-subjects study at large public university Python (N=237) where students completed tasks lab setting, some cases environment,...

10.1145/3478431.3499305 article EN Proceedings of the 53rd ACM Technical Symposium on Computer Science Education 2022-02-22

AI-powered programming assistants are increasingly gaining popularity, with GitHub Copilot alone used by over a million developers worldwide. These tools far from perfect, however, producing code suggestions that may be incorrect in subtle ways. As result, face new challenge: validating AI's suggestions. This paper explores whether Live Programming (LP), continuous display of program's runtime values, can help address this challenge. To answer question, we built Python editor combines an...

10.48550/arxiv.2306.09541 preprint EN cc-by arXiv (Cornell University) 2023-01-01
Coming Soon ...