@@ -47,127 +47,260 @@ developers.
47
47
new graders and some of our TA grading features are not adequately
48
48
tested by automated unit and end-to-end (Cypress) regression testing.
49
49
50
- [ Open Issues related to TA Grading] ( https://github.com/Submitty/Submitty/issues?q=is%3Aopen+is%3Aissue+label%3A%22TA+Grading+%2F+TA+UI%22 )
51
-
52
- _ Expected Outcomes_ : The goals of a project on TA grading would
53
- include expantion of our automated testing of the TA Grading pages,
54
- and to patch bugs uncovered by this improved testing. The project may be
55
- expanded in scope to additionally propose and execute small or modest user
56
- interface revisions that enhance the TA experience.
50
+ [ Open Issues related to TA Grading] ( https://github.com/Submitty/Submitty/issues?q=is%3Aopen+is%3Aissue+label%3A%22TA+Grading+%2F+TA+UI%22 )
51
+ [ Open Issues related to Sample Data] ( https://github.com/Submitty/Submitty/issues?q=is%3Aopen+is%3Aissue+label%3A%22Sample+Data%22 )
52
+
53
+ _ Expected Outcomes_ : The primary goals for this project include the
54
+ expansion of our automated testing of the TA Grading pages and to
55
+ patch bugs uncovered by this improved testing. The project may be
56
+ expanded in scope to additionally propose and execute small or
57
+ modest user interface revisions that enhance the TA experience,
58
+ especially for graders who are new to the interface and grading
59
+ process.
57
60
58
61
_ Skills & Experience Required_ : Some programming experience,
59
- willingness to learn web and database development and
60
- the Cypress end-to-end automated testing framework. Having served
61
- as a teaching assistant or instructor with grading experience
62
- design will be beneficial.
62
+ willingness to learn web and database development and the Cypress
63
+ end-to-end automated testing framework. Having served as a
64
+ teaching assistant with grading experience design will be
65
+ beneficial.
63
66
64
- _ Possible Mentors_ : Barb Cutler , Nia Heermance
67
+ _ Possible Mentors_ : William Allen , Nia Heermance, Barb Cutler
65
68
66
69
_ GSoC Project Size_ : 90 or 175 hours
67
70
68
- _ Difficulty Level_ : medium
71
+ _ Difficulty Level_ : introductory to medium
69
72
70
73
71
74
2 . ** Refactor and Performance Improvements for the Manual/TA Rubric Grading Interface**
72
75
73
76
[ Overview of Rubric Grading Interface] ( /grader/rubric_grading/index )
74
77
75
- Note: This project may be combined with the previous project idea.
76
- The Manual/TA rubric grading interface is elaborate, highly-featured, and
77
- customizable; however, the performance of these webpages is
78
- problematic for large courses due to inefficient database queries and
79
- delays to load data from the server that could/should be asynchronous.
80
- The manual/TA rubric pages could benefit from a significant
81
- technology refactor to use Vue/Vite, for example.
82
-
83
- [ Open Issues related to TA Grading] ( https://github.com/Submitty/Submitty/issues?q=is%3Aopen+is%3Aissue+label%3A%22TA+Grading+%2F+TA+UI%22 )
78
+ _ Note: This project may be combined with the previous project idea._
84
79
85
- _ Expected Outcomes _ : A detailed software design for an organized, multi-stage
86
- refactor of the manual/TA rubric pages and the execution/implementation of
87
- a significant portion of the new design. The project will likely require the
88
- extension and/or updating of our automated end-to-end (Cypress) testing and patching
89
- bugs uncovered by this testing . The general interface for TA/Manual grading
90
- should remain similar, but the project may include small user
91
- interface revisions .
80
+ The Manual/TA rubric grading interface is elaborate,
81
+ highly-featured, and customizable; however, the performance of
82
+ these webpages is problematic for large courses due to inefficient
83
+ database queries and server communication delays to load data that
84
+ could/should be asynchronous . The manual/TA rubric pages could
85
+ benefit from a significant technology refactor to use Vue/Vite, for
86
+ example .
92
87
93
- _ Skills & Experience Required_ : Web and database development experience.
94
- Experience with end-to-end automated testing (Cypress) and and having served
95
- as a teaching assistant or instructor with grading experience
96
- design is beneficial but not required.
88
+ [ Open Issues related to TA Grading] ( https://github.com/Submitty/Submitty/issues?q=is%3Aopen+is%3Aissue+label%3A%22TA+Grading+%2F+TA+UI%22 )
97
89
98
- _ Possible Mentors_ : Barb Cutler, Nia Heermance
90
+ _ Expected Outcomes_ : This project would first prepare a detailed
91
+ software design plan for an organized, multi-stage incremental
92
+ refactor of the manual/TA rubric pages and follow with the
93
+ execution/implementation of a significant portion of the new
94
+ design. The project could include the extension and/or updating of
95
+ our automated end-to-end (Cypress) testing and patching bugs
96
+ uncovered by this testing (as described in the previous project
97
+ idea). The project should include benchmarking along the way to
98
+ ensure that the refactor is improving the performance of the
99
+ Manual/TA Rubric Grading interface. The general interface for
100
+ TA/Manual grading should remain similar, but the project may
101
+ include small user interface revisions.
102
+
103
+ _ Skills & Experience Required_ : Web and database development
104
+ experience and general software design and implementation
105
+ experience. Experience with end-to-end automated testing (Cypress)
106
+ and and having served as a teaching assistant with grading
107
+ experience design is beneficial but not required.
108
+
109
+ _ Possible Mentors_ : Nia Heermance, William Allen, Barb Cutler
99
110
100
111
_ GSoC Project Size_ : 175 or 350 hours
101
112
102
- _ Difficulty Level_ : medium or hard
103
-
113
+ _ Difficulty Level_ : medium to challenging
114
+
115
+
116
+
117
+ 3 . ** Notebook Builder: UI To Streamline Instructor Configuration of Automated Grading**
118
+
119
+ Our system for automated testing and grading of student work is
120
+ very powerful, but the configuration process that instructors must
121
+ navigate is complex and time-consuming. While we provide a number
122
+ of examples, the number of choices for development of an
123
+ autograding configuration is overwhelming. The primary method for
124
+ creating an autograding configuration is to prepare a ` config.json `
125
+ file (and any necessary additional files) and upload or store these
126
+ files on the server file system. We have a prototype Web GUI
127
+ interface we call the "Notebook Builder" but the current state of
128
+ the feature is undocumented and functionality is limited. We
129
+ would like to improve and expand this feature to facilitate
130
+ instructor creation of basic and moderate complexity autograding
131
+ configurations.
132
+
133
+ [ Assignment Autograding Configuration Instructions] ( /instructor/autograding/specification )
134
+ [ Notebook Assignment Configuration] ( /instructor/assignment_configuration/notebook )
135
+ [ Tutorial Autograding Configuration Examples] ( https://github.com/Submitty/Tutorial/tree/main/examples )
136
+
137
+ This project will involve multiple modules of Submitty including
138
+ web UI development, integration, documentation, additional tutorial
139
+ examples, and extending output generation to instructor solutions
140
+ in compiled languages.
141
+
142
+ [ Open Issues related to Autograding] ( https://github.com/Submitty/Submitty/labels/Autograding )
143
+ [ Open Issues related to Notebook / Notebook Builder] ( https://github.com/Submitty/Submitty/issues?q=is%3Aopen+is%3Aissue+label%3A%22Notebook+%2F+Notebook+Builder%22 )
144
+
145
+ _ Expected Outcomes_ : The primary focus of the project is the
146
+ revision and expansion of the Notebook Builder UI to increase the
147
+ number of autograding features that are supported. The UI should
148
+ be easy-to-use for instructors of
149
+ non-computer-science/non-programming courses and also instructors of courses with
150
+ introductory to moderate programming assignments. The size and
151
+ scope for a proposal in this area is flexible, depending on the
152
+ time commitment and prior skills of the applicant.
153
+
154
+ _ Skills & Experience Required_ : Some programming experience,
155
+ willingness to learn web and database development. Prior
156
+ experience with user interface design and an eye for quality user
157
+ design are beneficial. Having served as a teaching assistant or
158
+ instructor with experience in programming assignment design will be
159
+ beneficial but not required.
104
160
161
+ _ Possible Mentors_ : Barb Cutler, Chris Reed
105
162
106
- 3 . ** Streamline instructor configuration of automated grading **
163
+ _ GSoC Project Size _ : 90 or 175 or 350 hours
107
164
108
- Currently, instructors must write a configuration as a ` config.json `
109
- (and any necessary additional files) and upload or store these
110
- files on the local file system. We would like to provide an
111
- alternate web GUI interface for creating basic or moderately
112
- complex autograding configurations.
165
+ _ Difficulty Level_ : introductory or medium
166
+
113
167
114
- [ Assignment Configuration Instructions ] ( /instructor/autograding/specification )
168
+ 4 . ** Expansion of Examples and Documentation of Intermediate and Advanced Autograding Features **
115
169
116
- We have preliminary support for automated creation of expected
117
- output files (from and instructor solution -- currently limited to
118
- Python) and randomized test case input. This project will involve multiple modules of
119
- Submitty including
120
- web UI development, integration, documentation, additional tutorial examples, and
121
- extending output generation to
122
- instructor solutions in compiled languages.
170
+ _ Note: This project is related to previous project idea but is a distinct project._
123
171
124
- [ Open Issues related to Autograding] ( https://github.com/Submitty/Submitty/labels/Autograding )
172
+ Our system for automated testing and automated grading of student
173
+ work is very powerful and highly-customizable, but the
174
+ documentation for our moderate and advanced autograding features is
175
+ incomplete. While we provide a number of autograding examples,
176
+ some of the examples are out-of-date and do not represent our
177
+ current suggested best practices.
125
178
126
- _ Expected Outcomes _ : The goal would be to
127
- streamline the assignment configuration process for non-technical
128
- instructors, relevant for use in
129
- non-computer-science/non-programming courses.
179
+ [ Assignment Autograding Configuration Instructions ] ( /instructor/autograding/specification )
180
+ [ Submitty Autograding Tutorial Examples ] ( https://github.com/Submitty/Tutorial )
181
+ [ Additional Autograding Examples ] ( https://github.com/Submitty/Submitty/tree/master/more_autograding_examples )
182
+ [ Prior GSoC Project: Drumil Patel ] ( /developer/google_summer_of_code/2019_DrumilPatel )
130
183
131
- _ Skills & Experience Required_ : Some programming experience, willingness to
132
- learn web and database development. Having served as a teaching
133
- assistant or instructor with experience in programming assignment
134
- design will be beneficial.
184
+ We would like to reduce the learning curve for new instructors and
185
+ provide more tutorial examples of autograding for instructors
186
+ teaching courses of any level. Automated testing and automated
187
+ grading can be used in introductory programming courses in middle
188
+ and high schools, including AP Computer Science. It can also be
189
+ used by programming-intensive intermediate and upper level / senior
190
+ university-level systems coursework. Assignments that require can
191
+ be configured with custom Docker Images to provide access to
192
+ specific programming languages and libraries.
193
+
194
+ [ Open Issues related to Docker Image Autograding] ( https://github.com/Submitty/Submitty/issues?q=label%3A%22Docker+Container+Autograding%22+ )
195
+ [ Docker Images for Autograding Common Programming Languages] ( https://github.com/Submitty/DockerImages/tree/main )
196
+ [ Example Custom Docker Images University ] ( https://github.com/Submitty/DockerImagesRPI/tree/main/dockerfiles )
197
+ [ Sample Java Assignments] ( /instructor/autograding/sample_assignments )
135
198
136
- _ Possible Mentors_ : Barb Cutler, William Allen
199
+ _ Expected Outcomes_ : The project should begin with a review and
200
+ organization of existing sample and tutorial assignments and
201
+ current autograding functionality documentation. Out-of-date or
202
+ underdeveloped autograding configuration examples should be
203
+ expanded as necessary, and features that are missing documentation
204
+ and examples should be identified (e.g., generated random input and
205
+ output from instructor solution, customized docker containers,
206
+ autograding graphical output, autograding) and resolved by creating
207
+ new examples. Finally, we would like to create and support a
208
+ resource for the community of crowd-sourced complete programming
209
+ assignments/exercises with included autograding configuration.
210
+
211
+ _ Skills & Experience Required_ : Moderate to advanced programming
212
+ experience, willingness to learn web and database development.
213
+ Having served as a teaching assistant or instructor with experience
214
+ in programming assignment design will be beneficial.
215
+
216
+ _ Possible Mentors_ : Chris Reed, Barb Cutler
137
217
138
218
_ GSoC Project Size_ : 175 or 350 hours
139
219
140
- _ Difficulty Level_ : medium or hard
141
-
142
-
143
- 4 . ** Instructional Materials and Documentation**
220
+ _ Difficulty Level_ : medium to challenging
144
221
145
- We would like to reduce the learning curve for new instructors and
146
- provide more starter material for instructors teaching introductory
147
- programming courses in middle and high schools, including AP
148
- Computer Science.
149
222
150
- [ Submitty Autograding Tutorial Examples ] ( https://github.com/Submitty/Tutorial )
223
+ 5 . ** AI/ML to Enhance and Steamline Manual / TA Grading **
151
224
152
- [ Additional Autograding Examples] ( https://github.com/Submitty/Submitty/tree/master/more_autograding_examples )
225
+ The use of a unified and retroactively editable rubric for
226
+ manual/TA grading can ensure consistency when grading large
227
+ courses, especially when more than one grader is working on a
228
+ single problem or assignment. However, it is usually still
229
+ necessary for the graders to inspect the student work one-at-a-time
230
+ and it can be difficult for the grader to remember the details of
231
+ all previously graded assignments and recognize patterns that
232
+ should be graded similarly. Furthermore, the process of manual
233
+ grading is time-consuming and thus detailed and thoughtful
234
+ constructive feedback to each individual is often not possible.
153
235
154
- [ Sample Java Assignments ] ( /instructor/autograding/sample_assignments )
236
+ [ Overview of Rubric Grading Interface ] ( /grader/rubric_grading/index )
155
237
156
- _ Expected Outcomes_ : Organization of existing sample and tutorial assignments and autograding
157
- and current documentation. Review and curation of any publicly-available sample assignments
158
- and creation of new sample assignments and autograding.
238
+ The goal of this project is to explore the potential to leverage
239
+ Artificial Intelligence and Machine Learning (AI/ML) to reduce the burden
240
+ of manual grading in large courses with either programming or
241
+ non-programming assignments. Automatically organizing student
242
+ submissions into groups that contain similar patterns and have
243
+ common strengths or flaws can ensure that student work is assessed
244
+ consistently and students receive appropriate and in-depth
245
+ feedback to aid their learning.
246
+
247
+ The Submitty project includes related technology for the static
248
+ analysis of student's code and tools to screen for plagiarism in
249
+ both student-submitted plain text assignments and software. Note
250
+ that the Submitty static analysis and plagiarism tools have been
251
+ tested and validated with datasets of sample student submissions;
252
+ however, for privacy and confidentiality reasons, these datasets are
253
+ not and cannot be part of the Submitty open-source materials.
254
+
255
+ [ Autograding using Static Analysis] ( /instructor/autograding/static_analysis/index )
256
+ [ Plagiarism Detection] ( /instructor/course_management/plagiarism )
257
+
258
+ _ Expected Outcomes_ : Detailed design plan for the integration of an
259
+ AI/ML framework into Submitty for the analysis and clustering the
260
+ assignment submissions by students based on common patterns in the
261
+ text and/or code. Implementation of a prototype AI/ML tool to
262
+ detect common patterns in student submissions and present this
263
+ information to the grader in an organized way to allow streamlined
264
+ bulk grading and feedback within the manual/TA grading interface.
265
+ As time permits (and based on the scope and time commitment)
266
+ evaluation of the effectiveness of this technique on real world
267
+ data and the potential for improving the efficiency of the
268
+ manual/TA grading process and the quality/accuracy and quantity of
269
+ useful constructive feedback to students.
159
270
160
- _ Skills & Experience Required_ : Some programming experience, willingness to
161
- learn web and database development. Having served as a teaching
162
- assistant or instructor with experience in programming assignment
163
- design will be beneficial.
271
+ _ Skills & Experience Required_ : Coursework and/or professional
272
+ experience in AI/ML and modern AI/ML technology. Moderate to
273
+ advanced programming experience, and willingness to learn web and
274
+ database development. Having served as a teaching assistant for a
275
+ large course with manual grading experience design will be
276
+ beneficial.
277
+
278
+ _ Possible Mentors_ : Barb Cutler, William Allen, Nia Heermance
164
279
165
- _ Possible Mentors _ : Barb Cutler, William Allen
280
+ _ GSoC Project Size _ : 175 or 350 hours
166
281
167
- _ GSoC Project Size _ : 175 hours
282
+ _ Difficulty Level _ : medium to challenging
168
283
169
- _ Difficulty Level _ : easy or medium
284
+ 6 . ** Other Topics **
170
285
286
+ The Submitty team welcomes GSoC project proposals on other topics
287
+ related to items in our GitHub issue tracker. A successful
288
+ application would select one or more issues of moderate scope
289
+ proportional to the applicant's time commitment and prior
290
+ experience. Be sure to join our [ Zulip server] ( /contact ) to meet
291
+ the Submitty mentors and other new developers and discuss your
292
+ interests and project plans.
293
+
294
+ _ Skills & Experience Required_ : Some prior programming experience,
295
+ willingness to learn web and database development, and additional
296
+ specific skills as appropriate.
297
+
298
+ _ Possible Mentors_ : Barb Cutler, Matthew Peveler, Shail Patel, William Allen, Chris Reed, Nia Heermance, Preston Carman
299
+
300
+ _ GSoC Project Size_ : 90 or 175 or 350 hours
301
+
302
+ _ Difficulty Level_ : introductory to medium to challenging
303
+
171
304
172
305
See also:
173
306
0 commit comments