More results...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
post
page
Python IDE Dashboard

OCR H446/01 – 1.2 Software and software development

1.2 Software and software development - Overview / Checklist
1.2.1 Systems Software
(a) The need for, function and purpose of operating systems.
(b) Memory Management (paging, segmentation and virtual memory).
(c) Interrupts, the role of interrupts and Interrupt Service Routines (ISR), role within the Fetch-Decode-Execute Cycle.
(d) Scheduling: round robin, first come first served, multi-level feedback queues, shortest job first and shortest remaining time.
(e) Distributed, embedded, multi-tasking, multi-user and Real Time operating systems.
(f) BIOS.
(g) Device drivers.
(h) Virtual machines, any instance where software is used to take on the function of a machine, including executing intermediate code or running an operating system within another.
1.2.2 Applications Generation
(a) The nature of applications, justifying suitable applications for a specific purpose.
(b) Utilities.
(c) Open source vs closed source.
(d) Translators: Interpreters, compilers and assemblers.
(e) Stages of compilation (lexical analysis, syntax analysis, code generation and optimisation).
(f) Linkers and loaders and use of libraries.
1.2.3 Software Development
(a) Understand the waterfall lifecycle, agile methodologies, extreme programming, the spiral model and rapid application development.
(b) The relative merits and drawbacks of different methodologies and when they might be used.
(c) Writing and following algorithms.
1.2.4 Types of Programming Language
(a) Need for and characteristics of a variety of programming paradigms.
(b) Procedural languages.
(c) Assembly language (including following and writing simple programs with the Little Man Computer instruction set).
(d) Modes of addressing memory (immediate, direct, indirect and indexed).
(e) Object-oriented languages with an understanding of classes, objects, methods, attributes, inheritance, encapsulation and polymorphism.

Recommended Resources

1.2.3 Software Development
1.2.4 Types of Programming Language

Assembly Language

Assembly language is a low-level programming language. Each assembly language is specific to a particular computer architecture. Assembly language uses mnemonics to represent low-level machine instructions or opcodes. Many operations require one or more operands in order to form a … Continue reading


Understanding Memory Address Modes

There are many ways to locate data and instructions in primary memory and these methods are called “memory address modes”. Memory address modes determine the method used within the program to access data either from the Cache or the RAM. … Continue reading


Object-Oriented Programming Concepts

Object-Oriented Programming (OOP) is a programming approach based on objects and classes. The object-oriented paradigm allows us to organise software as a collection of objects that consist of both data/attributes and behaviours. This programming concept appeared in the 1980s and … Continue reading


LMC Challenges
LMC Simulator LMC Mini Challenges LMC Burglar Alarm LMC 5-4-3-2-1 LMC Max Function LMC Countdown Timer LMC Higher or Lower Game LMC Finding the factors of… LMC Step Count Algorithm LMC Fibonacci Sequence LMC Triangular Numbers LMC Trace Table LMC Multiplication LMC Factorial


Procedural Programming
Procedural Programming Drag and Drop Sequencing, Selection and Iteration Quiz Procedural Programming Crossword Procedural Programming – Code Spotlight Procedural Programming Concepts – Q&A Procedural Programming Terminology


Prolog Challenges
Solving a Murder Mystery Using Prolog Sorting Hat Challenge (Prolog) Family Tree Challenge (Prolog) Food Web Challenge (Prolog)


OOP Challenges
OOP Quiz! OOP Terminology OOP Crossword Inheritance Q&A Encapsulation Q&A Classes & Objects Multimedia Library (OOP) My MP3 Playlist (OOP) Shopping Basket Class

Further Reading…

OCR H446/01 – 1.1 The characteristics of contemporary processors, input, output and storage devices

