How much should Software Carpentry assume students know before they start? Or to put a sharper point on it, how much should this course require students to know? To date, we have said that students should have at least one prior programming course, and have to understand loops, conditionals, functions, arrays, and simple file I/O: the kinds of things that are usually (but not always) covered in a CS-1 course, and hopefully remembered thereafter. To make this more concrete, we've said that students should be able to solve this problem in the language of their choice:
Write a program that reads a rectangular matrix of numbers from a file, transposes that matrix, and writes the result to another file. The values in the matrix are separated by spaces, the number of rows and columns is not known in advance, and the program is not allowed to overwrite its input file. For example, if the program is invoked as
transpose input.dat output.dat
, it reads this:0 1 2 3 4 5 6 7 8 9from
input.dat
, and writes this:0 5 1 6 2 7 3 8 4 9to
output.dat
.
Many of the students who took this course this fall online or at UCAR, the Met Office, or in London could have done this, but a substantial minority wouldn't have been able to. We therefore have three choices:
So, what should we do? Please vote by posting comments...
Originally posted 2010-12-02 by Greg Wilson in Content.
comments powered by Disqus