Software Design and Development 2024 HSC exam pack (archive)
2024 Software Design and Development HSC exam paper
Marking guidelines
Marking guidelines are developed with the exam paper and are used by markers to guide their marking of a student's response. The table shows the criteria with each mark or mark range.
Sample answers may also be developed and included in the guidelines to make sure questions assess a student's knowledge and skills, and guide the Supervisor of Marking on the expected nature and scope of a student's response. They are not intended to be exemplary or even complete answers or responses.
Marking feedback
Select from the sections below to view feedback from HSC markers about how students performed in this year’s exam.
Use the feedback to guide preparation for future exams. Feedback includes an overview of the qualities of better responses. Feedback may not be provided for every question.
Feedback on written exam
Students should:
- read the question carefully to ensure that they do not miss important components of the question
- have a clear understanding of key words used in the question and recognise the intent of the question and its requirements
- engage with any stimulus material provided and refer to the stimulus in the response
- communicate ideas and information using relevant examples
- consider using graphical solutions if appropriate
- show full and clear working out for all questions involving calculations
- review their response to ensure that it addresses the question requirements
- avoid rewriting or rephrasing the question
- correctly use subject specific terms as appropriate
- recognise that examples provided in questions are there to clarify the requirements of the question and illustrate the general form of the data. Student designed algorithms, diagrams and metalanguage solutions should be able to process general data of this type, and the given data examples may not be specific input that need to be processed.
Question 21
In better responses, students were able to:
- provide two different benefits outlining how a team would be more effective compared to a single developer (a)
- demonstrate understanding of how a team of developers can work together (a)
- describe what a Gantt chart is and how it is used in reference to the scenario (b).
Areas for students to improve include:
- using course specific language when providing benefits (a)
- interpreting the question correctly, giving benefits for a team as opposed to outsourcing (a)
- relating the use of a Gantt chart to the management of the development of software (b)
- referring to the stimulus material provided in the response (b).
Question 22
In better responses, students were able to:
- provide reasons for consulting the shopkeeper (a)
- identify the types of documents which are used only by developers and by users (b)
- select the correct data types to correspond with the data dictionary description and examples (c)
- select two testing methods relevant for websites that would be used prior to implementation (d).
Areas for students to improve include:
- making reference to the stimulus material in their responses
- using course specific language and terminology when referring to the stimulus (a)
- selecting appropriate forms of documentation for users (b)
- selecting the most appropriate data types to demonstrate knowledge of arrays of records (c)
- understanding testing methods (d).
Question 23
In better responses, students were able to:
- place all the given data into a desk check table (a)
- provide a desk check table with all columns labelled correctly and appropriate variable and output values entered (a)
- add both changes for Max value and the formula to calculate the average (b).
Areas for students to improve include:
- identifying all the data required in the desk check table and making changes to variable values as the processing indicates (a)
- working through the algorithm to get the calculated values (a)
- adding all the corrections and formula needed to correct the algorithm (b).
Question 24
In better responses, students were able to:
- draw an IPO chart and include correct inputs (a)
- include correct processing, with formulas and the correct output (a)
- draw a correct data flow diagram (DFD) using the correct symbols (b)
- include two external entities, three process, two files, and labelled data flow lines with arrows (b)
- identify two related concerns, such as font size adjustability and keeping sensitive data safe, and provide ways these could be addressed by the developer (c).
Areas for students to improve include:
- developing a formula or calculation to be included in the processing column of an IPO chart (a)
- using correct symbols in a data flow diagram (DFD) (b)
- identifying issues with solutions related to privacy and inclusivity and how these can be corrected by developers (c).
Question 25
In better responses, students were able to:
- identify and explain the use of more than one type of documentation
- explain intrinsic documentation and Gantt charts
- explain structure charts and algorithms, and provide detail of how these are used by contract programmers.
Areas for students to improve include:
- identifying documentation to be used in this situation
- providing detail of how a programmer could use the documentation
- explaining how more than one type of documentation could be used by contract programmers in this situation.
Question 26
In better responses, students were able to:
- use the correct symbols that are relevant to a context diagram (a)
- show the correct flow of data between the external entity and the system process (a)
- demonstrate the importance of both of the subroutines individually (b)
- demonstrate an understanding of how a subroutine functions (b).
Areas for students to improve include:
- using the correct context diagram symbols (a)
- showing the data flow on the lines between the different entities (a)
- demonstrating the purpose of a context diagram (a)
- clearly stating how the named subroutines were used (b).
Question 27
In better responses, students were able to:
- differentiate the two modifications within the one line of code
- explain the effect of F > N/2, when checking the word
- explain that the two modifications will allow the program to exit the loop earlier.
Areas for students to improve include:
- avoiding the assumption that changes to the code will cause errors
- ensuring that their response clearly separates both modifications and is not written as only one modification.
Question 28
In better responses, students were able to:
- differentiate between debugging output statements (DOS) occurring at the end of interpretation and breakpoints occurring during interpretation
- demonstrate an understanding that DOS print statements are used to show variables and flags at the console
- describe how breakpoints stop at the at set point in the code and print the variable and/or flag at this line and enable stepping through line by line
- recognise that DOS display variable contents to the console using statements such as ‘print’ during debugging
- recognise that breakpoints halt the execution of code to inspect variable contents and/or engage in line-by-line debugging.
Areas for students to improve include:
- using subject specific terms for breakpoints, for example, prints statements, variables and flags
- understanding the effect that DOS and breakpoints have on the interpretation/compilation process. This includes the concepts that the results of Debugging Output Statements occur after the interpretation process and breakpoints halt the interpretation process
- understanding the difference between a debugging output statement and an error log
- understanding that breakpoints are a debugging tool and not a method that requires additional lines of code
- using language that demonstrates the differences between the concepts of debugging output statements and breakpoints.
Question 29
In better responses, students were able to:
- demonstrate an understanding of the compilation method of code translation
- demonstrate an understanding of the interpretation method of code translation
- show an understanding of the appropriate use of each translation method.
Areas for students to improve include:
- explaining each code translation process and how they work
- addressing the use component of the question and demonstrating a clear reason when to use each method of translation.
Question 30
In better responses, students were able to:
- cater for the last few remaining tickets by adjusting a nested loop counter or inserting additional nested loop conditions (a)
- understand how to process arrays and arrays of records. For example, the ticket_array is a simple array and the scenario records students to process through the customer array of records (a)
- clearly indent controls and data structures (a)
- use the array (Ticket_Array) and array of records (Customer_Array) provided to them. This included using appropriately named variables, flags and pseudocode comments (a)
- explain the static and temporary nature of a stub (for testing) (b)
- explain that the Rand() subroutine was needed to sufficiently test the AllocateTickets algorithm (b).
Areas for students to improve include:
- processing values within array of records data structures (a)
- terminating repetition structures with appropriate conditions (a)
- using correct pseudocode code syntax such as WHILE condition = TRUE..... ENDWHILE, IF condition = TRUE.....ENDIF (a)
- understanding the difference between a driver and a stub (b)
- applying the scenario in their response (b).
Question 31
In better responses, students were able to:
- identify that the rules and facts would be entered incorrectly or were able to determine features of the logic paradigm that would make it difficult to convert (ai)
- produce a rule that reflected the code with correct predicates (aii)
- explain the process of backwards chaining in terms of checking rules and checking facts that backed the rule (aiii)
- recognise that Object Oriented Programming (OOP) was appropriate and justify it by using a range of OOP concepts including classes, inheritance, polymorphism and encapsulation (b)
- be precise about the output and recognise that having random numbers mean that trees can overlap (ci)
- apply their knowledge of subclasses to the question and explain why subclasses are useful in giving trees some generic attributes in a parent class but specific attributes in a subclass (cii)
- produce a nested for loop to position the trees in the correct location. Other good responses used four loops that corresponded to the four lines of trees. These response used integers variables well (ciii).
Areas for students to improve include:
- understanding the syntax of a logic paradigm rule (aii)
- avoiding general knowledge of planets and focusing on the structure of the logic paradigm (aiii)
- demonstrating knowledge of a range of OOP concepts. Whilst inheritance might be the most applicable, there are many more concepts to discuss (b)
- being precise about the output as this is clearly stated in the code (ci)
- avoiding vague ideas about what subclasses are, making sure they state the benefits of using subclasses, and relating these to the question stimulus (cii)
- clearly understanding the structure of loops. They should also initialise variables and arrays (ciii).
Question 32
In better responses, students were able to:
- recognise that computer subtraction involves adding a negative binary value (a)
- calculate and represent the negative value in two’s complement form (a)
- discard the overflow (9th bit) as it doesn’t exist in computer memory (a)
- state that it is only necessary to flip one bit to switch between upper and lower case (b)
- identify that the changed bit for lowercase as having the value of 32 (b)
- recognise that 26 letters of the alphabet will fit into the 32-bit difference (b)
- develop an algorithm that included the addition of 2 inputs and a carry-in (c)
- allow for each of the possible sums and indicate where a carry-out was created (c)
- loop through each bit location to create an 8-bit array output (c)
- recognise that a signed 32-bit integer is an inappropriate data type as time cannot be negative (d)
- state that there is a limit to the number of seconds that can be represented in a finite number of bits (d)
- compare the issue stated in the question with other situations such as the Y2K problem (d)
- complete the data block using the correct binary values for speed, colour and flashing (ei)
- identify the three components of a data stream as header, data block and trailer (eii)
- allocate correct binary values to the sensor ID in the header, Date/Time and speed in the data block and error detection in the trailer (eii)
- create a Boolean algebra expression from the given circuit (f)
- simplify the expression to its smallest components (f)
- draw the simplified circuit (f).
Areas for students to improve include:
- understanding that binary arithmetic is the shifting of bits in registers (a)
- applying the 7-bit structure of ASCII code (b)
- understanding the need to only change a single bit allows for more efficient processing of string manipulation and processes such as searching and sorting (b)
- applying the ‘carry bit’ in binary addition (c)
- using the CASEWHERE structure instead of multiple IF…THEN selection statements (c)
- understanding the role of the sign bit in integer representation (d)
- recognising the importance of assigning appropriate data types (d)
- extracting relevant information from a question and its application (ei)
- perform decimal to binary conversion (ei)
- applying the structure of a data stream, recognising the role of each component (eii)
- recognising that a logic circuit diagram, Boolean algebra equation and a truth table are different but equivalent ways of representing the same logic (f).
HSC exam resources
Search for more HSC standards materials and exam packs.
Software Engineering syllabus
Find out more about the Software Engineering syllabus.
Request accessible format of this publication.