1.1 The characteristics of contemporary processors, input, output and storage devices - Overview / Checklist
1.1.1 Structure and function of the processor
(a) The Arithmetic and Logic Unit; ALU, Control Unit and Registers (Program Counter; PC, Accumulator; ACC, Memory Address Register; MAR, Memory Data Register; MDR, Current Instruction Register; CIR). Buses: data, address and control: how this relates to assembly language programs.
(b) The Fetch-Decode-Execute Cycle; including its effects on registers.
(c) The factors affecting the performance of the CPU: clock speed, number of cores, cache.
(d) The use of pipelining in a processor to improve efficiency.
(e) Von Neumann, Harvard and contemporary processor architecture
1.1.2 Types of processor
(a) The differences between and uses of CISC and RISC processors.
(b) GPUs and their uses (including those not related to graphics).
(c) Multicore and Parallel systems.
1.1.3 Input, output and storage
(a) How different input, output and storage devices can be applied to the solution of different problems.
(b) The uses of magnetic, flash and optical storage devices.
(c) RAM and ROM.
(d) Virtual storage.

Recommended Resources

Further Reading…

UK Legislation relevant to Computer Science

As a computer scientist, you need to be aware of the legislation that is relevant to the use of Computer Science related technologies.

Whether you are designing a new website, creating a computer program or system or just using a computer in your work, you have to make sure you are always acting lawfully.

In the UK, there are three main acts that are very relevant to the use of computer science technologies:

  1. The Copyright, Designs & Patents Act
  2. The Data Protection Act
  3. The Computer Misuse Act

Let’s find out more about this legislation.

The Copyright, Designs & Patents ActThe Data Protection ActThe Computer Misuse Act

The Copyright, Designs & Patents Act

This act provides a legal means of ensuring that content creators can protect the work they have produced.

When anyone creates something, they automatically own it. This could include:

  • a picture, drawing or photograph
  • an animation, a film or a video clip
  • a sound file, podcast or music
  • a piece of text incl. an article, news report, blog post or a book
  • a video game or a computer program (e.g. source code)

When using copyrighted material, it is illegal to…

  • Make copies
  • Publish
  • Distribute
  • Sell copies

…unless you have been given permission by the copyright owner.

The Data Protection Act

The purpose of this act is to ensure our personal data is being used and dealt with sensibly.

Example of personal data:

  • Name and address
  • Date of birth
  • Employment records
  • Medical records
  • Religion/faith

This act stipulates that personal information stored on a computer system must be kept securely.

Personal data shall be processed fairly and lawfully in accordance with the rights of data subjects.

When an organisation stores personal data about individuals on a computer system, they must only store data that is relevant/necessary, accurate and up-to-date.

Personal data kept by an organisation on a computer system shall not be kept for longer than is necessary and should be deleted if it is no longer needed.

When personal data is shared with a third party, it has to be done fairly and lawfully, securely and with the permission of the data subject.

The Computer Misuse Act

The purpose of this act is to discourage people from accessing computer systems without permission (hacking) whether to intend to commit further illegal activities or not.

This acts make it illegal to access data on a computer when that material will be used to commit further illegal activity, such as fraud or blackmail.

It is also illegal to access and change the contents of someone’s files without their permission. It is therefore illegal to install a virus or other malware on someone’s computer as this is done without their consent.

UK Legislation: Drag and Drop Task

Complete the following activity to test your understanding of the three main UK legislation relevant to Computer Science.
UK Legislation – Drag and DropOpen in New Window

Types of Software

A computer system is made of both hardware and software.

The hardware components of a computer systems are the physical components of the system and include the motherboard, the CPU, RAM and ROM and all input, output and output devices.

Software consists of the computer programs that run on hardware. They fall into three main categories:

Operating Systems


The Operating System is an essential software needed to operate a computer. The Operating System is responsible for:

  • Process Management & Multitasking: The operating system allocates CPU time to the different jobs being processed by the CPU and may allow for multitasking, enabling the end-user to work on different applications at the same time.
  • Memory Management: The Operating System allows the user to load files and applications into the primary memory (RAM) and to remove these from RAM when they are no longer needed.
  • File Management: The Operating System lets the user organise their files in a folder structure. Users can create, rename, delete or move folders, subfolders and files that will be stored by the Operating System on the secondary storage devices.
  • Providing a User Interface to allow the user to interact with the computer. On a laptop or desktop computer most Operating systems (e.g. Windows, MacOs, Linux etc.) provide a Graphical User Interface (GUI) enabling the user to open apps in separate windows, use the mouse pointer to click on menus and icons. Similar Graphical User Interfaces are also available on smartphones running an iOS or Android Operating Systems.
  • User Management: Maintaining User Accounts and Access Levels: The operating system enables users to authenticate themselves often using a username or password or, on more recent smartphones, a fingerprint scanner or facial recognition software. Once logged in, the identified user will be given access to their own files, folders and settings based on their access-level
  • Peripheral Management: Managing the hardware including input, output and storage devices: The Operating System is the only software that will communicate with the different hardware components to decide what to display on screen, where to save or retrieve a file on secondary storage, what information to send to the printer, etc…

