To solve complex problems, students need to develop a strategy. They need to be able to identify inputs and outputs, to select, describe and use relevant data structures, to explain the procedures required for the solution and explain how each of these will interact. Well-structured algorithms should be developed. Desk checking of algorithms and documentation of the proposed solution are also important.
The development of structured algorithms to document the logical solution of problems is a fundamental principle of this course. These must be developed independently of any coding language. Students should appreciate that the real skill is in the development of the algorithm, not the implementation of the logic in a particular language. Not every algorithm developed in this section of the course need be implemented.
Problems must be chosen with an appropriate level of difficulty that reflects the ability level of students. The level of difficulty should be greater than in the Preliminary course. Relevant problems could include the development of games such as hangman, quizzes, mastermind, draughts and search-a-word. These problems should include use of data structures such as arrays of records and multidimensional arrays. Students should experience the storing, retrieving and updating of data in files.
(text taken from the SDD syllabus section 9.2.2, published by NSW Education Standards Authority.)Areas of interest to students:
To remind students of basic algorithm and flowchart standards, here is a short presentation with examples taken from the Software Design and Development Support Document.