A software infrastructure to support introductory computer science courses
SIGCSE '96 Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education
Grading student programs using ASSYST
SIGCSE '97 Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education
Grading student programs - a software testing approach
CCSC '00 Proceedings of the fourteenth annual consortium on Small Colleges Southeastern conference
Rethinking computer science education from a test-first perspective
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
An Eclipse-based course project snapshot and submission system
eclipse '04 Proceedings of the 2004 OOPSLA workshop on eclipse technology eXchange
Evaluating and tuning a static analysis to find null pointer bugs
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Identifying domain-specific defect classes using inspections and change history
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
Extraction of bug localization benchmarks from history
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
ClockIt: collecting quantitative data on how beginning software developers really work
Proceedings of the 13th annual conference on Innovation and technology in computer science education
AFID: an automated fault identification tool
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
AFID: an automated approach to collecting software faults
Automated Software Engineering
Using the SCORE software package to analyse novice computer graphics programming
Proceedings of the 16th annual joint conference on Innovation and technology in computer science education
How do students solve parsons programming problems?: an analysis of interaction traces
Proceedings of the ninth annual international conference on International computing education research
Towards improving programming habits to create better computer science course outcomes
Proceedings of the 18th ACM conference on Innovation and technology in computer science education
Recording and analyzing in-browser programming sessions
Proceedings of the 13th Koli Calling International Conference on Computing Education Research
Adaptively identifying non-terminating code when testing student programs
Proceedings of the 45th ACM technical symposium on Computer science education
Using CodeBrowser to seek differences between novice programmers
Proceedings of the 45th ACM technical symposium on Computer science education
Hi-index | 0.00 |
Most computer science educators hold strong opinions about the "right" approach to teaching introductory level programming. Unfortunately, we have comparatively little hard evidence about the effectiveness of these various approaches because we generally lack the infrastructure to obtain sufficiently detailed data about novices' programming habits.To gain insight into students' programming habits, we developed Marmoset, a project snapshot and submission system. Like existing project submission systems, Marmoset allows students to submit versions of their projects to a central server, which automatically tests them and records the results. Unlike existing systems, Marmoset also collects finegrained code snapshots as students work on projects: each time a student saves her work, it is automatically committed to a CVS repository.We believe the data collected by Marmoset will be a rich source of insight about learning to program and software evolution in general. To validate the effectiveness of our tool, we performed an experiment which found a statistically significant correlation between warnings reported by a static analysis tool and failed unit tests.To make fine-grained code evolution data more useful, we present a data schema which allows a variety of useful queries to be more easily formulated and answered.