I've been teaching a first year course since its first edition, seven years ago. The main objective for students is to be able to write a somewhat complicated program with non-trivial data structures in the assembly language of the IA-32. Controversies aside (is it a suitable platform? suitable topic?), the course has a fairly common structure. A few theory sessions at the beginning of the course, and then a period where students have 1 lab in which they work for 7 days, teaching staff tries to grade it as soon as possible, and feedback is returned.
There used to be a time where this effort had an automatic translation into some percentage of the final grade, but due to some serious difficulties with plagiarism (which would be material for another post), the decision was made to not take into account these labs directly, but as a consequence, design the final exam clearly along the lines of the exercises presented in these sessions.
Trying to emphasize on the need for quick feedback for students, an automatic platform was deployed that tests all the received submissions and produces a small report. The application runs every 15 minutes and is available through the entire work week. The results are published in a publicly available web page where students are identified by a nick. The effect of this application has been fairly dramatic, although to be entirely honest, I cannot sustain such claim on empirical objective observations, but simply on my perception as the course coordinator.
One of the stumbling blocks we were hitting with this paradigm was the large turnaround time between a student having some serious doubts about a portion of the code, and the time help was given by any member of the technical staff during the week they were working in the assignment. Although teaching staff have fairly frequent office hours, the burden of setting up an appointment, discuss the exercise, get some suggestions, go back to the machine and implement the changes would usually amount to at least a day.
We saw students coming to our offices with no previous appointment, the printout of the program in their hands and expecting some quick advice on how to proceed. Version control turned out to be of great help for such situations. No more code going back and forth as email attachments. A question in the course forum has a name attached to it, from there you get the code, take a look at it, take your time, think about the answer, and finally post it on the forum. Nice.
Another interesting new situation popped up by chance when this new tool was coupled with a chat application. Students have access to a chat application (with a web based interface which simplifies its deployment and adoption). Teaching staff occasionally connect to the same chat. In several occasions, students were working on their assignments and was able to assist them as if I was sitting next to them. The version control system offered the code to both ends of the conversation, and the chat allowed us to talk about this line of code or that data definition (with precise line numbers).
In certain situations, the chat session morphed into a fairly effective debugging session. Not simply pointing students to the mistake, but guiding them to see more details about the location in the code where the anomaly is happening. Having such type of sessions, in a traditional learning environment, would require to schedule a lab, announce the session, prepare some material, etc. It would not be as effective as the type of right-here-right-now interaction you achieve combining chat and version control.
And finally, another interesting (and again informal) observation is the difference in expressions and conversation flow between a face to face in-class interaction, and a chat session. From what I could gathered, the media is natural for them. They quickly write fairly colloquial expressions. Things that you would never hear or see in a conventional classroom. I'm not talking about distasteful remarks, they are just simply highly colloquial expressions specifically used in this type of communication channels.
So, to conclude, despite thinking that version control was a sophisticated tool, simply because I got to use it when I was out of school, students use it with astounding normality. Just by chance, the adoption of this tool was paired with the presence of a chat room turning into a new set of scenarios fairly productive to solve questions, doubts, etc. I was expecting a fair amount of email questions at the begining of the course about how to use the version control program. Instead, I simply had "no news", which in this case, they were indeed "good news".
0 comments:
Post a Comment