A Framework for Source Code Search Using Program Patterns
IEEE Transactions on Software Engineering
Transformation-Based Diagnosis of Student Programs for Programming Tutoring Systems
IEEE Transactions on Software Engineering
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
Inverted files for text search engines
ACM Computing Surveys (CSUR)
Using an information retrieval system to retrieve source code samples
Proceedings of the 28th international conference on Software engineering
Assieme: finding and leveraging implicit references in a web search interface for programmers
Proceedings of the 20th annual ACM symposium on User interface software and technology
Parseweb: a programmer assistant for reusing open source code on the web
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Code Conjurer: Pulling Reusable Software out of Thin Air
IEEE Software
Applying test-driven code search to the reuse of auxiliary functionality
Proceedings of the 2009 ACM symposium on Applied Computing
What would other programmers do: suggesting solutions to error messages
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Modeling how students learn to program
Proceedings of the 43rd ACM technical symposium on Computer Science Education
A search engine for mathematical formulae
AISC'06 Proceedings of the 8th international conference on Artificial Intelligence and Symbolic Computation
A canonicalizing model for building programming tutors
ITS'12 Proceedings of the 11th international conference on Intelligent Tutoring Systems
Cluster based feedback provision strategies in intelligent tutoring systems
ITS'12 Proceedings of the 11th international conference on Intelligent Tutoring Systems
Toward facilitating assistance to students attempting engineering design problems
Proceedings of the ninth annual international ACM conference on International computing education research
Crowd-scale interactive formal reasoning and analytics
Proceedings of the 26th annual ACM symposium on User interface software and technology
Hi-index | 0.00 |
Massive open online courses (MOOCs), one of the latest internet revolutions have engendered hope that constant iterative improvement and economies of scale may cure the ``cost disease" of higher education. While scalable in many ways, providing feedback for homework submissions (particularly open-ended ones) remains a challenge in the online classroom. In courses where the student-teacher ratio can be ten thousand to one or worse, it is impossible for instructors to personally give feedback to students or to understand the multitude of student approaches and pitfalls. Organizing and making sense of massive collections of homework solutions is thus a critical web problem. Despite the challenges, the dense solution space sampling in highly structured homeworks for some MOOCs suggests an elegant solution to providing quality feedback to students on a massive scale. We outline a method for decomposing online homework submissions into a vocabulary of "code phrases", and based on this vocabulary, we architect a queryable index that allows for fast searches into the massive dataset of student homework submissions. To demonstrate the utility of our homework search engine we index over a million code submissions from users worldwide in Stanford's Machine Learning MOOC and (a) semi-automatically learn shared structure amongst homework submissions and (b) generate specific feedback for student mistakes. Codewebs is a tool that leverages the redundancy of densely sampled, highly structured homeworks in order to force-multiply teacher effort. Giving articulate, instant feedback is a crucial component of the online learning process and thus by building a homework search engine we hope to take a step towards higher quality free education.