Drivers

To enable the Operating System to communicate with a wide range of hardware peripherals from many different manufacturers it is sometimes required to install drivers which are used to teach the OS how to communicate with a specific peripheral. (e.g. When connecting a new printer or game controller, you may have to install the required driver first).

Utility Software

Utility software is specific software that performs tasks to help with maintaining the computer system, to optimise the resources and keep the system secure.

There is a wide range of utility software including:

  • File Management software to help you organise your files using folders and sub-folders, move, rename or delete files and folders.
  • Disk cleanup software to help you free up space on your hard disk, and hence improve system performance. Disk cleanup software scans your disk to locate temporary files, Internet cache files, and other unnecessary program files that you can safely delete to free up space.
  • Defragmentation software is used to reorganise/optimise how files are stored on a hard-disk drive resulting in reduced read/write time when accessing files.
  • Backup software can be used to perform regular automated backup of all your files. Taking a backup of your files can be useful in case you have lost a file or your files are corrupted.
  • File compression software is used to create compressed files or group of files to save space on your secondary storage or to save time when transferring these files across the Internet.
  • Anti-virus and Anti-malware software that scan the content of your hard-disk drive to identify and quarantine potentially infected files and other malware such as trojan horses, worms, spyware or ransomware.
  • Firewall Software can be used to scan all incoming and outgoing traffic from/to your computer and block malicious requests and potential hacking attempts.
  • Encryption software is used to encrypt sensitive information before either storing it (e.g. Password Management Software) or before sending it across the network/ the Internet

Application Software

Application software is the main software that you will want to use when on your computer, tablet or smart phone. It incudes software such as:

  • Word Processing Software,
  • Spreadsheet Software,
  • Presentation Software,
  • Graphic & Photo Editing Software,
  • Video Editing Software,
  • Web Browsers.

Most of the Apps you use on your smartphone are also examples of application software.


Types of Software – Drag and DropOpen in New Window

OCR J277/02 – 2.2 – Programming fundamentals

2.2 – Programming fundamentals - Overview / Checklist
2.2.1 Programming fundamentals
The use of variables, constants, operators, inputs, outputs and assignments
The use of the three basic programming constructs used to control the flow of a program:

    Sequence
    Selection
    Iteration (count- and condition-controlled loops)

The common arithmetic operators
The common Boolean operators AND, OR and NOT

2.2.2 Data types
The use of data types:

    Integer
    Real
    Boolean
    Character and string
    Casting
2.2.3 Additional programming techniques
Standard searching algorithms:

    Binary search
    Linear search

Standard sorting algorithms:

    Bubble sort
    Merge sort
    Insertion sort

The use of basic string manipulation
The use of basic file handling operations:

    Open
    Read
    Write
    Close

The use of records to store data
The use of SQL to search for data
The use of arrays (or equivalent) when solving problems, including both one-dimensional (1D) and two-dimensional arrays (2D)
How to use sub programs (functions and procedures) to produce structured code
Random number generation

Recommended Resources

2.2.3 Additional programming techniques

OCR J277/02 – 2.5 – Programming languages and Integrated Development Environments

2.5 – Programming languages and Integrated Development Environments - Overview / Checklist
2.5.1 Languages
Characteristics and purpose of different levels of programming language:

    High-level languages
    Low-level languages

The purpose of translators
The characteristics of a compiler and an interpreter

