<p>I am a TA at a University and yes we do use code snapshot tools but for confidentiality reasons I cannot tell you which one we use. It works extremely well for checking plagiarism, but that's about it. I don't know what other metrics you obtain, but I think it is pretty hard to trust someone's code without reviewing with them. We also automark their code and provide a grade and use this to track progress, but this is only a portion of their overall mark.</p>

<p>From your comments - My big question is that it seems that they are familiar in the Academia, but not so much in the “real world”.</p>

<p>This is a common issue, don't be alarmed. Continuing from my above point, during code reviews, I find that many students are unable to clearly explain what their code is doing. Part of the blame is that students use trial and error approach until they come up with some code that works. Since they are actually unsure what was wrong to begin with, they cannot explain why these "trials" fixed their problems. Hence, we have code reviews to get a more realistic view of the understanding of students as well as reiterate concepts to students.</p>

<p><b>EDIT:</b> Weekly assignments are meant to be 2 hour workload and are purely automarked, while bigger assignments spanning 3-5 weeks are the ones we perform code reviews on.</p>

<p>To address your second question, we have weekly assignments that weigh very little for the sole purpose of "practice" assignments. The student submits their code and it is run against an automarker I write for feedback. We do track improvements on every run of the automarker to see roughly how much a student is able to improve their code in 1 run. We usually run only 2 automarkers and the second run is their final mark.</p>

<p>As a final note, I recommend a Code Reviewer as a teaching assistant tool. Students post a segment of their code into the system and either professors, teaching assistants, or even fellow peers can highlight questionable code and write comments. This allows students to learn the "what", "where" and "why" their code has problems and "how" to fix them. My arguement is that codesnap shots are good for checking against plagurism, but other metrics can't really reflect whether or not the students are learning from their mistakes.</p>

CC BY-SA 3.0
2017-06-21T15:07:01.583Z
Kaneki, do you provide one assignment per week? The thing is that in my country it is very common to have worksheets with 10-30 small assignments for the period of one week. So, the performance is  measured as the number of assignments that they were able to solve corretly.  The "big" assignments are obviously assessed differently.
Nuno Gil Fonseca
CC BY-SA 3.0
2017-06-21T15:17:08.727Z
To clarify, weekly assignments are meant to be completed by first year skills within 2 hours. They are not trivial 1 function assignments, but rather implementing several functions. As stated above, they are purely automarked. We also give bigger assignments spanning 3-5 weeks and these are the ones we sit down with the students and review their code, asking questions.
Kaneki
CC BY-SA 3.0
2017-06-21T14:43:35.810Z
2017-06-21T15:18:17.573Z
2017-06-21T15:18:17.573Z
Kaneki
<p>We don't use code snapshot tools at Mills because our class sizes are small enough (usually &lt;25) that professors and TAs know how individual students are doing. If students are having trouble, they're likely to email me their own snapshot with a request for help. :-)</p>

<p>It sounds like such tools would be useful in larger programs.</p>

CC BY-SA 3.0
2017-06-26T22:22:35.127Z
What students do when they are having trouble completely depends on their personality. I think that the rise of services like Khan Academy have shown us that students like to make mistakes and get explanations without feeling judged (even though they are not).
tusharsoni
CC BY-SA 3.0
2017-06-26T22:31:20.930Z
@tusharsoni Good point. I hadn't thought of ways a computer TA could be perceived as superior to a human TA.
Ellen Spertus
CC BY-SA 3.0
2017-06-26T22:18:52.403Z
2017-06-26T22:18:52.403Z
Ellen Spertus
<p>When I was a TA, we used tools to <strong>automatically</strong>:</p>

<ul>
<li>Collect submissions and run them against set of predefined test cases</li>
<li>Give instant feedback to students on how they did based on the test cases they passed/failed</li>
<li>Give feedback on the quality of their code</li>
<li>Generate plagiarism reports</li>
</ul>

