Strands and learning outcomes Appendix A: Glossary of Action Verbs used Appendix B: Glossary of Core Concepts Strand 1: Practices and principles The practices and principles of computer science describe the behaviours and ways of thinking that computationally-literate students use to fully engage in a data-rich and interconnected world. Computational thinking, at the heart of computer science practices, is a problem-solving process that involves designing solutions that exploit the power of computers. The practices and principles are encountered in a context-based approach related to social, professional, and scientific contexts. Studying the role of computers in society will enhance students’ attitudes towards computer science and make it more meaningful and relevant. In learning about designing and developing, students will recognise the creative challenge involved in creating artefacts and in project management. S1: Designing and developing Students learn about Students should be able to Design process identify features of both staged and iterative design and development processes Working in a team, assigning roles and responsibilities collaborate and assign roles and responsibilities within a team to tackle a computing task identify alternative perspectives, considering different disciplines, stakeholders and end users Communication and reporting read, write, test, and modify computer programs Teaching and Learning Assessment Software development and management reflect and communicate on the design and development process S1: Computational thinking Students learn about Students should be able to Computational thinking describe a systematic process for solving problems and making decisions Teaching and Learning Assessment explain how the power of computing enables different solutions to difficult problems Problem solving solve problems by deconstructing them into smaller units using a systematic approach in an iterative fashion solve problems using skills of logic Logical thinking evaluate alternative solutions to computational problems explain the operation of a variety of algorithms develop algorithms to implement chosen solutions Algorithmic thinking evaluate the costs and benefits of the use of computing technology in automating processes use modelling and simulation in relevant situations discuss when heuristics should and could be used and explain the limitations of using heuristics S1: Computers and society Students learn about Students should be able to Social and ethical considerations of computing technologies discuss the complex relationship between computing technologies and society including issues of ethics compare the positive and negative impacts of computing on culture and society Turing machines: The Internet; Machine learning; Artificial intelligence The Internet Machine learning Artificial intelligence identify important computing developments that have taken place in the last 100 years and consider emerging trends that could shape future computing technologies explain when and what machine learning and AI algorithms might be used in certain contexts User-centred design consider the quality of the user experience when interacting with computers and list the principles of universal design, including the role of a user interface and the factors that contribute to its usability compare two different user interfaces and identify different design decisions that shape the user experience describe the role that adaptive technology can play in the lives of people with special needs recognise the diverse roles and careers that use computing technologies Strand 2: Core concepts This strand introduces five core concepts that represent major content areas in the field of computer science: Abstraction, Algorithms, Computer systems, Data, and Evaluation and testing. The core concepts are developed theoretically and applied practically. In this way, conceptual classroom-based learning is intertwined with experimental computer lab-based learning throughout the two years of the course. S2: Abstraction Students learn about Students should be able to Abstraction use abstraction to describe systems and to explain the relationship between wholes and parts use a range of methods for identifying patterns and abstract common features implement modular design to develop hardware or software modules that perform a specific function illustrate examples of abstract models S2: Algorithms Students learn about Students should be able to Programming concepts use pseudo code to outline the functionality of an algorithm construct algorithms using appropriate sequences, selections/conditionals, loops and operators to solve a range of problems, to fulfil a specific requirement implement algorithms using a programming language to solve a range of problems Sorting: Simple sort, Insert sort, Bubble sort, Quicksort Search: Linear search, Binary search apply basic search and sorting algorithms and describe the limitations and advantages of each algorithm assemble existing algorithms or create new ones that use functions (including recursive), procedures, and modules Algorithmic complexity explain the common measures of algorithmic efficiency using any algorithms studied S2: Computer systems Students learn about Students should be able to CPU: ALU, Registers, Program counter, Memory describe the different components within a computer and the function of those components Basic electronics: voltage, current, resistors, capacitors, transistors describe the different types of logic gates and explain how they can be arranged into larger units to perform more complex tasks Operating system layers: Hardware, OS, Application, User describe the rationale for using the binary number system in digital computing and how to convert between binary, hexadecimal and decimal describe the difference between digital and analogue input Web infrastructure - Computer Network Protocols: HTTP, TCP, IP, VOIP explain what is meant by the World Wide Web (WWW) and the Internet, including the client server model, hardware components and communication protocols S2: Data Students learn about Students should be able to Boolean, integer, real, char, string, date, array use data types that are common to procedural high-level languages 8-bit ASCII Non-Roman character sets Unicode: UTF-8, Emojis use ASCII and Unicode character sets to encode/decode a message and consider the importance of having such standards Information systems collect, store and sort both continuous and discrete data S2: Evaluation and testing Students learn about Students should be able to Debugging Testing: Unit test, Function test, System test test solutions and decisions to determine their short-term and long-term outcomes identify and fix/debug warnings and errors in computer code and modify as required critically reflect on and identify limitations in completed code and suggest possible improvements explain the different stages in software testing Strand 3: Computer science in practice Computer science in practice provides multiple opportunities for students to use their conceptual understanding in practical applications. Over the two years of the course students engage with four team-based applied learning tasks. Student groups plan, design and develop computational artefacts that are personally relevant or beneficial to their community and society in general. Examples of computational artefacts include programs, games, simulations, visualisations, digital animations, robotic systems, and apps. Students are expected to document, reflect and present on each applied learning task. Applied learning task 1: Interactive information systems Design is one of the key practices and principles of computer science. As designers and creators of technology, students can be innovative and expressive through the creation of artefacts. Computer science is also an information-intensive discipline that involves the selection, evaluation, recording and presentation of information. In this applied learning task, students will develop an interactive website that can display information (either local or remote data) from a database to meet a set of user needs. Through planning and designing an infrastructure that can display data, students will develop their knowledge of the role computing systems can play in communicating with and providing information about the world around them. Students learn about Students should be able to Information systems, User centred design, Web design understand and list user needs/requirements before defining a solution File systems and relational databases create a basic relational database to store and retrieve a variety of forms of data types Design process use appropriate programming languages to develop an interactive website that can display information from a database that meets a set of users’ needs Applied learning task 2: Analytics Hypothesising, making predictions, examining evidence, recognising patterns and reaching conclusions are at the heart of computer science. In this applied learning task, students will identify an interdisciplinary topic, develop a hypothesis and utilise existing resources to highlight the salient information and inform future decisions. By identifying, analysing, and deconstructing a problem, students will deepen their understanding of practices and principles of computer science. Students learn about Students should be able to Analytics; Abstraction develop algorithms that can find the frequency, mean, median and mode of a data set Data collection and analysis structure and transform raw data to prepare it for analysis Interpretation of data represent data to effectively communicate in a graphical form Algorithms use algorithms to analyse and interpret data in a way that informs decision-making Applied learning task 3: Modelling and simulation Modelling, programming, and coding require careful analysis of patterns and relationships to solve problems. In this applied learning task, students will engage with a problem that is difficult to solve analytically, but that is amenable to a solution using simulation or modelling. Students will develop a computer system that simulates or models the problem. Engaging with a problem in this way will heighten students’ awareness and understanding of how algorithms can be used across a wide range of disciplines and subjects. Students learn about Students should be able to Modelling/simulation; Abstraction; Algorithms develop a model that will allow different scenarios to be tested analyse and interpret the outcome of simulations both before and after modifications have been made explain the benefits of using agent-based modelling and how it can be used to demonstrate emergent behaviours Applied learning task 4: Embedded systems The design and application of computer hardware and software are a central part of computer science. In this applied learning task, students will implement a microprocessor system that uses sensors and controls digital inputs and outputs as part of an embedded system. By building the component parts of a computer system, students will deepen their understanding of how computers work and how they can be embedded in our everyday environments. Students learn about Students should be able to Embedded systems use and control digital inputs and outputs within an embedded system Computing inputs and outputs measure and store data returned from an analogue input Computer systems develop a program that utilises digital and analogue inputs Design process design automated applications using embedded systems