It is not envisaged that the following components be delivered as isolated topics but rather as an integrated body of knowledge. All listed content is compulsory.
PROBLEM SOLVING AND PROGRAMMING (70 HOURS)
Algorithms and programming solutions to a variety of problems are designed and expressed in a variety of forms. Learners will develop skills in understanding the problem, exploring problem solving strategies, design and creation of a solution. Algorithms that require mathematical solutions, such as those involving summation and searching, are investigated.
A fundamental understanding of the software development cycle (design, code, test, evaluate and refine) is required. Practical activities need to provide experience for learners in all stages of this cycle and to develop an understanding of the importance of analysis and design before beginning to code. Programs should adhere to established programming styles and be fully documented.
ALGORITHM DESIGN AND PROBLEM SOLVING
- Exploration of a range of problems - some problems cannot be reduced to an algorithm as they have no clear rules, some problems have clear rules but are difficult to put into algorithms because they have many possible responses to rules (e.g. Asian game of Go). Other problems are those for which rules are still to be discovered such as natural language processing and how to cure certain diseases. This section should provide a link between Computer Science and other disciplines
- Exploration of forms of problem solving – algebraic, algorithmic, trial and error
- The specific requirements of a problem are determined from problem definitions given in a variety of forms
- Examination of different solutions to the same problem (critical evaluation, most efficient, reliable)
- Problem deconstruction/decomposition – problems need to be broken down into a number of well defined steps
- Visualisation of solution – use of diagrams to illustrate the solution
- Expression of the solution to the problem – use an initially/when model for event-driven solutions.
PROGRAMMING
Students learn the fundamentals of Object Oriented Programming and event driven programming.
Learners write a variety of Java Applets using the following Java features:
- primitive types (promotion and casting)
- arithmetic and logic operators (+, -, *, / , %, &&, !, ||), order of operations, and some mathematical functions – such as (Math.pow(), Math.random())
- graphics (drawing, filling)
- pre-defined Objects, including arrays and Strings
- control-flow (selection using if else/switch, iteration using for/while)
- methods, parameters and scope
- GUIs (widgets including Buttons, TextField, Labels)
- events, and listeners using the AWT library
- classes and information hiding.
A key component of programming should be an emphasis on good programming practice. Programs need to adhere to a defined set of standards including good variable name choice, commenting, and indenting. Learners should be introduced to official requirements of particular organisations.
A key element of this topic is designing Applets for genuine solutions. Fundamental notions of HCI (Human Computer Interaction) are introduced.
TESTING AND EVALUATION
- A structured approach to testing is followed. Testing plans are written from program specifications in the absence of a program
- Tracing as a means of debugging programs is introduced, including both hand and automated tracing
- Self, peer and review by other adults is used to evaluate Applets and identify future refinements.
DOCUMENTATION
Programs need to be accompanied by both technical and user documentation. Technical documentation includes internal comments of programs. User documentation provides a description of the program’s purpose, operating instruction and appropriate online help.
COMPUTER FUNDAMENTALS AND COMPUTER LIMITATIONS (40 HOURS)
In order to come to an understanding of the limitations and possibilities for the use of computer technology into the future, learners need to understand computer architectures, and the role of the operating system.
Areas to be covered:
- binary number system for whole number and fraction and conversions to decimal and hexadecimal
- basic binary arithmetic (addition only)
- twos complement representation and arithmetic (addition and subtraction only)
- representation of primitive data types (integer, char, Boolean, float)
- representation of non-numeric data using hexadecimal where appropriate (e.g. characters, colours, instructions)
- implications of representation of floating point numbers for accuracy of calculations
- representation of arrays as well as sound and picture files
- Boolean operators (AND, OR, NOT)
- logic gates, basic computer circuits and the flip-flop
- using truth tables, Karnaugh maps and simplifications using the specified list of logic laws to design logic circuits
- computer architecture – the fundamental components of a computer in the von Neumann architecture
- machine code and its relationship to high level languages such as Java
- the machine cycle required to add two numbers (fetch, decode, execute)
- operating systems and the role of the JVM
- newer technologies and their relationship to basic computer architecture, such as multi core technology, and parallel computing.
SOCIAL/ETHICAL ISSUES AND PROFESSIONAL RESPONSIBILITY (10 HOURS)
Computer professionals have specialised knowledge and often have positions with authority. For this reason, they may have a significant impact on society, including many of the things that people value. Along with such power comes the duty to exercise that power responsibly.
Areas to be covered:
- career pathways, skills and education required
- the role of professional associations and codes of ethics
- responsibilities of the computing professional in the workplace
- responsibilities of those in positions of authority
- examples and consequences of technological errors, such as software bugs.
COMPUTING OPTION (30 HOURS)
The skills gained in computer science are used to explore an area of interest in more depth. The option chosen must enable learners to demonstrate problem solving skills, research, and technical communication skills. In addition, learners must adhere to ethical and professional standards as they are prescribed in the course. The option product will be used to assess criteria 8, 9 and 1 or 6, along with at least one other criterion.
Suggested topics:
- Production of a Java Applet for a client following the software development lifecycle
- Object oriented programming as applied in Flash ActionScripting
- Exploration of network programming
- Programming for mobile devices such as MIDlets
- Exploration of Java libraries (e.g. Greenfoot to build a simulation or interactive game, Robocode to build robots)
- Digital Electronics.