Search CSNewbs
304 results found with an empty search
- 6.4 - Protection Measures | Unit 2 | OCR Cambridge Technicals | CSNewbs
Learn about ways to measure the success of protection. Based on the 2016 OCR Cambridge Technicals Level 3 IT specification for Unit 2 (Global Information). 6.4 - Protection Measures Exam Board: OCR Specification: 2016 - Unit 2 Staff Responsibilities It is the staff of an organisation that will spend the most time handling and amending data so the company must have sufficient and effective protection measures in place so that staff are confident in their role and know their responsibilities of information security. Certain staff members may be responsible for types of data within an organisation, such as personal and confidential data. Clearly assigning specific people to roles ensures that they know what their job is and that they are responsible if data is lost. Organisations also need to carefully consider which members of staff have access rights to certain information. If data is sensitive or confidential then the more people that have access to that data , the higher the risk of it being lost or tampered with (accidentally or on purpose). Sensitive data should only be handled and accessed by those who need to use it as part of their job role to limit the chance of data loss. Staff should be trained so that they know how to adequately handle information including basic data security techniques and how to protect data from unauthorised access and loss. Disaster & Recovery Planning With important data often stored on a computer network, it is absolutely vital that a detailed and effective disaster recovery policy is in place in the event of data being lost due to an unexpected disaster. Disasters include natural disasters (e.g. fire, flood, lightning), hardware failure (e.g. power supply unit failing), software failure (e.g. virus damage) and malicious damage (e.g. hacking). There are three clear parts to a disaster recovery policy: Before the disaster: All of the possible risks should be analysed to spot if there are any weaknesses in preparation. Preventative measures should be taken after the analysis, such as making rooms flood-proof or storing important data at a different location . Staff training should take place to inform employees what should happen in the event of a disaster. During the disaster: The staff response is very important – employees should follow their training and ensure that data is protected and appropriate measures are put in place. Contingency plans should be implemented while the disaster is taking place, such as uploading recent data to cloud storage or securing backups in a safe room and using alternative equipment until the disaster is over. After the disaster: Recovery measures should be followed, such as using backups to repopulate computer systems. Replacement hardware needs to be purchased for equipment that is corrupted or destroyed. Software needs to be reinstalled on the new hardware. Disaster recovery policies should also be updated and improved . Assessment and Effectiveness Organisations should conduct information security risk assessments periodically to ensure that their physical and logical measures are up-to-date and that they provide the most effective methods of protection. There may be training drills of what should happen if a disaster or substantial data loss occurs so that the company is prepared . By testing the security measures in place, they can identify any weak-points and fix those highlighted vulnerabilities to minimise the possibility of external and internal data intrusion. As part of an organisation's security assessment, they may identify specific cost impacts . These are necessary financial expenditures to ensure the security of data and systems, such as: Software - e.g. security software such as firewalls may be purchased to protect networked systems. Hardware - e.g. buying secure storage devices and new computer systems. Training - e.g. hiring industry experts to train staff on how to keep data secure. Security - e.g. hiring staff to protect server rooms. Q uesto's Q uestions 6.4 - Protection Measures: 1. Describe why staff are so important when it comes to data protection . [3 ] 2. Explain the steps an organisation should take as part of a disaster recovery plan . Split your answer into before, during and after the disaster. [12 ] 3. Why is it important to conduct information security risk assessments ? [2 ] 4. Describe two cost impacts to a bank of keeping customer data secure. [4 ] 6.3 - Impacts Topic List 6.5 - Physical Protection
- Greenfoot | Key Code | CSNewbs
A glossary of important code to be used in Greenfoot, such as random movement, using a counter removing objects and sound. Aimed at the Eduqas / WJEC GCSE specification. Greenfoot Code Glossary Greenfoot Home This code will work for Version 2.4.2 which is used in Component 2 of the 2016 WJEC/Edquas specification . Key Down 270 if (Greenfoot.isKeyDown("right" )) { setRotation(0); move(1); } 180 90 0 Bounce At Edge if (isAtEdge()) { turn(180); } move(1); if (Greenfoot.getRandomNumber(10)<1) { turn(Greenfoot.getRandomNumber(90) - 45); } Random Remove Object if (isTouching(Apple.class )) { removeTouching(Apple.class ); } Play Sound Greenfoot.playSound("pop.wav" ); Stop Greenfoot.stop(); Counter - (Write this code when an object is removed) Counter counter = (Counter) getWorld().getObjects(Counter.class ).get(0); counter.add(1); Stuck? If you start typing but can't remember what commands come next, press Ctrl and Space together to show a list of all possible commands that you can use.
- OCR CTech IT | Unit 1 | 5.4 - Physical Security | CSNewbs
Learn about methods of physically protecting data such as biometric devices, RFID and tokens, privacy screens and shredding. Based on the 2016 OCR Cambridge Technicals Level 3 IT specification. 5.4 - Physical Security Exam Board: OCR Specification: 2016 - Unit 1 RFID & Tokens Radio-frequency identification (RFID) uses electromagnetic fields to attach tags to physical objects . RFID tags can be embedded within 'dumb' objects such as clothing, packages and even animals. RFID is used with security tokens (such as an ID keycard ) to permit the access of authorised people to certain areas. RFID can be used by IT companies to track equipment and manage access . Shredding This is the cutting up of documents (paper or CDs ) into small pieces so that they cannot be reassembled and read. Sensitive data on paper or optical disc should be shredded when no longer required. Locks A lock can be used to prevent access to server rooms or sensitive data stores . Only authorised personnel with the right key will have access. Physical Security Measures Biometrics Biometric devices require the input of a human characteristic (such a fingerprint , iris or voice scan ). The biometric data is checked against previously inputted data in a database . A match will allow access to the user. See more in section 1.1 . Privacy Screens These plastic screens are placed over a monitor to obscure the screen to anyone except the person sitting directly in front of them. This prevents shoulder surfing and prevents data from being read by unauthorised people nearby. Q uesto's Q uestions 5.4 - Physical Security: 1. Explain how locks can be used as a physical security method within an organisation. [2 ] 2. Explain what RFID is and how it can be used with tokens as a physical security method. [3 ] 3. Explain how biometric devices can be used as a physical security method. [3 ] 4. Explain how privacy screens are used to protect data. [2 ] 5. What is the purpose of shredding ? [2 ] 5.3 - Threats Topic List 5.5 - Digital Security
- Greenfoot Guide #3 | Random Movement | csnewbs
Learn how to edit code in Greenfoot to make objects move randomly across the screen. This can be used on 'enemy' objects. Part 3 of the Greenfoot Tutorial for the Eduqas / WJEC GCSE 2016 specification. 3. Random Movement 1. Code for Random Movement Greenfoot Tutorial Watch on YouTube: Right-click on your enemy class on the main screen and select ' Open editor '. The enemy character should always be moving, so start with move(1); Next we will use an if statement to start the random movement. This code generates 10 random numbers and if it is less than 1 then it will run the proceeding code. If we don't do this, the character will turn too much or too little . This code generates a random angle between 0 and 90. The - 45 part is necessary otherwise the character will always move to the right . See the diagram below for an explanation: 2. Bounce at World Edge You may have noticed that the enemy objects can get 'stuck' in the corners or when they hit the edge of the world. In the act() method, below the random movement code , add the code in the red box . This code checks to see if the object is at the edge , and turns it around ( 180 degrees ) if it is. 3. Compile and Run Click the Compile button at the top of the code editor . Then you can go back to the main Greenfoot window and click Run to test if your enemy objects move . Click on me if you've got an error that you're stuck with. < Part 2 - Movement with the Arrow Keys Part 4 - Remove Objects >
- 1.3 - Primary Storage - Eduqas GCSE (2020 spec) | CSNewbs
Learn about the five types of primary storage - RAM, ROM, cache, flash and virtual memory. Based on the 2020 Eduqas (WJEC) GCSE specification. 1.3: Primary Storage (Memory) Exam Board: Eduqas / WJEC Specification: 2020 + Storage in a computer system is split into two categories. Primary Storage: Very quick to access because it is attached to the motherboard . Typically smaller in storage size . Sometimes called ‘main memory’ . Secondary Storage: Slower to access because it is not directly embedded on the motherboard . Typically larger in storage size . Sometimes called ‘backing storage’ . Storage is also split into two types - volatile and non-volatile . Volatile storage is temporary - data is lost whenever the power is turned off . Example: RAM Non-volatile storage saves the data even when not being powered . Data can be stored long-term and accessed when the computer is switched on . Example: ROM Types of Primary Storage (Memory) Random Access Memory (RAM) RAM is volatile (temporary) storage that stores all programs that are currently running . RAM also stores parts of the operating system to be accessed by the CPU. RAM is made up of a large number of storage locations, each can be identified by a unique address . Read-Only Memory (ROM) Cache Memory ROM is non-volatile storage that cannot be changed . ROM stores the boot program / BIOS for when the computer is switched on. The BIOS then loads up the operating system to take over managing the computer. Cache memory is volatile (temporary) storage that stores data that is frequently accessed . It is very quick to access because it is closer to the CPU than other types of memory like RAM. The three levels of cache memory are explained in more detail in 1.5 . RAM ( R andom A ccess M emory) ROM ( R ead O nly M emory) Cache Memory Flash Memory Flash memory is editable so it can be read and written to . It is also non-volatile so it can be used for long-term data storage even when the system is not powered on. Flash memory is also used for secondary storage devices like USB sticks and solid-state drives - see 1.4 . Virtual Memory When a computer system is running slowly and RAM is near full capacity , the operating system will convert storage space on the drive into temporary memory . This virtual memory slows the system down because it takes longer to access the drive than it does to manage RAM. Transferring data between RAM and virtual memory is called paging . Q uesto's Q uestions 1.3 - Primary Storage (Memory): 1. Describe the differences between primary and secondary storage . This could be done in a table with the column headings 'access speed' , 'storage size' and 'also known as' . [ 6 ] 2. Explain the difference between volatile and non-volatile storage . State an example of both types. [ 4 ] 3. For each type of memory below, describe it and state what information is stored within it: a . Random Access Memory (RAM) [3 ] b. Read-Only Memory (ROM) [ 3 ] c. Cache memory [ 3 ] d. Flash memory [ 3 ] e. Virtual memory [ 3 ] 1.2 - FDE Cycle 1.4 - Secondary Storage Theory Topics
- HTML Guide 2 - Essential Tags | CSNewbs
Learn what a tag is in HTML and which ones are necessary to format a webpage ready for text and other content. 2. Creating Essential Tags HTML Guide Watch on YouTube: What is a tag ? HTML uses tags to define the content of a webpage . A tag uses angle brackets - they look just like my teeth... Some examples of tags are and and Most tags have a start tag and an end tag . The actual content is written in between the tags . For example : The p tag is used to write a paragraph Notice that the end tag uses a forward slash . < > Essential Tags There are three tags that are essential for every HTML web page : - This tag declares the start and the end of your html web page. - The head is the part of the web page that the user will not see. - The body holds all of the content of the web page (text, images, video etc.) Don't forget to use backslash for the end tags : / Use the image on the right to add the three essential tags (and their end tags) to your document. Now it is time to add something we can actually see! Text tags are up next. 1. Setup HTML Guide 3. Text Tags
- Python | 4b - Mathematical Operators | CSNewbs
Learn how to use mathematical operators in Python. Try practice tasks and learn through text and images. Perfect for students learning GCSE Computer Science in UK schools. top Python 4b - Mathematical Operators Modulo Division The modulo operator - the percentage symbol % - will work out the remainder left over when one value is divided by another. print (30 % 6) = 0 30 ÷ 6 = 5, which is a whole number, so there is no remainder and 0 is output . print (30 % 7) = 2 30 ÷ 7 = 4 remainder 2 ; so the remainder is output . You can use modulo with variables too: num1 = 33 num2 = 4 print ( "The remainder is" , num1 % num2) The remainder is 1 = A common use of modulo is to check if a number is odd or even . If a number has no remainder when divided by 2 then it is even . = num = int ( input ( "Enter a number: " )) if num % 2 == 0: print (num, "is even." ) else : print (num , "is odd." ) Enter a number: 400 400 is even. Enter a number: 191 191 is odd. = Modulo Div i sion Task 1 ( Remainder) Ask the user to input a whole number . Use the modulo operator ( % ) to check if there is a remainder when the user's number is divided by 5 . Print the re mainder. Example solution: Enter a number: 123 The remainder when divided by 5 is 3 Modulo Div i sion Task 2 ( Rollercoaster) Use the odd/even program above to help solve this problem: A rollercoaster only lets people on in groups of 4 . Ask the user to input a number for how many people are in their group. Check if that number is directly divisible by 4 using modulo division ( % ). If it is then print “Perfect groups of four!” Else print “You will be split up” . Example solutions: Welcome to the Hyper Coaster! How many in your group? 6 You will be split up! Welcome to the Hyper Coaster! How many in your group? 12 Perfect groups of four! Integer Division Integer division removes any decimal numbers when performing division , leaving just the integer (whole number ). In Python integer division is performed using // . print (20 / 3) print (20 // 3) = 6.666666666666667 6 Integer Div i sion Task 1 ( Integer Division by 5 ) Use an input line with int to ask the user to enter a number . Use integer division ( // ) to divide the number by 5 without keeping any decimal values . Challenge: Improve your solution by altering the print line to be more user friendly . Example solutions: Enter a number: 27 5 Enter a number: 27 5 goes into 27 5 times. Integer Div i sion Task 2 ( Plane Rows) A large plane has 6 seats in each row. Input the number of passengers on the plane and use integer division to work out how many full rows will be filled. Example solution: How many passengers are there in total? 174 There will be 29 full rows on the plane. Exponent (Powers) An exponent is the number of times a value is multiplied by itself , for example 2 = 2 x 2 x 2 = 8 . The symbol to represent an exponent in Python is ** . For example: 4**2 represents 4 which is also 4 x 4 . 3 2 print (4**4) = 256 base = 5 exponent = 4 print (base**exponent) 625 = Exponent Task 1 ( Square Number) Use an input line with int to ask the user to enter a number . Output the square of this number. Example solution: Enter a number: 12 12 squared is 144 Exponent Task 2 ( Custom Exponent) Use an input line with int to ask the user to enter a number, this will be the base . Make another input line with int to ask for the exponent . Use ** between the base and the exponent and print it. Challenge: Make your solution better by including the base and exponent in the print line. Example solutions: Enter the base: 7 Enter the exponent: 3 343 Enter the base: 7 Enter the exponent: 3 7 to the power of 3 is 343 ⬅ 4a - If Statements 4 c - Log ical Operators ➡
- 2.1 - Data Formats & Types | F161 | Cambridge Advanced National in Computing | AAQ
Learn about data formats such as ASCII, Unicode, CSV, fixed-width, JSON and XML and data types, including Boolean, character, date, integer, real and string. Resources based on Unit F161 (Developing Application Software) for the OCR Cambridge Advanced Nationals in Computing (H029 / H129) AAQ (Alternative Academic Qualification). Qualification: Cambridge Advanced Nationals in Computing (AAQ) Certificate: Computing: Application Development (H029 / H129) Unit: F161: Developing Application Software 2.1 - Data Formats & Types Watch on YouTube : Data Formats Data Types You need to know the characteristics , uses , advantages and disadvantages of six data formats (ASCII , Unicode , CSV , fixed-length , JSON and XML ). You also need to know the characteristics , uses , advantages and disadvantages of six data types (Boolean , character , date , integer , real and string ). What You Need to Know Data Formats ? YouTube video uploading soon Data Types ? YouTube video uploading soon Q uesto's Q uestions 2.1 - Data Formats & Types: 1. What? [2 ] 2. What? [1 ] 3. What? [1 ] 4. What? [1 ] ? D id Y ou K now? 1.3 - Storage Topic List 2.2 - Data Flow
- 8.4 - Validation & Verification - Eduqas GCSE (2020 Spec) | CSNewbs
Learn about the six main validation checks - range, type, length, format, lookup table and presence. Also, discover three verification checks - double entry, proof-reading and check digits. Based on the 2020 Eduqas (WJEC) GCSE specification. 8.5: Validation & Verification Exam Board: Eduqas / WJEC Specification: 2020 + What are validation and verification checks? Validation is a process to check that data is reasonable or sensible before it is accepted . Verification is the process of checking that data is correct after it has been entered. Validation Checks Range Check Checks data is within a certain range . Age: 34 203 Type Check Checks data is a certain data type . Height (in cm): 182 Two metres Format Check Checks data is entered in a certain way . Date of Birth (DD/MM/YYYY) 25/03/2001 25th March 01 Presence Check Checks that data has actually been entered and not left blank . Password: fluffythecat123 Lookup Table A table of acceptable entries , also known as a list . Length Check Checks the length of the input is within a certain amount. Telephone Number 08323877319 07383 Verification Checks Double Entry Typing in the data twice to make sure there were no spelling errors the first time. Password: fluffythecat123 flufythecat123 Proofreading Checking two copies of data to ensure they are exactly the same . Check Digit Similar to a checksum in a data packet, a check digit is calculated on barcodes to ensure the rest of the numbers are correct . Address: 11 Cherry Lane 11 Cherry Road Confirm Q uesto's Q uestions 8.4 - Validation & Verification: 1. Describe each type of validation check and give an example . a. Range Check [ 3 ] b. Type Check [ 3 ] c. Format Check [ 3 ] d. Presence Check [ 3 ] e. Lookup Table (List) [ 3 ] f. Length Check [ 3 ] 2. For the following data, suggest which validation check would be most suitable and why : a. Password [ 3 ] b. Country of Birth [ 3 ] c. Number of Tickets [ 3 ] d. Weight (in kilograms) [ 3 ] 3. Describe three types of verification check and give an example : a. Double Entry [ 3 ] b. Proofreading [ 3 ] c. Check Digit [ 2 ] 8.4 - Sorting & Searching Theory Topics 9.1 - IDE Tools
- Key Stage 3 Python | Turtle | CSNewbs
The final part of a quick guide to the basics of Python aimed at Key Stage 3 students. Learn about importing turtle to command a moving object. Python - Iteration For Loops Editor Execute A for loop is a count controlled loop. It repeats for a certain number of times as stated in the range brackets. The first number (1) states the number to start on . The second number is an exclusive end . This means it actually finishes on the number before . (11 will end on 10). You need a colon at the end of the loop line . Each line to be repeated must be indented (press the tab key). You can use the loop number within the loop itself. 1. Write a for loop to print your name 8 times . (Count it to double-check it prints eight times.) 2. Use a for loop to print each number between 10 and 50 . 3. Use a for loop from 1 to 10 . Print the 3 times table by multiplying number by 3 underneath the loop. 4. Ask the user to input a whole number (call it num1 ). Write num1 in your range brackets to repeat any message that many times. 5. Ask the user to input a whole number (call it num1 ) and then input a word . Print the word by the number they entered . (Hint: Use num1 in the range.) 6. Delete your code and copy these 3 lines: #Delete the space after the colon for number in range(0,21,2): print(number) What happens when you run this code? 7. Use Q6 to help you print 0 to 100 , going up in 5s . Think about the 3 values you need in the range brackets. 8. Use Q6 to help you print 100 down to 0 , backwards by 1 . Think about the 3 values you need in the range brackets. Tasks While Loops Editor Execute A while loop is a condition controlled loop . While loops repeat as long as the condition is true . As soon as the condition becomes false , the loop will end . 1. Change the program in the editor to repeat the loop while a number is not equal to 33 . 2. Make a new while loop that asks the user to enter a whole number . While the number is less than or equal to 1000 , keep repeating. 3. Make a new while loop for while a colour is not equal to purple (or any colour you want). Ask the user to enter a colour inside of the loop . Don't forget to set colour to "" before you start. 4. Edit your colour program to count how many guesses were made. Make a new variable called count and set it to 0 at the start of the program. Increase it by 1 in the loop, using count = count + 1 . 5. While a total is less than 100 , ask the user to input a decimal number . When it is over 100 , print ‘COMPUTER OVERLOAD’ . You need a variable called total . Increase the total each time with total = total + number . Don't forget to start it at 0 . Tasks != means ‘not equal to ’. The loop below will repeat as long as the password is not equal to “abc123” . Any variable you use in your condition must have a value first . You can’t check for your password if it doesn’t exist. That’s why I have written password = “” , to give password a value before we check it .
- 2.1 - Programming Techniques | OCR A-Level | CSNewbs
Learn about programming constructs such as sequence, iteration and branching, recursion, local and global variables, modularity, functions and procedures, parameter passing by value and by reference, Integrated Development Environment (IDE) tools and object-oriented techniques. Based on the OCR H446 Computer Science A-Level specification. Exam Board: OCR A-Level Specification: Computer Science H446 2.1 - Programming Techniques Watch on YouTube : Programming constructs Recursion Local & global variables Modularity Integrated development environment Object-oriented programming Programming Constructs Sequence , iteration and branching (also called selection ) are the three fundamental programming constructs used to build algorithms . Sequence means that instructions run in a specific order , one after another. Iteration is the repetition of a set of instructions , usually being count-controlled , such as for loops , or condition-controlled , such as while loops or do until loops . Branching (selection ) allows a program to choose between different actions based on a condition , using structures like if , elif , else or switch . YouTube video uploading soon Recursion Recursion is where a function calls itself to solve a problem by breaking it down into smaller , simpler versions of the same problem . Recursion is often used for tasks that naturally fit a 'divide and conquer ' structure , such as quicksort and merge sort algorithms. It is also used for depth-first tree traversals and solving mathematical problems like factorials or the Fibonacci sequence . Compared to iteration , recursion can produce clearer and more elegant solutions , but it may use more memory and can be less efficient if the recursion goes too deep or lacks a proper base case (stopping condition ) , potentially running out of memory . YouTube video uploading soon Local & Global Variables Local variables are created inside a function or block and can only be accessed there , which makes programs safer and easier to debug because changes to the variable cannot affect other parts of the program ; however, they cannot store values that need to be shared across multiple functions . Global variables are declared outside all functions and can be accessed anywhere in the program , making them useful for storing information that many parts of the program need , but they can lead to errors if different functions accidentally change them and can make the program harder to maintain . YouTube video uploading soon Modularity Modularity is the practice of breaking a program into smaller , self-contained parts so each section can be developed , tested and understood independently . Functions and procedures are modular units of code: a function returns a value , while a procedure performs a task without returning a value . When data is passed into a subroutine , it can be passed by value , where a copy of the data is sent so the original cannot be changed , or passed by reference , where the subroutine receives direct access to the original data , allowing it to be modified . YouTube video uploading soon Integrated Development Environment An Integrated Development Environment (IDE ) is software that provides the tools a programmer needs to write , test and debug code in one place . It typically includes an editor for writing and formatting code , syntax highlighting to make keywords and errors easier to spot , and auto-completion to speed up coding . For debugging , an IDE often provides error diagnostics that highlight mistakes , a run-time environment to execute the program , and tools like breakpoints and step-through execution that allow the programmer to pause the program and inspect variables to find and fix bugs more easily . YouTube video uploading soon Object-Oriented Programming Object-oriented techniques are a way of designing programs by modelling them as collections of objects , each representing something with its own data and behaviours . These objects are created from classes , which act like blueprints describing the attributes (data ) and methods (actions ) an object will have . It uses key principles such as encapsulation (keeping an object’s data and methods together and protected ), inheritance (allowing classes to share and reuse features ) and polymorphism (enabling objects to behave differently ). These techniques make large programs easier to organise , maintain and extend by encouraging reusable , modular and well-structured code . YouTube video uploading soon This page is under active development. Check here for the latest progress update. Q uesto's K ey T erms Programming Constructs: sequence, iteration, selection (branching), if / elif / else, select (switch) case Recursion & Iteration: count-controlled loop, condition-controlled loop, recursion, base case Variables: local variable, global variable Modularity: function, procedure, parameter, pass by value, pass by reference Integrated Development Environment (IDE) Object Oriented Programming (OOP): class, object, method, attribute, inheritance, encapsulation, polymorphism D id Y ou K now? Roblox Studio is a free IDE for making Roblox games using the programming language Lua . With over 70m daily Roblox players , games built in Roblox Studio can reach a larger audience than many mainstream game engines . 1.1 - Computational Thinking A-Level Topics 2.2 - Computational Methods
- 5.1 - Data Structures - Eduqas GCSE (2020 Spec) | CSNewbs
Learn about different data structures such as arrays, lists and records. Also, the difference between static and dynamic data structures and how to design files. Based on the 2020 Eduqas (WJEC) GCSE specification. 5.1: Data Structures & File Design Exam Board: Eduqas / WJEC Specification: 2020 + What is a Data Structure? A data structure is a way of efficiently organising data . There are two general forms of data structures: Static Data Structures The size of a static data structure cannot change e.g. if a data structure has 20 elements, no additional elements can be added or removed. The values of the data elements can be changed, but memory size is fixed when allocated at compile time. Because a static data structure holds a certain number of data elements they are easier to program because the size of the structure and the number of elements never change. An array is an example of a static data structure. Examples: A static data structure could be an array of teams in the Premier League. The data elements will change each year when teams are relegated and promoted but there will always be 20 teams. Dynamic Data Structures The size of a dynamic data structure can change as the program is being run , it is possible to add or remove data elements. Dynamic data structures make the most efficient use of memory but are more difficult to program , as you have to check the size of the data structure and the location of the data items each time you use the data. A list is an example of a dynamic data structure. A dynamic data structure could be a list of all teams in the Premier League that won their last match. Data elements (teams) will be added or removed across the season. Types of Data Structures List A list is a dynamic data structure that has the data elements stored in the order they were originally added to memory . Every data structure starts at 0, not 1 . Lists store data elements in the order they were added, so the first doctor is 0 and the most recent doctor is 12. An example list of the main Doctor Who actors Array An array is a static data structure that can hold a fixed number of data elements . Each data element must be of the same data type i.e. real, integer, string. The elements in an array are identified by a number that indicates their position in the array. This number is known as the index. The first element in an array always has an index of 0 . You should know how to write pseudo code that manipulates arrays to traverse, add, remove and search data. The following steps uses Python as an example. Traversing an Array To traverse (' move through ') an array a for loop can be used to display each data element in order. 'Inserting' a value In an array the size is fixed so you cannot insert new values, but you can change the value of elements that already exist. Overwriting the fourth element (Daphne) with a new value (Laura) will change it from Daphne to Laura. Example code for traversing: Example code for inserting: Output: Output: 'Deleting' a value In an array the size is fixed so you cannot delete values, but you can overwrite them as blank . Overwriting the second element (Shaggy) with a blank space makes it appear deleted. Example code for deleting: Output: Searching an Array For large arrays a for loop is needed to search through each element for a specific value . This example checks each name to see if it is equal to Velma. Example code for searching: Output: Two-Dimensional Array Often the data we want to process comes in the form of a table . The data in a two dimensional array must still all be of the same data type , but can have multiple rows and columns . The two-dimensional array to the right shows the characters from Scooby Doo along with their associated colour and their species. Each value in the array is represented by an index still, but now the index has two values . For example [3] [0] is 'Daphne'. We measure row first , then column . Searching a two-dimensional array: To print a specific data element you can just use the index number like Daphne above. To search for a specific value you will need two for loops, one for the row and another for the values of each row. The example to the right is looking for the value of 'Velma' and when it is round it prints the associated data from the whole row. Example code for printing: Output: Example code for searching: Output: Records Unlike arrays, records can store data of different data types . Each record is made up of information about one person or thing. Each piece of information in the record is called a field (each row name). Records should have a key field - this is unique data that identifies each record . For example Student ID is a good key field for a record on students as no two students can have the same Student ID. Data files are made up of records with the same structure. It would be most efficient for the fields in a record to be stored next to each other so that the data can be read into the record data structure in memory for processing by the CPU. In an exam you may be asked to state and design a data structure for a given scenario. If the data structure can hold values of the same data type you should draw an array , usually a 2D array for multiple rows and columns. Remember that a record is required to store values of different data types . Example questions: "A video gamer has recorded their three lap times in four Mario Kart courses." " State and design the most suitable data structure for this data." A two-dimensional array is most suitable because only one data type ( real ) is stored. "A vet surgery stores data on all dogs and cats including the animal's name, age (in years), weight (in kg) and whether or not it has been vaccinated." " State and design the most suitable data structure for this data for four animals ." A record is most suitable because the data structure requires different data types . Q uesto's Q uestions 5.1 - Data Structures: 1. Give two differences between static and dynamic data structures . [ 4 ] 2. Describe the differences between a list , array and record . [ 3 ] 3. A one-dimensional array looks like this: TigerBreeds("Sumatran","Indian","Malayan,"Amur") Write the code to: a. Print the element with the index of 3. [ 2 ] b. Change Indian to South China. [ 2 ] c. Remove the Amur element. [ 2 ] d. Search through the array for 'Malayan'. [ 2 ] 4. State and design the most suitable data structure for these scenarios: a. For each book in a bookshop, the staff need to record the title, author, number of pages and whether or not it is a signed copy. Include data for three books. [ 3 ] b. Four dieters are recording how many kilograms they have lost each month for 5 months. [ 4 ] 5. Design a file that stores the first initial, surname, age and hair colour of each member of a family. [ 8 ] Designing Data Structures Data is stored in files when it needs to be kept after the program has stopped running . To learn how to write code for file handling (e.g. opening, writing to, reading from and closing files) in Python click here . Designing a file requires more than just the field name (e.g. Name) and data values (e.g. Rebecca). The data type (e.g. string) and any validation checks (e.g. format check) should also be considered. Below is an example file design for a bakery. Designing Files 4.8 Compression Theory Topics 6.1 - Operating Systems









