Email: marvelez [AT] ucdavis.edu
Hello, World! I am conducting research in Computer Science Education, Programming Languages, and Software Engineering. My vision is a world where everyone has useful computer science knowledge and skills. I hope my research helps make that vision a reality.
|Kodethon||Kodethon is a web-based integrated development environment (IDE) where students can program in all of the programming languages used at UC Davis, including Python, C, C++, Java, Lisp, and Prolog. Students can create multi-file projects and organize their files using a traditional Unix directory structure. Their files are stored in the cloud and can be accessed from a variety of devices including smart phones and tablets. The built-in editor provides convenient features like syntax-highlighting and basic auto-completion. Students can use an easy-to-use shell or a full Unix terminal -- within the browser -- to execute Unix commands. Kodethon also supports real-time collaboration which facilitates pair programming and live teaching assistance. To date, Kodethon has been used by over 3,000 students in at least 15 different courses.|
|CompAssist||Every programmer, from novices to professionals, makes compilation errors. Resolving them can be time-consuming, difficult, and frustrating, especially for novices. CompAssist is a web application prototype that generates and refines compilation repair examples. Based on these examples, it suggests possible patches to users when their program fails to compile. The repair examples are synthesized and reduced using a novel Fuzz-and-Reduce technique.|
|Code Search||A common task for developers is to search for code examples. For example, a developer may want to see example snippets illustrating how to “declare an array in C” or “open a file in Python”. Code Search is a web application that allows a user to enter a natural language query to search for code snippets. We learn the mapping of natural language terms to code snippets by analyzing over 4 million snippets from a public Stack Overflow data dump.|
|Cow Grooming Tracker||Healthy cattle readily use grooming brushes but this behavior subsides when animals become ill. Tracking use of a brush may provide an opportunity for health monitoring, especially if the process could be automated. We assessed how healthy heifers groom themselves on a brush and hypothesized that radio-frequency identification (RFID) could be used to accurately and automatically record this behavior. Angus and Hereford heifers were fitted with 2 ultra-high-frequency RFID ear tags and monitored in groups of 8 while housed in a pen with an electronic brush, video cameras, and 4 RFID antennas.|
|Wheat and Chaff in Source Code||Source code can be separated into wheat and chaff.|