Higher
Course Overview
Use the sidebar (or the menu button on phones) to select different topics if you want to revise!
The Higher Computing Science course in the Scottish Curriculum is designed to develop students' understanding of computing concepts, problem-solving skills, and practical abilities in software development, computer systems, and databases or web design. The course is structured to provide a comprehensive introduction to the field of computing, preparing students for further study or careers in the industry.
The course introduces candidates to an advanced range of computational processes, where they learn to apply a rigorous approach to the design and development process across a variety of contemporary contexts. They also gain an awareness of the important role that computing professionals play in meeting the needs of society today and for the future.
The course aims to enable learners to:
- Develop and apply aspects of computational thinking in a range of contemporary contexts.
- Apply knowledge and understanding of advanced concepts and processes in computing science.
- Apply skills and knowledge in analysis, design, implementation, testing and evaluation to a range of digital solutions with some complex aspects.
- Communicate advanced computing concepts and explain computational behaviour clearly and concisely, using appropriate terminology.
- Develop awareness of current trends in computing technologies and their impact in transforming and influencing our environment and society.
Assessment
The course is assessed through two main components: a question paper and an assignment. The question paper is worth 80 marks, and the assignment is worth 40 marks, for a total of 120 marks. Each of these is divided into three distinct sections, covering Software Design and Development, Web Design and Development and Database Design and Development. Completion of the Software Development section is mandatory in both papers, but candidates can choose which of the other two sections they wish to complete.
Here is a breakdown of the marks for the average question paper and assignment.
| Type of Assessment | SDD and CS | WDD | DDD | Total Marks | Duration |
|---|---|---|---|---|---|
| Question Paper | 55 | 25 | 25 | 80 | 2 hours |
| Assignment | 25 | 15 | 15 | 40 | 6 hours (approx. 7 periods) |
Note that the Computer Systems topic is folded into the Software Design and Development topic in both cases. This topic is usually worth roughly 10% of the available marks.
The assignment will be completed in class time, and the candidate will be give 6 periods in which to complete it.
Countdown to Exam
Course Breakdown and Specifications
Below you can find more information on the different topics in Computing Science, click on the buttons to find out more information on each topic. The specifications for each topic from the SQA website have been included with each breakdown.
Candidates develop their understanding of how data and instructions are stored in binary form and factors affecting system performance. They gain an awareness of the environmental impact of intelligent systems, as well as the security risks, precautions and laws that can protect computer systems.
| Data Representation |
Describe and exemplify the use of binary to represent positive and negative integers using two’s complement, including the range of numbers that can be represented using a fixed number of bits. Conversion of two’s complement numbers from binary to denary and vice versa. Describe and exemplify floating-point representation of positive and negative real numbers, using the terms mantissa and exponent. Describe Unicode used to represent characters and its advantage over extended ASCII code (8-bit) in terms of numbers of characters. Describe the relative advantages and disadvantages of bit-mapped graphics versus vector graphics. |
|---|---|
| Computer Structure |
Describe the concept of the fetch-execute cycle. Describe the factors affecting computer system performance:
|
| Environmental Impact |
Describe the environmental impact of intelligent systems:
|
| Security Risks and Precautions |
Describe and identify the implications for individuals and businesses of the Computer Misuse Act 1990:
Describe and identify the security risks of:
|
Candidates develop knowledge and understanding of advanced concepts and practical problem-solving skills in software design and development. They do this by using appropriate modular software development environments. Candidates develop modular programming and computational-thinking skills by analysing, designing, implementing, testing, and evaluating practical solutions and explaining how these programs work. They use their knowledge of data types and constructs to create efficient programs to solve advanced problems.
| Design Methodologies |
Describe and compare the development methodologies:
|
|---|---|
| Analysis |
Identify the:
of a problem that relates to the design and implementation at this level, in terms of:
|
| Design |
Identify the data types and structures required for a problem that relates to the implementation at this level. Read and understand designs of solutions to problems at this level, using the following design techniques:
Exemplify and implement efficient design solutions to a problem, using a recognised design technique, showing:
Describe, exemplify and implement user-interface design, in terms of input and output, using a wireframe. |
| Implementation (data types and structures) |
Describe, exemplify, and implement appropriately the following structures:
|
| Implementation (computational constructs) |
Describe, exemplify and implement the appropriate constructs in a procedural high-level (textual) language:
Read and explain code that makes use of the above constructs. |
| Implementation (algorithm specifications) |
Describe, exemplify, and implement standard algorithms suing 1D arrays or arrays of records:
|
| Testing |
Describe, exemplify and implement a comprehensive final test plan to show that the functional requirements are met. Identify syntax, execution, and logic errors at this level. Describe and exemplify debugging techniques:
|
| Evaluation |
Describe, identify and exemplify the evaluation of a solution in terms of:
|
Candidates develop knowledge, understanding and advanced practical problem-solving skills in web design and development. They do this through a range of practical and investigative tasks. Candidates apply computational-thinking skills to analyse, design, implement, test, and evaluate practical solutions to web- based problems, using a range of development tools including HTML, Cascading Style Sheets (CSS) and JavaScript. Candidates apply interpretation skills to tasks involving some complex features in both familiar and new contexts.
| Analysis |
Identify the end-user and functional requirements of a website problem that relates to the design and implementation at this level. |
|---|---|
| Design |
Describe and exemplify the website structure of a multi-level website with a home page and two additional levels, with no more than four pages per level. Describe, exemplify and implement, taking into account end-user requirements and device type, an effective user-interface design (visual layout and readability) using wire-framing:
Describe, exemplify and implement prototyping (low fidelity) from wireframe design at this level.
|
| Implementation (CSS) |
Describe, exemplify and implement efficient inline, internal and external Cascading Style Sheets (CSS) using grouping and descendant selectors to:
Read and explain code that makes use of the above CSS. |
| Implementation (HTML) |
Describe, exemplify and implement HTML code:
Describe, exemplify and implement form elements:
Describe, exemplify and implement form data validation:
Read and explain code that makes use of the above HTML. |
| Implementation (JavaScript) |
DDescribe, exemplify and implement coding of JavaScript functions related to mouse events:
|
| Testing |
Describe, exemplify and implement usability testing using personas, test cases and scenarios based on low-fidelity prototypes. Describe and exemplify testing:
Describe and exemplify compatibility testing:
|
| Evaluation |
Evaluate solution in terms of:
|
Candidates develop knowledge, understanding and advanced practical problem-solving skills in database design and development. They do this through a range of practical tasks, using a minimum of three linked tables and implemented in SQL. Candidates apply computational-thinking skills to analyse, design, implement, test, and evaluate practical solutions, using a range of development tools. Candidates apply interpretation skills to tasks involving some complex features in both familiar and new contexts.
| Analysis |
Identify the end-user and functional requirements of a database problem that relates to the implementation at this level. |
|---|---|
| Design |
Describe and exemplify entity-relationship diagrams with three or more entities, indicating:
Describe and exemplify an instance using an entity-occurrence diagram. Describe and exemplify a compound key. Describe and exemplify a data dictionary with three or more entities:
Examplify a design of a solution to a query:
|
| Implementation |
Describe, exemplify and use SQL operations for pre-populated relational databases, with three or more linked tables:
Read and explain code that makes use of the above SQL. |
| Testing |
Describe and exemplify testing:
|
| Evaluation |
Evaluate solution in terms of:
|
Revision
Master Key Concepts
Higher Computing Science is built on a few core concepts that you’ll need to understand thoroughly. These include topics like data structures, algorithms, systems development, and the theory of computing. Spend time really getting to grips with these fundamentals, as they form the foundation for everything else. Break down each topic into manageable chunks and focus on understanding the theory behind each concept before diving into practice questions or coding exercises. Don’t just memorize definitions—make sure you understand the why and how behind each topic.
Practice Coding Regularly
A big part of the Higher Computing Science exam is programming, so you need to practice writing code regularly. Familiarize yourself with the programming language required for your course (usually Python, but some courses might use others like Visual Basic). Work through past paper questions, coding challenges, or build small projects to improve your coding skills. Practice debugging your code too, as this is often a crucial part of programming exams. The more hands-on experience you have, the better you’ll perform in both your assessments and practical exam.
Use Past Papers and Marking Schemes
Past papers are one of your best resources when preparing for the Higher Computing Science exam. Not only do they give you an insight into the types of questions you’ll face, but they also help you familiarize yourself with the exam’s structure. After attempting past paper questions, always refer to the marking scheme to see where you could improve. This will help you understand how answers are graded and which areas you may need to focus on more. Time yourself while doing these papers to get used to working under exam conditions.
Use Online Resources
There are many online platforms, like YouTube channels and coding websites, that offer tutorials and explanations for Higher Computing Science topics. Platforms such as Codecademy, Khan Academy, or even Stack Overflow can help when you’re stuck or need further clarification on a concept. Additionally, joining study groups or forums (whether online or in person) can be very helpful. You can discuss tricky topics with peers, share resources, and explain difficult concepts to each other. Teaching someone else is one of the best ways to reinforce your understanding. Here are a few websites you could use:
Stay Organised and plan your revision
Higher Computing Science covers a wide range of topics, so it’s essential to stay organized. Create a revision timetable that allows you to cover all topics in the lead-up to your exam. Prioritize the areas where you feel weakest, but don’t neglect topics you’re more comfortable with. Set aside time for both theory-based revision (e.g., definitions, algorithms) and practical work (coding exercises, problem-solving). Use tools like flashcards for quick revision of key terms or concepts, and regularly test yourself to track your progress.