2.5.2 The Integrated Development Environment (IDE)
Common tools and facilities available in an Integrated Development Environment (IDE):

    Editors
    Error diagnostics
    Run-time environment
    Translators

Recommended Resources

2.5.2 The Integrated Development Environment (IDE)

OCR J277/02 – 2.1 – Algorithms

2.1 – Algorithms - Overview / Checklist
2.1.1 Computational thinking
Principles of computational thinking:

    Abstraction
    Decomposition
    Algorithmic thinking
2.1.2 Designing, creating and refining algorithms
Identify the inputs, processes, and outputs for a problem
Structure diagrams
Create, interpret, correct, complete, and refine algorithms using:

    Pseudocode
    Flowcharts
    Reference language/high-level programming language

Identify common errors
Trace tables

2.1.3 Searching and sorting algorithms
Standard searching algorithms:

    Binary search
    Linear search

Standard sorting algorithms:

    Bubble sort
    Merge sort
    Insertion sort

Recommended Resources

2.1.3 Searching and sorting algorithms

Bubble Sort vs. Insertion Sort

Computers are often used to sort large amounts of data (e.g. numerical order or alphabetical order). Though this may seem like a simple task to complete, a lot of research has focused on finding the most effective approach to sort … Continue reading


Merge Sort Algorithm

Computers are often used to process large amounts of data. Some of the tasks they can be used for is to sort data sets in order, e.g. numerical order or alphabetical order. Though this may seem like a simple task … Continue reading


Sorting Algorithms

Computers are often used to process large amounts of data. Some of the tasks they can be used for is to sort data sets in order, e.g. numerical order or alphabetical order. Though this may seem like a simple task … Continue reading


Searching & Sorting Algorithms Practice

The searching and sorting algorithms are key algorithms that you will study in computer science. Most computer programs involve some searching and sorting features so these key algorithms are often used when coding various computer programs. Searching and sorting algorithms … Continue reading


Linear Search Functions

For this programming challenge we will investigate different functions which will all be based on a linear search algorithm. Let’s consider a teacher who has decided to keep track of rewards issued to their students throughout the term by adding … Continue reading


BubbleSort Algorithm – Visualisation Insertion Sort Algorithm – Visualisation

Further Reading…

OCR J277/02 – 2.4 – Boolean logic

2.4 – Boolean logic - Overview / Checklist
2.4.1 Boolean logic
Simple logic diagrams using the operators AND, OR and NOT
Truth tables
Combining Boolean operators using AND, OR and NOT
Applying logical operators in truth tables to solve problems

Recommended Resources

2.4.1 Boolean logic

Logic Gates Challenges

For this set of challenges, your task is to design logic gates circuits in order to produce the desired output for the given inputs as described in each challenge. You can combine as many logic gates as necessary using the … Continue reading


Logic Gates Circuits

This set of challenges is designed to be completed with a logic board such as the Logic & Arithmetic board designed by the University of Southampton and the UK Electronic Skills Foundation. Alternatively, if you do not have access to … Continue reading


Logic Gates & Truth Tables

Learning Objectives In this post you will predict the output of logic gates circuits by completing truth tables. First you need to learn the basic truth tables for the following logic gates: AND Gate OR Gate XOR Gate NOT Gate … Continue reading


Logic Gates Diagrams

Learning Objectives In this post you will practise drawing logic gates diagrams using the following logic gates: AND Gate OR Gate XOR Gate NOT Gate First you will need to learn the shapes/symbols used to draw the four main logic … Continue reading


Design your own Logic Gates Circuits

In this blog post your will use our logic gates circuits simulator to create and test your own circuits. Circuit #1 Our first circuit will be based on the following Boolean Expression: Click on the above circuit to open it … Continue reading


Logic Gates Circuits in Cars

In this set of challenges you will design and test some logic gates circuits to control different automated features of a car including: Automatic Headlights System Interior Light System Automatic Windscreen Wipers System Did you like this challenge? Click on … Continue reading


Logic Gates Circuits used in a Theme Park

In this set of challenges, you will design and test some logic gates circuits to control different automated systems used to control the following rides of a Theme park: Ferris Wheel Drop Tower Roller Coaster Did you like this challenge? … Continue reading


