My Projects
submit
submit is a web service that is intented to be used for online submission of programming assignments. When configured, submitted projects can be automatically assessed. submit is a significantly more sophisticated version of auto_grade making it drastically simpler for students to see their feedback and for instructors to configure their projects. (Source, Web service)
taevals
taevals is a Google AppEngine application I wrote when I was the Lead TA to lessen the burden of completing the midterm TA evaluations. An important factor of TA evaluations is anonymity and thus taevals was designed with anonymity in mind. While it is easy to say an application should be trusted, I took this one step further and made the code available on Github under the New BSD License. More information about taevals can be found on its GitHub page.
turnin_helper
turnin_helper is an incredibly useful tool I wrote to assist in grading course projects. It is intended to work in tandem with UCSB CS's turnin program. See the project's README for everything you'll need to know. (Source)
Features
- Automatic extraction of students' latest submission
- Execute make (of any target) on extracted submissions
- Email all students a private message about their project appended with a generic message about the project
auto_grade
I wrote auto_grade in Winter 2009 following writing turnin_helper to minimize my effort in grading student's projects for CS160, Compilers. Though auto_grade reduces grading time a great deal of effort is needed at the start of a project to define the inputs and outputs. The primary benefit of auto_grade is that it provides immediate feedback to the students in a manor that is completely objective. (Source)
Features
- Immediate extraction, build, and score of student's submission
- Scoring based on diff output and exit status codes
- Immediate feedback to students via email which can contain information such as number of test cases passed as well as a variable amount of diff lines
- Option to set max running time of program
- Ability to assign different point values for different inputs, thus supporting extra credit inputs
CRAWL-E
CRAWL-E is a web crawling framework that seamlessly supports distributed crawling across multiple threads as well as multiple machines. I wrote CRAWL-E in order to collect data from both Overstock.com and Facebook when I was working in Professor Ben Zhao's lab. For a short while after, I continued to improve CRAWL-E as issues appear and features are requested. CRAWL-E is released under the open source New BSD License. More information about CRAWL-E can be found along with its source.