<p>For plagiarism, we used <a href="https://theory.stanford.edu/~aiken/moss/" rel="nofollow noreferrer">MOSS</a>. For everything else, we developed a tool called <a href="http://www.autogradr.com" rel="nofollow noreferrer">AutoGradr</a>.</p>

CC BY-SA 3.0
2017-06-26T22:13:00.370Z
2017-06-26T22:13:00.370Z
tusharsoni
<p>In the scope of my PhD work, I am developing a teaching assistant tool. These tools are used in the context of lab classes to gather "snapshots" from the student's code using one plug-in in the IDE of their choice (in my case, Eclipse and all JetBrains IDEs). The code snapshots are analyzed/processed, and several metrics may be used to determine the performance of the student as well as if s/he is doing plagiarism, and many other things.   </p>

<p>Is anyone using a similar tool (e.g. Retina, TestMyCode, ...)? If the answer is YES, how is it working for you? If the answer is NO, why not?</p>

<p>It seems that they are quite familiar in Academia, but not so much in the “real world”. </p>

CC BY-SA 3.0
2017-06-21T13:47:57.737Z
Welcome to CSE!  For the unfamiliar, could you flesh out a bit of what these are?  I'm unsure about what tools like Retina, TestMyCode, etc are, and I also don't know what "training" worksheets are. They may be known to many, but if I don't know about them, then I'm sure there are also other who are unfamiliar.
Ben I.
CC BY-SA 3.0
2017-06-21T14:04:34.283Z
Thank you! These tools are used in the context of lab classes to gather "snapshots" from the student's code using one plug-in in the IDE of their choice (in my case, Eclipse and all JetBrains IDEs). The code snapshots are analyzed/processed, and several metrics may be used to determine the performance of the student as well as if s/he is doing plagiarism, and many other things. My big question is that it seems that they are familiar in the Academia, but not so much in the “real world”. Maybe the right term is: “practice assignments” and not “training worksheets".
Nuno Gil Fonseca
CC BY-SA 3.0
2017-06-21T14:08:40.497Z
Thanks!  Could you integrate that into the question?  Comments are considered "transient" on SE.
Ben I.
CC BY-SA 3.0
2017-06-21T14:42:36.663Z
Nice fix. One more thing, though! (Don't feel bad - learning how to write SE questions is tricky for everyone) Are your two questions related? The standard is one query per question.  If one question really just clarifies the other, then that is typically given a pass.  If that's not this, you should get rid of question 2 here and open a second question from the main page for it.  (And if these two *are* super-related, then the question probably needs more clarification anyway ;-)
Ben I.
<secondary-education><lecture-tools>
Do you use any teaching assistant tool in your CS1 lab classes?
# Do you use any teaching assistant tool in your CS1 lab classes?

(Asked by: username_0 on 2017-06-21)

In the scope of my PhD work, I am developing a teaching assistant tool. These tools are used in the context of lab classes to gather "snapshots" from the student's code using one plug-in in the IDE of their choice (in my case, Eclipse and all JetBrains IDEs). The code snapshots are analyzed/processed, and several metrics may be used to determine the performance of the student as well as if s/he is doing plagiarism, and many other things.

Is anyone using a similar tool (e.g. Retina, TestMyCode, ...)? If the answer is YES, how is it working for you? If the answer is NO, why not?

It seems that they are quite familiar in Academia, but not so much in the “real world”.

**Tags:** secondary-education, lecture-tools

> **Comments:**
> **username_1**: Welcome to CSE!  For the unfamiliar, could you flesh out a bit of what these are?  I'm unsure about what tools like Retina, TestMyCode, etc are, and I also don't know what "training" worksheets are. They may be known to many, but if I don't know about them, then I'm sure there are also other who are unfamiliar.  
> **username_0**: Thank you! These tools are used in the context of lab classes to gather "snapshots" from the student's code using one plug-in in the IDE of their choice (in my case, Eclipse and all JetBrains IDEs). The code snapshots are analyzed/processed, and several metrics may be used to determine the performance of the student as well as if s/he is doing plagiarism, and many other things. My big question is that it seems that they are familiar in the Academia, but not so much in the “real world”. Maybe the right term is: “practice assignments” and not “training worksheets".  
> **username_1**: Thanks!  Could you integrate that into the question?  Comments are considered "transient" on SE.  
> **username_1**: Nice fix. One more thing, though! (Don't feel bad - learning how to write SE questions is tricky for everyone) Are your two questions related? The standard is one query per question.  If one question really just clarifies the other, then that is typically given a pass.  If that's not this, you should get rid of question 2 here and open a second question from the main page for it.  (And if these two *are* super-related, then the question probably needs more clarification anyway ;-)  

---

## 3 answers

### Answer by username_4 on 2017-06-26. Score: 3

When I was a TA, we used tools to **automatically**:

* Collect submissions and run them against set of predefined test cases
* Give instant feedback to students on how they did based on the test cases they passed/failed
* Give feedback on the quality of their code
* Generate plagiarism reports

For plagiarism, we used [MOSS](https://theory.stanford.edu/~aiken/moss/). For everything else, we developed a tool called [AutoGradr](http://www.autogradr.com).


---

### Answer by username_2 on 2017-06-21. Score: 2

I am a TA at a University and yes we do use code snapshot tools but for confidentiality reasons I cannot tell you which one we use. It works extremely well for checking plagiarism, but that's about it. I don't know what other metrics you obtain, but I think it is pretty hard to trust someone's code without reviewing with them. We also automark their code and provide a grade and use this to track progress, but this is only a portion of their overall mark.

From your comments - My big question is that it seems that they are familiar in the Academia, but not so much in the “real world”.

This is a common issue, don't be alarmed. Continuing from my above point, during code reviews, I find that many students are unable to clearly explain what their code is doing. Part of the blame is that students use trial and error approach until they come up with some code that works. Since they are actually unsure what was wrong to begin with, they cannot explain why these "trials" fixed their problems. Hence, we have code reviews to get a more realistic view of the understanding of students as well as reiterate concepts to students.

**EDIT:** Weekly assignments are meant to be 2 hour workload and are purely automarked, while bigger assignments spanning 3-5 weeks are the ones we perform code reviews on.

To address your second question, we have weekly assignments that weigh very little for the sole purpose of "practice" assignments. The student submits their code and it is run against an automarker I write for feedback. We do track improvements on every run of the automarker to see roughly how much a student is able to improve their code in 1 run. We usually run only 2 automarkers and the second run is their final mark.

As a final note, I recommend a Code Reviewer as a teaching assistant tool. Students post a segment of their code into the system and either professors, teaching assistants, or even fellow peers can highlight questionable code and write comments. This allows students to learn the "what", "where" and "why" their code has problems and "how" to fix them. My arguement is that codesnap shots are good for checking against plagurism, but other metrics can't really reflect whether or not the students are learning from their mistakes.

> **Comments:**
> **username_0**: username_2, do you provide one assignment per week? The thing is that in my country it is very common to have worksheets with 10-30 small assignments for the period of one week. So, the performance is  measured as the number of assignments that they were able to solve corretly.  The "big" assignments are obviously assessed differently.  
> **username_2**: To clarify, weekly assignments are meant to be completed by first year skills within 2 hours. They are not trivial 1 function assignments, but rather implementing several functions. As stated above, they are purely automarked. We also give bigger assignments spanning 3-5 weeks and these are the ones we sit down with the students and review their code, asking questions.  

---

### Answer by username_3 on 2017-06-26. Score: 1

We don't use code snapshot tools at Mills because our class sizes are small enough (usually <25) that professors and TAs know how individual students are doing. If students are having trouble, they're likely to email me their own snapshot with a request for help. :-)

It sounds like such tools would be useful in larger programs.

> **Comments:**
> **username_4**: What students do when they are having trouble completely depends on their personality. I think that the rise of services like Khan Academy have shown us that students like to make mistakes and get explanations without feeling judged (even though they are not).  
> **username_3**: @username_4 Good point. I hadn't thought of ways a computer TA could be perceived as superior to a human TA.  

---

