Code profiling feedback

Code profiling feedback

by Chris Sangwin -
Number of replies: 3

Dear all,

Sorry if this has already been considered, but is there any feedback to students in the form of a code profiler.  For example, this looks like a very useful tool:

http://www.pythontutor.com/visualize.htm

Could a student be given access to something like this if their answer is not judged to be correct to help them debug their own code?

Chris


In reply to Chris Sangwin

Re: Code profiling feedback

by Richard Lobb -

Here (University of Canterbury) we use CodeRunner as an assessment tool. Students develop their code in an IDE (we use Wing101 for Python and various other IDEs for other languages) and are expected to test it themselves before copying their code into CodeRunner to have it graded. We think of development and assessment as separate activities, so it's not meaningful to talk about profiling and debugging within the CodeRunner context. This applies even in exams: our on-line examination environment still supplies students with all their normal development tools, but with restrictions such as disallowing of Internet access.

Your question suggests that you want CodeRunner to serve both roles: development and assessment. This is both controversial and problematic. It's controversial because most lecturers want students to learn to develop programs in a "normal" way. They want students to become familiar with the tools of the trade and to be able to develop genuinely useful programs that can be run outside a browser environment. It's problematic because of the lack of interactivity (a CodeRunner submission is inherently a batch execution) and the sheer complexity of providing anything approaching a full set of development tools within a browser. The Python visualiser is a great tool for visualising simple programs - we use it a lot in lectures - but it handles only a limited range of Python functionality (e.g. no file processing or GUI application support) and isn't appropriate for more-complex applications.

That said, I believe some institutions do use CodeRunner in a stand-alone mode and certainly students sometimes try their luck by typing code straight into CodeRunner rather than testing it first. To what extent should we encourage that?

The soon-to-be-released precheck capability of CodeRunner allows question authors to provide students with a penalty-free run against a limited test set specified by the author. Use of this will probably further encourage students to bypass the IDE development. For that reason, some lecturers here have expressed strong doubts about the wisdom of using the prechecking capability. It will be interesting to see how much uptake there is.

Richard

In reply to Richard Lobb

Re: Code profiling feedback

by Chris Sangwin -

Thank you Richard,

That is a very clear and coherent answer, and I can see this makes a lot of sense.

I am beginning to think (hypothesis) that learning to programming is of the same order of magnitude of difficulty as learning elementary algebra.  We currently spend years having students learn algebra at school and university, but at university we expect them to pick up computing from scratch with few courses.  They are of course by the time they reach us a lot more mature, but I still think we need to offer students formative help.  For us, this needs to scale to large groups, so some automated tools like a code profile tool is attractive.

Chris



In reply to Chris Sangwin

Re: Code profiling feedback

by Richard Lobb -

It's interesting to compare the learning of programming with the learning of elementary algebra. Both involve abstraction, which I think requires brain re-wiring. And that takes time.

FWIW, programming (coding) is in the process of being introduced into the primary school curriculum in New Zealand, so your concerns about students having to pick up computing from scratch should ease over time. I just hope don't we find ourselves in the same situation as Maths, with many students becoming programming-phobic.

Certainly I think code profile tools like the Python visualizer are attractive. I just don't know how to get students to appreciate their benefits. It seems to me (hypothesis) that the students who don't actually know what their program is doing are the ones least likely to explore the use of extra tools to help them improve their understanding.

Richard