BHS Computing Science

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.

Computer Systems

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:

  • number of processors (cores)
  • width of data bus
  • cache memory
  • clock speed
Environmental Impact

Describe the environmental impact of intelligent systems:

  • heating systems
  • traffic control
  • car management systems
Security Risks and Precautions

Describe and identify the implications for individuals and businesses of the Computer Misuse Act 1990:

  • unauthorised access to computer material
  • unauthorised access with intent to commit a further offence
  • unauthorised modification of programs or data on a computer

Describe and identify the security risks of:

  • tracking cookies
  • DOS (Denial of Serivce) attacks:
      symptoms (slow performance, inability to access)
Software Design and Development

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:

  • iterative development process
  • agile methodologies
Analysis

Identify the:

  • purpose
  • scope
  • boundaries
  • functional requirements

of a problem that relates to the design and implementation at this level, in terms of:

  • inputs
  • processes
  • outputs

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:

  • structure diagrams
  • pseudocode

Exemplify and implement efficient design solutions to a problem, using a recognised design technique, showing:

  • top level design
  • the data flow
  • refinements

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:

  • parallel 1D arrays
  • records
  • arrays of records
Implementation (computational constructs)

Describe, exemplify and implement the appropriate constructs in a procedural high-level (textual) language:

  • parameter passing (formal and actual)
  • the scope of local and global variables
  • expressions to concatenate strings
  • sub-programs/routines, defined by their name and arguments (inputs and outputs):
    • functions
    • procedures
  • pre-defined functions (with parameters):
    • to create substrings
    • to convert from character to ASCII and vice versa
    • to convert floating point numbers to integers
    • modulus
  • file handling:
    • sequential CSV and txt files (open, create, read, write, close)

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:

  • linear search
  • find maximum and minimum
  • count occurences
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:

  • dry runs
  • trace tables/tools
  • breakpoints
  • watchpoints
Evaluation

Describe, identify and exemplify the evaluation of a solution in terms of:

  • fitness for purpose
  • efficient use of coding constructs
  • usability
  • maintainability
  • robustness
Web Design and Development

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:

  • horizontal navigation bar
  • relative horizontal and vertical positioning of the media
  • form inputs
  • file formats of the media (text, graphics, video, and audio)

Describe, exemplify and implement prototyping (low fidelity) from wireframe design at this level.

  • web content (text, graphics, video, and audio)
Implementation (CSS)

Describe, exemplify and implement efficient inline, internal and external Cascading Style Sheets (CSS) using grouping and descendant selectors to:

  • control appearance and positioning:
    • display (block, inline, none)
    • float (left, right)
    • clear (both)
    • margins/padding
    • sizes (height, width)
  • create horizontal navigation bars:
    • list-style-type:none
    • hover

Read and explain code that makes use of the above CSS.

Implementation (HTML)

Describe, exemplify and implement HTML code:

  • nav
  • header
  • footer
  • section
  • main
  • form
  • id attribute

Describe, exemplify and implement form elements:

  • form element: input
    • text
    • number
    • textarea
    • radio
    • submit
  • form element: select

Describe, exemplify and implement form data validation:

  • length
  • presence
  • range

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:

  • onmouseover
  • onmouseout
  • onclick
Testing

Describe, exemplify and implement usability testing using personas, test cases and scenarios based on low-fidelity prototypes.

Describe and exemplify testing:

  • input validation
  • navigational bar works
  • media content displays correctly

Describe and exemplify compatibility testing:

  • device type:
    • tablet, smartphone, desktop
  • browser
Evaluation

Evaluate solution in terms of:

  • fitness for purpose
  • usability
Database Design and Development

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:

  • entity name
  • attributes
  • name of relationship
  • cardinality of relationship (one to one, one to many, many to many)

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:

  • entity name
  • attribute name
  • primary and foreign key
  • attribute type
    • text
    • number
    • date
    • time
    • Boolean
  • attribute size
  • validation
    • presence check
    • restricted choice
    • field length
    • range

Examplify a design of a solution to a query:

  • tables and queries
  • fields
  • search criteria
  • sort order
  • calculations
  • grouping
Implementation

Describe, exemplify and use SQL operations for pre-populated relational databases, with three or more linked tables:

  • UPDATE, SELECT, DELETE, INSERT statements makeing use of:
    • wildcards
    • aggregate functions (MIN, MAX, AVG, SUM, COUNT)
    • computed values, alias
    • GROUP BY
    • ORDER BY
    • WHERE

Read and explain code that makes use of the above SQL.

Testing

Describe and exemplify testing:

  • SQL operations work correctly at this level
Evaluation

Evaluate solution in terms of:

  • fitness for purpose
  • accuracy of output

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.