210 likes | 367 Views
The Phoenix Meta-Language Teaching Programming by Classroom Debate . Raymond Flood Bob Lockhart Department for Continuing Education The University of Oxford. 1 Wellington Square Oxford, OX1 2JA Wednesday, September 1 st . Fifth annual LTSN-ICS conference
E N D
The Phoenix Meta-LanguageTeaching Programming by Classroom Debate. Raymond Flood Bob Lockhart Department for Continuing Education The University of Oxford. 1 Wellington Square Oxford, OX1 2JA Wednesday, September 1st. Fifth annual LTSN-ICS conference University of Ulster, Jordanstown
The Programming Debate • Programming central to modern computing courses. • Poses difficulties as an academic topic. • Most people feel it should be taught non-passively. • Debate centres on which high-level language and what support facilities. • In this talk, we will discuss our approach.
We shall … • Describe the nature of our courses and students. • Outline our approach. • Explain the facilities offered by the Phoenix tool. • Illustrate our use of it in teaching. • Present student responses to it. • Share some of our resources.
One course - two delivery modes • Undergraduate diploma in computing. • Part time study over two years. • 120 CATS points at level two. • Twelve topics - basic undergraduate computer science. • Programming approx 20%. • Continuous assessment plus an annual examination. • No formal admission requirements.
Class course • Two-hour lecture weekly - October to May. • Three weekend schools each year. • One exam each year, in June. • Single class of 15-20 students. • Variety of lecturers. • Majority of students have no previous programming experience. • Possession of a computer is not essential. • Limited amount of “hands-on” computing.
Our approach • Concepts of low-level programming. • Phoenix programming-language generator. • The 4 – D approach! • Debate facilities. • Decide what they should be. • Discover the consequences! • Destination, Java!
Bare Bones • Brookshear’s universal language exemplar. • ONE of the dialects offered by Phoenix. • Stripped-down programming language. • Single control structure. • Only variable type is non-negative integer. • I/O undefined. • Many important questions unresolved.
Illustration of Bare Bones clear Z; while X not 0 do; incr Z; decr X; end;
The questions • Case sensitive? • Pre-set variables? • Decrementing zero values? • Annotation? • Students can decide on all these issues. • They reach a consensus. • We implement their decisions. • They discover the consequences.
How Phoenix works • A language generator written in Java. • Particular dialects correspond to settings of internal state variables. • Students take the decisions but instructors implement them. • Once variables are set, running Phoenix produces this code window which students use to program.
The student experience • Phoenix is only used at the start of the course. • First year we have attempted this! Only 11 students. • Reaction obtained by questionnaire and observation. (See http://www.conted.ox.ac.uk/cleat/ for details). • Only one student with previous programming experience.
Questionnaire • Only one student did not enjoy programming. • Only one reported the programming easy! • Mixed signals about preferring Java only! • All but two students were positive on Bare Bones. • Mixed signals might relate to when the questionnaire was administered and the perceived utility of Java.
Specifics 1. I feel capable of writing a small Java program now. 2. I feel I understand the terms: type, declaration, variable, assignment, control structure, loop, procedure, parameter. 3. I feel I understand the terms:class, object, message constructor, attribute, behaviour, function.
Specifics 1. I feel capable of writing a small Java program now. 5 agreed, 2 neutral, 3 disagreed. 2. I feel I understand the terms: type, declaration, variable, assignment, control structure, loop, procedure, parameter. 3. I feel I understand the terms:class, object, message constructor, attribute, behaviour, function.
Specifics 1. I feel capable of writing a small Java program now. 5 agreed, 2 neutral, 3 disagreed. 2. I feel I understand the terms: type, declaration, variable, assignment, control structure, loop, procedure, parameter. 2 agreed strongly, 4 agreed, 2 neutral, 2 disagreed. 3. I feel I understand the terms:class, object, message constructor, attribute, behaviour, function.
Specifics 1. I feel capable of writing a small Java program now. 5 agreed, 2 neutral, 3 disagreed. 2. I feel I understand the terms: type, declaration, variable, assignment, control structure, loop, procedure, parameter. 2 agreed strongly, 4 agreed, 2 neutral, 2 disagreed. 3. I feel I understand the terms:class, object, message constructor, attribute, behaviour, function. 6 agreed. 2 neutral, 2 disagreed.
Further points Students seemed more confident about concepts than had been the case in other years. • Students welcomed further programming courses ( 2 strongly agreed, 4 agreed, 4 neutral) • The programming questions were among the most popular in their final exam.
Future expansion • Local variables? • Re-use and procedural units? • More flexible control structures? • Direct interface to instructor settings? • Package as an Applet? • Comparative studies? • Phoenix version 2?
Acknowledgements • John Axford – Course Director, Internet diploma in computing. • Suzie McMahon, for help with the programming questionnaire. • Pete Thomas – conversations on programming!
Thank You! Raymond Flood Bob Lockhart