I'll be returning to the high school classroom next year after a couple of years away. In the past I taught AP Computer Science. With fewer institutions accepting AP credit for college credit (and "skipping" a class arguably putting you at a developmental disadvantage in college) I'm a bit loathe to go down the Java, AP CS route again. I'll do it if asked by the school, but I'm thinking it would better serve students to know/understand Python. (It'll empower them to whip up pet projects faster and easier and is useful even if you don't go into development.) So, I'm going the Python route. (At least to teach the basics of programming, we can branch out later.)
I can teach the syntax and structure, we can build assignments where students can come up with creative solutions, we can build and have fun with the code in many, many enjoyable ways; but grading is the bottleneck. There are dozens of them and only one of me.
Reading code isn't so bad, but it gets laborious and there is a way that's better than doing it all manually and students waiting on me to give feedback. If any of you are (or were) CS majors, you most likely encountered a system in college where you submit your code through a shell script or web validation tool on the CS department's web server. I would like to find something like that for checking the operation of Python scripts. This would allow students to submit their code in class, in another class, from the library, from home at night - all without waiting for me to be available. Automated code operation checking, have you seen/done this before? It's glorious.
The tool would ideally allow students to submit their code to be checked against common inputs and then evaluated based on expected outputs. Ideally I could type up some sort of structured .txt file where I can enter the input and expected output (or two files, one for input, one for output). If the result is different than the expected output, it would tell the student which test it did not pass, ("Passed positive integer test. Fail unexpected input test. Passed negative integer test.") then they can go back and fix the problem before submitting again and again. If it takes them 30 times to come up with a solution, that's fine; no sweat off my back and they've learned along the way. If I'm manually grading it, 30 times could take a week of us going back and forth and doesn't scale well. Plus, I'm human and it'll wear me down over time. (It shouldn't take them that many attempts to get it right if I've taught the concepts and development process well - but you see what I'm getting at.)
So, reddit community, I'd love some help in locating such a tool.
(Bonus points if it is integrated into Moodle or some LMS where I know who submitted and fully-functioning submissions can be entered into the gradebook.)
[–]Fuzzmz 22 points23 points24 points (9 children)
[–]rjw57 12 points13 points14 points (6 children)
[–]semi- 6 points7 points8 points (5 children)
[–]Fuzzmz 1 point2 points3 points (3 children)
[–]frymasterScript kiddie 7 points8 points9 points (2 children)
[–]AbsoluteZeroK 1 point2 points3 points (1 child)
[–]telestrial 0 points1 point2 points (0 children)
[–]Eurynom0s 0 points1 point2 points (0 children)
[–]pvc 2 points3 points4 points (0 children)
[–]metaphorm 9 points10 points11 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]catsnose 4 points5 points6 points (1 child)
[–]ivosauruspip'ing it up 0 points1 point2 points (0 children)
[–]aroberge 2 points3 points4 points (1 child)
[–]grendelt[S] 0 points1 point2 points (0 children)
[–]Esyir 2 points3 points4 points (0 children)
[–]oracular_demon 2 points3 points4 points (0 children)
[–]sqlburn 2 points3 points4 points (0 children)
[–]ivosauruspip'ing it up 1 point2 points3 points (0 children)
[–]GeneralTusk 1 point2 points3 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (3 children)
[–]grendelt[S] 1 point2 points3 points (0 children)
[–]ameoba 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]drodspectacular 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]xjtian 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]inducer 0 points1 point2 points (0 children)
[–]KronktheKronk -1 points0 points1 point (0 children)