18.01.2013 Views

Maria Knobelsdorf, University of Dortmund, Germany - Didaktik der ...

Maria Knobelsdorf, University of Dortmund, Germany - Didaktik der ...

Maria Knobelsdorf, University of Dortmund, Germany - Didaktik der ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

One complication with the algorithms topics is that a closely<br />

related standard (AS91075) on designing a computer program<br />

used the term “algorithmic structure” to describe the<br />

design <strong>of</strong> the program. This appears to have been confused<br />

with the use <strong>of</strong> “algorithm” in the AS91074 standard; some<br />

online postings from teachers indicate that they regarded<br />

them as describing the same thing, and at least one student<br />

stated that an algorithm is a program plan, which is essentially<br />

correct, but confusing in this context. Thus some<br />

submissions on algorithm “cost” are based on a student’s<br />

own design <strong>of</strong> a program, which typically doesn’t have any<br />

interesting behaviour to analyse, and in fact may be O(1)<br />

since the program does a very routine task. For example,<br />

several programs simply read in a value, did a calculation<br />

and printed the result. The use <strong>of</strong> the word “algorithm” has<br />

since been removed from the AS91075 standard to avoid this<br />

confusion.<br />

4.3 Programming languages<br />

The criteria for programming languages centre around the<br />

role <strong>of</strong> programming languages, high and low level languages,<br />

and how high level languages are translated to low level ones<br />

(i.e. compiling and interpreting).<br />

Most <strong>of</strong> the students described high and low level languages<br />

and compilers abstractly, but at most a third attempted<br />

some sort <strong>of</strong> concrete demonstration <strong>of</strong> a compiler being<br />

used. A demonstration is much more convincing <strong>of</strong> student<br />

un<strong>der</strong>standing because the student has personally had the<br />

experience <strong>of</strong> converting a program to a low level language<br />

and running it. Even better than demonstrating the process<br />

on a given program, students could have used their own<br />

program (for example, one done for AS91076) as the example,<br />

showing how it is compiled and/or interpreted. Because<br />

the standard discusses both interpreted and compiled programs,<br />

it’s unlikely that students would be familiar with<br />

two different languages and thus only one <strong>of</strong> the examples<br />

could reasonably be personalised, although some languages<br />

have both compiled and interpreted versions (e.g. Basic)<br />

and these could be contrasted. Another approach would be<br />

for students to learn the bare minimum <strong>of</strong> a language e.g.<br />

write a “Hello world” level program but substituting their<br />

own name. None <strong>of</strong> the submissions seemed to have taken<br />

this approach, and it would be interesting to evaluate, since<br />

it forces students through the process <strong>of</strong> getting the program<br />

to run. Using the student’s own program was risky for the<br />

algorithms topic, but for the programming languages topic it<br />

provides good personalisation and shows an awareness <strong>of</strong> the<br />

process, and it isn’t sensitive to the quality <strong>of</strong> the program<br />

(as long as it runs or compiles). Despite this, we observed<br />

few examples in our sample where students had obviously<br />

used their own program.<br />

In the student work analysed, the main languages mentioned<br />

as examples were Visual Basic/Basic (in about 18%<br />

<strong>of</strong> reports), Scratch (13%), Pascal (5%), Flash/Actionscript<br />

(4%), C (4%) and Alice (3%). Other languages used included<br />

C++, Java, JavaScript, Picaxe, and Python. About<br />

a half the reports didn’t use an example in a specific language,<br />

and these generally didn’t reflect a lot <strong>of</strong> un<strong>der</strong>standing<br />

since the concepts were explained in very abstract terms.<br />

Projects that compared a compiled and interpreted language<br />

16<br />

mainly used Visual Basic, C, Pascal and Java as examples<br />

<strong>of</strong> compiled languages, and Scratch, VBA in Excel, Alice,<br />

JavaScript and Python as examples <strong>of</strong> interpreted languages.<br />

The situation isn’t always simple, as mo<strong>der</strong>n languages can<br />

blur the distinction <strong>of</strong> compiling or interpreting (e.g. Java<br />

compiles to byte code, which is then interpreted). One student<br />

mentioned how Scratch can run as a Java applet itself,<br />

so it is interpreted twice and compiled! If students can fully<br />

un<strong>der</strong>stand these complexities then they will have a good<br />

grasp on the issues intended, but it will be important for<br />

teachers to provide guidance on the languages to explore.<br />

Another example used in several reports was Visual Basic<br />

(compiled) compared with Basic (VBA) macros in Excel (interpreted).<br />

The contrast is effective because it is essentially<br />

the same language and focuses the student on the different<br />

way it is run rather than the difference in language; the examples<br />

we observed using this contrast all appeared to meet<br />

the criteria for Excellence in the programming languages requirements.<br />

We would note that JavaScript is a useful language<br />

to explore because it is definitely interpreted, readily<br />

available, and is not confused by the drag-and-drop aspect<br />

<strong>of</strong> Scratch, whereas it is problematic to use HTML as an example<br />

<strong>of</strong> an interpreted language (as one project did) since<br />

it is not at all clear that HTML is usefully viewed as a programming<br />

language, even if it is a formal markup language.<br />

Some students presented their work on programming language<br />

as posters. This approach has potential since the<br />

student is writing for a particular audience (probably other<br />

students), and thus might be expected to focus the explanations<br />

and examples more. It also seemed to discourage<br />

paraphrasing, perhaps because they were thinking <strong>of</strong> it as<br />

communicating to peers rather than trying to write something<br />

that a teacher would recognise as correct.<br />

4.4 Usability<br />

The criteria in the standard emphasise factors <strong>of</strong> a user interface<br />

that contribute to its usability. Unfortunately many<br />

reports seemed to confuse usability with functionality, or focussed<br />

on the physical layout <strong>of</strong> the interface. For example,<br />

a student might comment that a cellphone can take photos<br />

(the functionality), but miss the point that the typical task<br />

that a user has (such as taking a photo and transferring it<br />

to an online photo album) might involve pressing mysterious<br />

key sequences, dealing with incompatible devices, and using<br />

a time-consuming procedure that is difficult to remember<br />

(usability). The better work focussed on typical tasks done<br />

by the user, and any problems encountered completing those<br />

tasks.<br />

Using a personally owned device and talking about the student’s<br />

own experience gives a clearer demonstration <strong>of</strong> un<strong>der</strong>standing<br />

than writing about interfaces abstractly. About<br />

61% <strong>of</strong> the reports provided a suitably personalised report.<br />

Those that didn’t discuss a personal device mainly gave general<br />

usability principles that appeared to be paraphrased<br />

from standard sources. In these cases, where illustrations<br />

were given they tended to be standard examples <strong>of</strong> usability<br />

issues, and once again it is hard to hear the “student voice”<br />

when this approach is used.<br />

The students who reported on experience with their own dig-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!