gradekit 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ .rvmrc
data/.travis.yml ADDED
@@ -0,0 +1 @@
1
+ rvm: 1.9.2
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in gradekit.gemspec
4
+ gemspec
data/HISTORY.md ADDED
@@ -0,0 +1,3 @@
1
+ ## 0.1.0 (TBD)
2
+
3
+ * TBD
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) Yong Joseph Bakos. All rights reserved.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,64 @@
1
+ ## Note: This gem doesn't work yet.
2
+
3
+ # Gradekit [![Build Status](https://secure.travis-ci.org/ybakos/gradekit.png)](http://travis-ci.org/ybakos/gradekit)
4
+
5
+ A toolkit for accelerating the process of grading student programming assignments for [CSCI261 Programming Concepts](http://mines.humanoriented.com/261) at the [Colorado School of Mines](http://mines.edu).
6
+
7
+ ## Setup & Dependencies
8
+
9
+ Gradekit is written in Ruby 1.9.2 and relies on <tt>make</tt>, some Ruby gems and a working installation of [Sublime Text 2](http://www.sublimetext.com/2) with the <tt>sublime_text</tt> executable in your <tt>PATH</tt>. I recommend using [rvm](http://beginrescueend.com/) to establish your ruby environment and creating a gemset specifically for the gradekit.
10
+
11
+ * Ensure you have the <tt>gcc</tt> suite of tools (<tt>make</tt>, etc) installed on your system and in your <tt>PATH</tt>.
12
+ * Install [rvm](http://beginrescueend.com/), add the <tt>rvm</tt> executable to your path, install ruby 1.9.2 with rvm, and create a gemset called <tt>gradekit</tt>.
13
+ * Install [Sublime Text 2](http://www.sublimetext.com/2) and add the <tt>sublime_text</tt> executable to your <tt>PATH</tt>.
14
+ * Create a directory, say, <tt>grading</tt>, within which you intend to conduct your grading work.
15
+ * Create the file <tt>grading/.rvmrc</tt> that contains the line `rvm use 1.9.2@gradekit`.
16
+ * From within your <tt>grading</tt> directory, install the bundler gem and the gradekit gem.
17
+
18
+ To verify that your environment is ready to conduct grading, execute the <tt>check</tt> workflow:
19
+
20
+ gradekit check
21
+
22
+ Executing that workflow should tell you that everything is ok, or tell you what dependencies are missing from your environment. This gradekit is only for OSX and Linux operating systems; it will not run out of the box on Windows. Fuck Windows!
23
+
24
+ ## Quick Start
25
+
26
+ Download an assignment "amalgamation" .zip file from [blackboard](http://blackboard.mines.edu) to your working directory. Next, start the grading workflow:
27
+
28
+ gradekit grade ##_assignmentName
29
+
30
+ When complete, you should see a new Sublime Text window whose sidebar contains a directory called <tt>students</tt> and a file called <tt>##_assignmentName.gradesheet.txt</tt>.
31
+
32
+ ## How to Grade
33
+
34
+ The goal of Gradekit is to accelerate, not automate, the entire grading process. This grading process is as follows.
35
+
36
+ * Crack open a beer.
37
+ * Execute the gradekit <tt>grade</tt> workflow.
38
+ * Pay attention to the output generated on the console
39
+ * Make a note of things like "Bad Submission," "Could not compile," or "Execute Manually." In each case, you will need to manually inspect the student's submission.
40
+ * Review the gradesheet displayed in the Sublime Text 2 window.
41
+ * Perfect score? Review the student's code and provide feedback regarding style.
42
+ * Bad submission? Inspect the student's submission. If there is a relevant <tt>cpp</tt> file containing code for the assignment, then manually review, compile, execute, and grade manually.
43
+ * <tt>make students/username/filename_base</tt> to compile
44
+ * <tt>students/username/filename_base</tt> to execute
45
+ * <tt>sublime_text students/username/filename_base.cpp</tt> to view the code
46
+ * Couldn't compile? Try compiling manually, then execute, review the code, and grade manually.
47
+ * <tt>make students/username/filename_base</tt>
48
+ * <tt>students/username/filename_base</tt> to execute
49
+ * <tt>sublime_text students/username/filename_base.cpp</tt> to view the code
50
+ * Need to execute manually? This is often due to the student's program not terminating after being executed with input provided by the gradekit. You must manually execute and grade the assignment.
51
+ * <tt>students/username/filename_base</tt> to execute
52
+ * <tt>sublime_text students/username/filename_base.cpp</tt> to view the code
53
+ * Were any items marked 0 or ? on the student's score card? Inspect the code and attempt to award back partial credit, where applicable.
54
+ * Update the total points as necessary, keeping in mind lateness deductions where relevant.
55
+ * Once all student scores are updated, methodically enter the grades in Blackboard's "Grade Center." After entering a student's score, paste the contents of the students scorecard as a "Quick comment."
56
+ * Crack open another beer.
57
+
58
+ ## Support
59
+
60
+ No support is provided for this toolkit outside of the scope of the CSCI261 class for which it is designed.
61
+
62
+
63
+
64
+ Copyright &copy; 2011 Yong Joseph Bakos. All rights reserved.
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ task :default => :test
4
+
5
+ desc "Run test suite"
6
+ task :test do
7
+ Dir['test/**/*_test.rb'].each { |file| require_relative file }
8
+ end
data/bin/gradekit ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../lib/gradekit'
3
+
4
+ puts "TODO"
data/gradekit.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "gradekit/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "gradekit"
7
+ s.version = Gradekit::VERSION
8
+ s.authors = ["Yong Joseph Bakos"]
9
+ s.email = ["ybakos@humanoriented.com"]
10
+ s.homepage = "http://humanoriented.com"
11
+ s.summary = "CSCI261 grading toolkit"
12
+ s.description = "Grading automation toolkit for CSCI261 Programming Concepts at the Colorado School of Mines."
13
+
14
+ s.rubyforge_project = "gradekit"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_development_dependency "ruby-debug19"
22
+ s.add_development_dependency "rake"
23
+ s.add_development_dependency "turn"
24
+ s.add_runtime_dependency "rubyzip"
25
+ end
data/lib/gradekit.rb ADDED
@@ -0,0 +1,5 @@
1
+ require "gradekit/version"
2
+
3
+ module Gradekit
4
+ # TODO
5
+ end
@@ -0,0 +1,3 @@
1
+ module Gradekit
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,11 @@
1
+ Assignment: <%= 'TODO' %>
2
+ Due Date: <%= 'TODO' %>
3
+ Student: <%= 'TODO' %>
4
+ Submission Date: <%= 'TODO' %>
5
+
6
+ Results:
7
+ <%= 'TODO' %>
8
+
9
+ Comments:
10
+ <%= 'TODO' %>
11
+ ---
data/test/cli_test.rb ADDED
@@ -0,0 +1,9 @@
1
+ require_relative 'test_helper'
2
+
3
+ class CliTest < Test::Unit::TestCase
4
+
5
+ def test_truth
6
+ assert true
7
+ end
8
+
9
+ end
@@ -0,0 +1,3 @@
1
+ require 'test/unit'
2
+ require 'gradekit'
3
+ require 'turn'
metadata ADDED
@@ -0,0 +1,114 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gradekit
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - Yong Joseph Bakos
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-10-04 00:00:00 -06:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: ruby-debug19
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: "0"
25
+ type: :development
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ prerelease: false
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: "0"
36
+ type: :development
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: turn
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
47
+ type: :development
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: rubyzip
51
+ prerelease: false
52
+ requirement: &id004 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: "0"
58
+ type: :runtime
59
+ version_requirements: *id004
60
+ description: Grading automation toolkit for CSCI261 Programming Concepts at the Colorado School of Mines.
61
+ email:
62
+ - ybakos@humanoriented.com
63
+ executables:
64
+ - gradekit
65
+ extensions: []
66
+
67
+ extra_rdoc_files: []
68
+
69
+ files:
70
+ - .gitignore
71
+ - .travis.yml
72
+ - Gemfile
73
+ - HISTORY.md
74
+ - LICENSE
75
+ - README.md
76
+ - Rakefile
77
+ - bin/gradekit
78
+ - gradekit.gemspec
79
+ - lib/gradekit.rb
80
+ - lib/gradekit/version.rb
81
+ - templates/gradesheet.txt.erb
82
+ - test/cli_test.rb
83
+ - test/test_helper.rb
84
+ has_rdoc: true
85
+ homepage: http://humanoriented.com
86
+ licenses: []
87
+
88
+ post_install_message:
89
+ rdoc_options: []
90
+
91
+ require_paths:
92
+ - lib
93
+ required_ruby_version: !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: "0"
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: "0"
105
+ requirements: []
106
+
107
+ rubyforge_project: gradekit
108
+ rubygems_version: 1.5.2
109
+ signing_key:
110
+ specification_version: 3
111
+ summary: CSCI261 grading toolkit
112
+ test_files:
113
+ - test/cli_test.rb
114
+ - test/test_helper.rb