Grading student programs using ASSYST
SIGCSE '97 Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education
Teaching objects-first in introductory computer science
SIGCSE '03 Proceedings of the 34th SIGCSE technical symposium on Computer science education
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
Computers for Communication, Not Calculation: Media as a Motivation and Context for Learning
HICSS '04 Proceedings of the Proceedings of the 37th Annual Hawaii International Conference on System Sciences (HICSS'04) - Track 4 - Volume 4
Proceedings of the 11th annual SIGCSE conference on Innovation and technology in computer science education
Automatic test-based assessment of programming: A review
Journal on Educational Resources in Computing (JERIC)
Improving your software using static analysis to find bugs
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Experience report: CS1 for majors with media computation
Proceedings of the fifteenth annual conference on Innovation and technology in computer science education
The Scratch Programming Language and Environment
ACM Transactions on Computing Education (TOCE)
Proceedings of the 43rd ACM technical symposium on Computer Science Education
What do students learn about programming from game, music video, and storytelling projects?
Proceedings of the 43rd ACM technical symposium on Computer Science Education
Assessment of computer science learning in a scratch-based outreach program
Proceeding of the 44th ACM technical symposium on Computer science education
Assessment of computer science learning in a scratch-based outreach program
Proceeding of the 44th ACM technical symposium on Computer science education
Proceedings of the 45th ACM technical symposium on Computer science education
Assisting comprehension of animation programs through interactive code visualization
Journal of Visual Languages and Computing
Hi-index | 0.00 |
Scratch programming has risen in prominence, not only as a potential language for K-12 computer science, but also in introductory college courses. Unfortunately, grading Scratch programs is time-consuming, requiring manual execution of each program. Automation of this process is greatly complicated by the very reason Scratch is an attractive introductory language--the projects are multimedia in nature, requiring eyes and ears to fully appreciate. We propose Hairball, an automated system that can be used both by a student to point out potential errors or unsafe practices, and by a grader to assist in inspecting the implementation of Scratch programs. Because automatic analysis will not be able to determine the sensory effect, Hairball focuses instead on the implementation, including safe/robust programming practices, providing a "lint-like" tool for Scratch. In this case study, we have created an initial set of Hairball plugins that detect and label instances of initialization of Scratch state, synchronization between say and sound blocks, synchronization between broadcast and receive blocks, and use of timing and loops for complex animation. Our evaluation shows that Hairball is very useful in conjunction with manual analysis. Overall, Hairball was actually slightly more accurate than manual analysis at labeling these instances. Specifically for broadcast/receive, Hairball's analysis correctly classified 99% of the 432 instances, manual analysis only 81%. Overall, if Hairball was only used to identify correctly implemented instances, with manual analysis for the remainder, it would remove 76% of the instances for the manual analysis and assist in the rest, with a false positive rate of less than 0.5%.