
Programming-related topics in the arrangements document.
See also our notes on the Higher Grade Optional Programming Unit.
These notes refer to the document "Higher Still - Arrangements for Computing", First Edition May 1997, published by the Higher Still Development Unit, Scottish CCC, PO Box 12754, Holyrood Road, Edinburgh EH8 8ZA, together with the Support Notes contained therein.
The notes try to answer the question "is it possible to deliver the programming and software development aspects of Higher Still Computing using Comal?" They do not try to answer the question "is it desirable to use Comal in Higher Still computing?" The specific implementation of Comal referred to is UniComal V 3.11 Developers'.
These notes may need to be revised in the light of the Development Unit's "full commentary with examples of appropriate contexts", still to be published.
These notes assume that the reader is familiar with the programming requirements of the Scottish Examination Board Standard Grade and Higher Grade Computing Studies as presently implemented. We have tried to highlight areas of programming new to school courses, and to show whether or not these might be implemented using UniComal. Quotations in double quote marks are taken directly from the arrangements document.
The opinions expressed in these notes are those of the author and have no official status.
This unit seems to be pitched at 'taster' level, to provide a first exposure to software development and perhaps give an indication of aptitude for later progression.
The support notes stress that the term "software development environment" refers to "any environment whose features and facilities can be used to produce solutions to problems". This seems to cover just about anything from Logo to Visual Prolog via Hyperstudio and Clipper! However, the notes then go on to exemplify an approach using a typical third-generation procedural programming language.
The support notes warn that the choice of enviroment may influence motivation at this level, and suggest the use of a graphical or multimedia oriented approach. UniComal is limited to VGA graphics, but does have a full turtle graphics command set.
Outcome: 2 ("Implement features and use facilities of a software development environment")
The evidence should cover the use of procedures, sequence, unconditional loops, numeric and text variables, assignment statements, variables, input and output of single data items, and arithmetic operations.
All the above items are of course provided by UniComal, in common with many other development environments. The support notes refer to what is expected of the student in terms of syntax and semantics for procedural languages such as Comal, and go on to note that, for other environments, "corresponding aspects of features should be identified", presumably by the course tutor.
Outcome: 3 ("Solve a problem using a software development environment.")
The time allocation recommended is 15 hours. A single assignment for the student to solve, is required for assessment.
This unit is very important, since it could be the student's first serious experience of software development and could provide entry to Higher Computing later on. Also, this unit "competes" with computer programming at Standard Grade Computing Studies, and will therefore often be used to prepare students for entry to a Higher Grade course alongside other students progressing from Standard Grade. Ideally, these two groups of students should have had similar experience in preparation for the Higher Grade course.
The support notes again stress that the term "software development environment" refers to "any environment whose features and facilities can be used to produce solutions to problems", and go on to state that an imperative language (such as Comal), would be suitable.
Outcome: 2 ("Describe aspects of the software development process")
The specification refers to modularity, control and data storage, and give the following example of what the student is expected to be able to define:
modularity, in terms of procedures and functions
sequence,
repetition, in terms of fixed and conditional loops
selection, in terms of simple conditions and decisions
data storage, in terms of numeric variables and text variables.
Once again, the language is typical of third-generation procedural programming.
Outcome: 3 ("Implement features and use facilities of a software development environment")
The student is required to show that he or she has made use of a range of facilities.
Everything in the range of facilities identified can readily be delivered using UniComal. In particular, the support notes refer to the effective use of editing and error tracing facilities: this is a particular strength of UniComal.
Outcome: 4 ("Produce a solution to a problem using a software development environment")
The student must produce a working solution to a problem which, although non-complex at this level, is "not overly simple." As an example of the level of complexity required, the support notes refer to "two levels of refinement", if using a stepwise refinement technique. The support notes do not offer any guidance on the use of any other problem-solving technique. Once again, a procedural language is an obvious choice.
"The SQA will produce project specifications, and this bank of specifications will be updated to reflect contemporary areas of interest. At the time of writing, appropriate areas of interest might include software development ....."
There are only vague hints available in the support notes as to the types of project specifications which will be produced, so it is too early to say whether or not any of them could be sensibly tackled using Comal.
Outcome: 2 (Implement the solution using appropriate hardware and software)
"In the context of a software development project, this would involve the sudent writing and testing a program and producing the program documentation."
"In the context of a programming project, the scale of the project would be larger than the scale of the problems undertaken as part of the Software Development unit ...."
Once again, examples of detailed project specifications will be need before we can say whether or not they could be implemented using a procedural language such as Comal.
This unit refers to a wide variety of programming environments in general terms. In particular, reference is made to "Event Driven" programming systems and their use with multi-tasking operating systems. There is a short article in the UniCOMAL section of this website, entitled "Event-driven programs", which describes ways of demonstrating event handling using UniCOMAL V3.11 Developers'.
Outcome: 1 ("Explain aspects of the software development process")
Module libraries are introduced for the first time at this level. UniComal supports this concept strongly.
Outcome: 2 ("Explain features of a software development environment")
Complex conditions, variable scope, parameter passing by value and reference and one-dimensional arrays are all introduced. UniComal supports all these.
Outcome: 3 ("Implement features and use facilities of a software development environment")
The features required are "modularity, control, data storage, data flow and operations".
The facilities required are "editor, translator and error tracing."
Interestingly, there is no reference to the type of translator to be used - presumably, interpreters (Comal, Basic or Java) or compilers (Pascal, C, C++) are equally acceptable. There is nothing in the outcome specification which cannot be delivered using Unicomal. Acorn Comal, however, would have trouble with the module libraries.
The support notes, again, refer primarily to procedural languages and offer no detailed guidance on the use of other environments. For example:
"... in the context of a procedural language, students should produce programs which have a modular structure and which are readable with internal documentation and meaningful names. In other software developoment environments, appropriate alternative characteristics should be in evidence."
There is, once again, no example of which "appropriate alternative characteristics" might be suitable.
Outcome: 4 ("Produce a solution to a problem using a software development environment")
There is nothing in the requirements for this outcome which could not be delivered via UniComal. A single assignment is required, solved by the use of a single design methodology, to give a modular program design with data flows between the modules being identified and documented. The support notes once again assume the use of a procedural programming language.
Outcomes 1 to 4 are nominally the same as for the mandatory software development unit, with a wider range of detailed requirements in each outcome. Outcome 5 requires the student to investigate an aspect of computer programming. Overall, the detailed requirements for this unit match fairly closely with the present Higher Grade Computing Studies Programming specification, with the addition of two-dimensional arrays, queues and stacks as required data structures. File handling remains limited to sequential files. There is nothing in the unit which cannot be delivered using UniComal, although students will probably have to be made more aware of UniComal's editor facilities to satisfy the requirements of the debugging and implementation sections of outcome 4.
Advanced Higher looks very like the present Certificate of Sixth Year Studies, with one very important difference in that project specifications will be externally imposed rather than student-developed. This makes it very difficult to predict what software development tools will be required. However, based on experience with the existing CSYS project, the wider the range of development tools available to the student, the better.
At this level, it the feeling of the author that students ought to have access to resources which will permit them to attempt projects targetted at a range of operating system environments, including MS-Windows, Unix (or Linux), Apple Operating Systems, Java and Risc-OS, not simply DOS or OS/2. Comal, although possibly still useful, is clearly not enough for Advanced Higher.
As with Intermediate II, project specifications will be produced by the SQA. No exemplar specifications are available yet, so it is too early to say whether or not any of the projects will be achievable with Comal.
Up to Higher Level, it seems that UniComal can quite reasonably be used as the vehicle for delivery of all the software development and programming outcomes of the courses so far described. It is still possible that the SQA could produce project specifications which could not be satisfied using UniComal, so although UniComal is usable, it may be necessary to have available other software development tools to make sure that students' project choices are not curtailed. What selection of these other packages might be required, remains to be clarified.
In some ways it will be difficult for teachers, particularly in schools, to move away from Comal, BASIC or Pascal even now. The support notes, throughout the arrangements document, refer to third-generation procedural languages and offer some advice on their use. Other development tools, although mentioned and apparently approved of, are so far entirely unsupported in the notes, with details of their use being apparently left to the tutor to clarify. This is a great pity, because the opportunity to widen the scope of software development teaching to include object-oriented methods, for example, is one which we should not let escape for the want of support and training for tutors and teachers.
Another problem, in the transition to Higher Still Computing, with moving to more modern software development platforms, lies in the present Standard Grade Computing Studies programming requirements. All the present S Grade programming exercises and projects assume the use of Comal, or Pascal, or TrueBasic, or some other imperative third-generation procedural language. Until the S Grade arrangements are revised, we will have to maintain a sensible progression into Higher Still from Standard Grade, and this will probably mean that students will have to use the same software development environment in fifth year as they did in fourth. Any volunteers to produce a 'C++ for S3/4' course?
At Advanced Higher Level, just as with the present CSYS Computing, more powerful development tools than Comal alone, are essential.
Doug Snell, August 1997
updated 31-12-1999, Event handling