LED Dice Logic Gates Diagrams

LED Dice Our aim is to create an LED Dice using a breadboard and 7 LEDs disposed as follows: We will then use three buttons/switches to control the 7 LEDs of the dice to recreate the following patterns: Octal Number … Continue reading


Binary Logic Activities

Access a range of activities about binary logic, logic gates, truth tables and Karnaugh maps … Continue reading


Further Reading…

OCR J277/02 – 2.3 – Producing robust programs

2.3 – Producing robust programs - Overview / Checklist
2.3.1 Defensive design
Defensive design considerations:

    Anticipating misuse
    Authentication

Input validation
Maintainability:

    Use of sub programs
    Naming conventions
    Indentation
    Commenting
2.3.2 Testing
The purpose of testing
Types of testing:

    Iterative
    Final/terminal

Identify syntax and logic errors
Selecting and using suitable test data:

    Normal
    Boundary
    Invalid/Erroneous

Refining algorithms

Recommended Resources

Further Reading…

OCR J277/01 – 1.6 – Ethical, legal, cultural and environmental impacts of digital technology

1.6 – Ethical, legal, cultural and environmental impacts of digital technology - Overview / Checklist
1.6.1 Ethical, legal, cultural and environmental impact
Impacts of digital technology on wider society including:

    Ethical issues
    Legal issues
    Cultural issues
    Environmental issues
    Privacy issues

Legislation relevant to Computer Science:

    The Data Protection Act 2018
    Computer Misuse Act 1990
    Copyright Designs and Patents Act 1988
    Software licences (i.e. open source and proprietary)

Recommended Resources

1.6.1 Ethical, legal, cultural and environmental impact

UK Legislation relevant to Computer Science

As a computer scientist, you need to be aware of the legislation that is relevant to the use of Computer Science related technologies. Whether you are designing a new website, creating a computer program or system or just using a … Continue reading


The Environmental Impacts of Computer Science

This post is part of series of blog posts investigating different ethical, environmental and legal impacts of Computer Science in today’s world.


Unveiling the World of Ethical Hacking

This post is part of series of blog posts investigating different impacts of UK legislation relevant to Computer Science with a particular focus on: Data Protection Legislation Intellectual Property Protection (incl. Copyright and Trade Marks legislation) Computer Misuse Act (1990)


The MafiaBoy dDoS attack

This post is part of series of blog posts investigating different impacts of UK legislation relevant to Computer Science with a particular focus on: Data Protection Legislation Intellectual Property Protection (incl. Copyright and Trade Marks legislation) Computer Misuse Act (1990)


The Hyperlink Patent Case and the Copyright, Designs and Patents Act

This post is part of series of blog posts investigating different impacts of UK legislation relevant to Computer Science with a particular focus on: Data Protection Legislation Intellectual Property Protection (incl. Copyright and Trade Marks legislation) Computer Misuse Act (1990)


Mickey Mouse Enters the Public Domain

This post is part of series of blog posts investigating different impacts of UK legislation relevant to Computer Science with a particular focus on: Data Protection Legislation Intellectual Property Protection (incl. Copyright and Trade Marks legislation) Computer Misuse Act (1990)


The Cadbury Ruling: Can Colours be Trademarks in the UK?

This post is part of series of blog posts investigating different impacts of UK legislation relevant to Computer Science with a particular focus on: Data Protection Legislation Intellectual Property Protection (incl. Copyright and Trade Marks legislation) Computer Misuse Act (1990)


The Salami Hack & the Computer Misuse Act Legislation

This post is part of series of blog posts investigating different impacts of UK legislation relevant to Computer Science with a particular focus on: Data Protection Legislation Intellectual Property Protection (incl. Copyright and Trade Marks legislation) Computer Misuse Act (1990)


Impacts of Computer Science Technologies on Society – BBC Bitesize Data protection legislation and privacy – BBC Bitesize The Computer Misuse Act 1990 – BBC Bitesize The Copyright, Designs and Patents Act 1988 – BBC Bitesize Open source and proprietary software – BBC Bitesize