top of page

Search CSNewbs

Search this site

304 results found with an empty search

  • OCR CTech IT | Unit 1 | 1.6 - Hardware Troubleshooting | CSNewbs

    Learn about troubleshooting tests and information to record when a hardware error occurs. Based on the 2016 OCR Cambridge Technicals Level 3 IT specification. 1.6 - Hardware Troubleshooting Exam Board: OCR Specification: 2016 - Unit 1 What is troubleshooting? Troubleshooting means to analyse and solve a problem with a computer system. Hardware troubleshooting refers to fixing an issue with the physical parts of the computer or any connected devices. Hardware issues might occur as a result of damage (intentional or accidental), power surges or malware . Steps to Take When an Error Occurs Try to identify the problem by looking for the simplest explanation first (e.g. checking the power supply) and ask the user questions about the issue. Create a theory about what the cause of the problem could be and prepare to test the theory using a series of troubleshooting tests . Create a troubleshooting plan and record the steps that are taken before moving on to the next test. Check the system works after each stage of the plan. Create a findings document that explains if and how the problem was fixed, for future reference if the problem occurs again. Documentation Technicians and help desk (see 3.5 ) staff should document , on a fault sheet , the following information regarding the issue: The fault itself (such as 'system not turning on'). The system in question. The user logged in at the time. Exact date & time the problem occurred. Symptoms of the issue (such as 'slow load times' or 'beeping'). Problem history - checking if it has happened to this system before. Back up documentation - Whether the data been backed up recently. Troubleshooting Tools The following tools can be used to identify an error so a technician has a greater understanding of the problem. Event Viewer Event Viewer is a type of utility software that lists detailed information about an error when one occurs. It can be used to work out how to fix the issue and will display both minor and major faults. Power On Self Test (POST) On start-up, a power on self test (POST) checks memory, power, hardware and cooling systems are all working properly. Beep codes signal if an error has been detected; 1 beep will sound for no error but if multiple beeps are heard then an error has been discovered. Ping Test This is a connectivity test between two computers. A message is sent to the destination computer and waits for a return message named the echo reply . This procedure can be repeated with other systems until the source of the problem is identified from a computer that does not reply . Q uesto's Q uestions 1.6 - Hardware Troubleshooting: 1. Summarise the 'Steps to Take when an Error Occurs ' section into your own top three tips for what to do when a hardware error happens . [3 ] 2. List 6 pieces of information that an IT technician should record when a hardware error has occurred . [6 ] 3. Briefly explain the purpose of three troubleshooting tools . [6 ] 1.5 - Communication Hardware 1.7 - Units of Measurement Topic List

  • Python | 6b - While Loops | CSNewbs

    Learn how to create and use while loops in Python. Try practice tasks and learn through text and images. Perfect for students learning GCSE Computer Science in UK schools. top Python 6B - While Loops Types of Loop The third construct of programming (after Sequence and Selection) is Iteration . If you iterate something, then you repeat it. There are two key loops to use in Python: for loops and while loops . A for loop is count controlled – e.g. “For 10 seconds I will jump up and down”. The loop will continue until the count (e.g. 10 seconds) has finished . A while loop is condition controlled – e.g. “While I am not out of breath, I will jump up and down.” The loop will continue as long as the condition remains true . Simple While Loops A while loop keeps repeating as long as the starting condition is true . If the condition of the while loop becomes false , the loop ends . In this example, the number variable is increased by 1 inside of the loop until it is no longer less than or equal to 10 . number = 1 while number <= 10: print (number) number = number + 1 1 2 3 4 5 6 7 8 9 10 Comparison Operators == equal to != not equal to < less than <= less than or equal to > greater than >= greater than or equal to It is important to give the variable a value before you start the while loop . I have assigned number as 1. The last line increases the number by 1 otherwise the number would stay at 1 and the loop would repeat forever . While Loops Task 1 (Countdown from 100 ) Example solution (shortened): Create a simple while loop that starts at 100 and prints each number down to 1 . Think about the comparison operator you will need to check you have reached 1. 100 99 98 ... ... 3 2 1 Inputs Inside While Loops If you want the user to keep entering an input until they give a certain answer then you need to put the input inside the while loop : age = 0 while age < 18: print ( "Only adults allowed to the casino." ) age = int ( input ( "Enter your age: " )) print ( "Welcome and enjoy your visit." ) Only adults allowed to the casino. Enter your age: 14 Only adults allowed to the casino. Enter your age: 18 Welcome and enjoy your visit. month = " " while month != "July" : month = input ( "Guess the month I'm thinking of: " ) print ( "Correct! It was July!" ) Guess the month I'm thinking of: August Guess the month I'm thinking of: June Guess the month I'm thinking of: July Correct! It was July! Notice that the variable in the condition (age or month in these examples) has to be given a value first before it can be used in a while condition. The program will crash if the variable is not declared and assigned a value - for example, the age cannot be checked to see if it less than 18 if there is no age variable! For string variables like month in the example above then a blank default value like " " can be used. For integer variables often 0 will be used. While Loops Task 2 (Guess the Colour ) Example solution: Use a variable named colour and a while loop that allows the user to keep entering colours until a specific one (your choice) has been input. Guess the colour: blue Guess the colour: purple Guess the colour: yellow Correct! It was yellow! While Loops Task 3 (Integer Trivia ) Use a while loop to ask a question that has an integer (whole number) as an answer , such as "How many James Bond films did Daniel Craig appear in?" or "In which year did Wigan Athletic win the FA Cup?". Remember that integers do not use speech marks , e.g. year = 0 Example solution: Which year was the first Iron Man movie? 2010 Which year was the first Iron Man movie? 2009 Which year was the first Iron Man movie? 2008 Correct! It was 2008! While True Loops A while True loop will repeat indefinitely , only stopping when the break command is used to end the loop . While True loops are often preferred because you do not need to set default values for any variables before the loop begins. while True : password = input ( "Enter the password: " ) if password == "icecream21" : print ( "Correct Password!" ) break Enter the password: vanilla32 Enter the password: chocolate83 Enter the password: strawberry100 Enter the password: icecream21 Correct Password! The program below has been adapted to record the number of attempts made . The value is increased by 1 each time the loop restarts. guesses = 0 while True : guesses = guesses + 1 password = input ( "Enter the password: " ) if password == "goat7" : print ( "Correct Password! It took" ,guesses, "attempts!" ) break else : print ( "Incorrect. Try again!" ) Enter the password: sheep3 Incorrect. Try again! Enter the password: cow4 Incorrect. Try again! Enter the password: horse5 Incorrect. Try again! Enter the password: goat7 Correct Password! It took 4 attempts! The continue command will move to the next iteration (it can be considered as starting the loop again ). The program below allows numbers to be entered and keeps track of a running total. Entering 1 inputs a number, 2 displays the total and 3 stops the program. total = 0 while True : choice = input ( "\nType 1 to enter, 2 for a total and 3 to stop: " ) if choice == "1" : number = int ( input ( "Enter a number: " )) total = total + number continue elif choice == "2" : print ( "The total is" , total) continue elif choice == "3" : break print ( "\nProgram finished." ) Type 1 to enter, 2 for the total and 3 to stop: 1 Enter a number: 40 Type 1 to enter, 2 for the total and 3 to stop: 1 Enter a number: 35 Type 1 to enter, 2 for the total and 3 to stop: 2 The total is 75 Type 1 to enter, 2 for the total and 3 to stop: 3 Program finished. While Loops Task 4 (Guess the Planet ) Example solution: Use a while True loop to keep asking a user to input a planet . Keep track of the number of guesses that have been made and output the total when they input the correct planet. Use the second example in the 'While True Loops ' section above to help you. Enter a planet: Mars Incorrect guess, try again! Enter a planet: Mercury Incorrect guess, try again! Enter a planet: Neptune Correct it was Neptune! While Loops Task 5 (Up to 100 ) Create a while True loop that asks the user to enter a number . Add the number to a total variable and print it. When the total reaches 100 or more , stop the program. Don't forget to set the total variable to 0 at the start and to add the number entered by the user to the total. Example solution: Enter a number: 34 The current total is: 34 Enter a number: 29 The current total is: 63 Enter a number: 18 The current total is: 81 Enter a number: 22 The current total is: 103 Over 100! ⬅ 6a - F or Loops Section 6 Practice Tasks ➡

  • Python | Extended Task 6 | CSNewbs

    Test your ability to create a more complex program in Python based on a given scenario. Perfect for students learning GCSE Computer Science in UK schools. Extended Task 6 'Guess the Word' Game Create a Python program similar to the hit New York Times puzzle game Wordle . Allow the user to make guesses to match the randomly chosen hidden word , stopping when they get it correct. You can download a list of 5-letter words on this page. You will need to read in each line of the list and randomly select one - don’t forget to import the random library . Check if each letter of the user’s inputted word is in the randomly selected word . If you are using an IDE like Replit you can use the colorama library and the Fore command to turn the text: Green if the letter is in the correct position . Red if the letter is not in the selected word . Yellow if the letter is in the selected word but not in the correct position . Add your own flair and additional features to your program as an extension, including limiting the number of guesses and recording how many attempts it took to get the correct answer. Download a file of 534 5-letter words: For this task, you will need to create a document and include the following sections (with screenshots where appropriate): An introduction to explain the Purpose of your program . A List of Requirements for a successful program. Screenshots of your code (with comments in your code to show understanding). Testing – Create a plan to show how you will test your program and then explanations of any errors that you found and how they were fixed . An Evaluation of what worked, what didn’t, and how you met each of your requirements from your original list. Also, discuss further improvements that you could have made to improve your program. Reminders for this task: You will need a while loop to repeatedly allows the user to enter words until they match the correct word. Section 10 will help you to open, write and r ead from files . Download the file of 5-letter words from the link above. You will need to randomly select a word from the file. The choice command will help. Selection will be necessary to check if each letter in the inputted word matches the letter in the same position in the correct word. String handling is needed to select specific letters in a string. You will need to use .rstrip() on the selected line (word) that you have randomly chosen from the file. This removes any hidden characters that may interfere with checking if it is equal to the inputted word. There are multiple ways to approach this program, and your solution might look different from the example. Break the problem down and focus on one part at a time. Example solution: The word the user enters should be checked , letter by letter , against the letters in the same position in the randomly chosen correct word . Remember that the first letter in a word has the position 0 , not 1. Below is an example of some incomplete code you may wish to use in your solution. ⬅ Extended Task 5 (Colour Collection) Extended Task 7 (Number Game) ➡

  • 2.2 - Applications Generation | OCR A-Level | CSNewbs

    Learn about applications, utility software, open source and closed source, translators including interpreters, compilers and assemblers, stages of compilation (lexical analysis, syntax analysis, code generation and optimisation) and linkers, loaders and libraries. Based on the OCR H446 Computer Science A-Level specification. Exam Board: OCR A-Level 2.2 - Applications Generation Specification: Computer Science H446 Watch on YouTube : Application software Utilities Open & closed source High & low level language Translators Stages of compilation Linkers, loaders & libraries This topic explores key types of software and how they support computer systems and users . It explains different kinds of applications , utilities , translators and compares open and closed source software . Another important concept is compilation , with knowledge required of its different stages , as well as linkers , loaders and software libraries . Applications Software Applications software allows users to carry out productive or creative activities such as document editing , data analysis , communication or media creation . Common examples include word processors (e.g. Microsoft Word or Google Docs ), spreadsheets (e.g. Excel or Sheets ), database management systems (e.g. Access ), web browsers (e.g. Chrome or Safari ) and graphics editors (e.g. Photoshop ). Applications can be general-purpose , serving many uses , or special-purpose , created for a specific function like payroll or medical record management . Utilities Utility software is system software designed to maintain , optimise and manage a computer’s performance , often running in the background to support the operating system . Examples include security tools like an antivirus , backup , compressors , disk management utilities and defragmenters . Defragmentation is the process of reorganising files on a hard drive so that parts of each file are stored together in contiguous blocks , improving access speed . Open Source & Closed Source Open source software has its source code (the actual code written by its developers ) made publicly available , allowing users to view , modify and share it freely . An open source licence encourages collaboration , transparency and community-driven improvement . However, it may lack official technical support or guaranteed updates . Closed source software has its source code private , restricting modification and redistribution . It is usually sold commercially with paid licences , regular updates and dedicated technical support . Bug fixes and quality assurance are out of the user's control , being managed by the developer . Support may end without warning . High & Low Level Languages Programming languages can be split into high-level and low-level , based on how close they are to the computer’s hardware . High-level languages are easier to read and write , while low-level languages give direct control over hardware but are harder to use . High-level languages like Python or Java are similar to natural human language, making them easy to write , understand, and debug . Low-level languages include machine code (binary ) and assembly language but are written for specific processor architecture . Translators Translators are programs that convert source code written in one programming language into another form that the computer's CPU can understand - typically machine code (binary ). An assembler translates assembly language into machine code that the CPU can execute directly . An interpreter translates and executes high-level code in a line-by-line method, stopping when an error occurs . A compiler translates the entire high-level program into machine code before execution , producing an executable file . Stages of Compilation Compilation is a complicated process to convert high-level program code into machine code . It consists of four key stages : Lexical analysis breaks the source code into tokens , such as keywords , identifiers and operators . Spaces and comments are removed and a symbol table of identifiers is created. Syntax analysis checks that the token sequence follows the grammatical rules of the programming language , building an abstract syntax tree . Code generation converts the abstract syntax tree into object code (unfinished machine code ) the CPU can understand . Code optimisation improves the efficiency of the generated code , for example by reducing redundant instructions or improving execution speed . Libraries, Linkers & Loaders Compilation also requires additional programs, such as a linker and loader and the use of libraries . A library is a collection of pre-written code created by other programmers that contains useful routines and functions which can be reused in a program. A linker combines object code and libraries , resolving references so that a final executable file can be created . A loader copies an executable file from secondary storage into RAM , ready for execution by the processor . Q uesto's K ey T erms Applications: database, word processor, web browser, graphics manipulation, spreadsheet software, presentation software Utilities: defragmentation, system cleanup, file manager, device driver, security tools Open & Closed Source: source code, open source, closed source Translators: assembler, interpreter, compiler, machine code Stages of Compilation: lexical analysis, token, syntax analysis, abstract syntax tree, code generation, code optimisation, library, linker, static linking, dynamic linking, loader D id Y ou K now? Grace Hopper , a US Navy rear admiral , is credited with creating one of the first compilers in 1952 and coining the term ' compiler '. She also helped develop the languages FLOW-MATIC and later COBOL , which is still used today . 2.1 - Systems Software A-Level Topics 2.3 Software Development

  • 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 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

  • 5.1 - Languages & Translators - OCR GCSE (J277 Spec) | CSNewbs

    Learn about the two types of language levels - high level languages and low level languages , as well as the use of interpreters and compilers. Based on the J277 OCR GCSE Computer Science specification (first taught from 2020 onwards). 5.1: Languages & Translators Exam Board: OCR Specification: J277 Watch on YouTube : High-Level & Low-Level Languages Translators (Compiler & Interpreter) There are two types of programming languages used within computer systems: High-Level Languages Why do programmers use high-level languages? H igh-level programming languages use code written in a way that is similar to a natural human language , such as English, making it easier to understand and use the language. Using high-level languages leads to fewer errors and allows for more powerful and complex commands compared to low-level languages. However, a high-level language must be translated into machine code (binary) before it can be run, as high-level languages cannot be executed directly by the CPU . Popular high-level languages: PYT HON C++ Ja v a Visual Basic Low-Level Languages Low-level languages do not closely resemble a natural human language , making it harder for humans to understand and write in. Low-level languages are used when a program must be executed quickly or when programmers need to write code that interacts directly with the hardware , such as device drivers. There are two types of low-level language : Machine Code This is the pure binary code that computers can directly process and execute . It is extremely tedious and difficult for humans to understand and write machine code. However, machine code can be used when a programmer needs to perform a very specific command that can't be done in a high-level language. Machine code will be executed faster than high-level programs because it is already in a format the CPU can execute and does not need to be translated . 0010 1011 0101 0101 0110 0111 0101 0001 0101 0101 0101 0100 1010 1010 1010 1010 1111 1110 0010 1001 0100 1001 0010 0111 0111 0101 0011 1010 1000 0101 0110 0111 0000 1010 1010 0011 1101 1001 0010 1101 0010 0100 1001 0011 1010 1001 0101 0101 0010 0101 0111 0101 0101 1000 1011 0111 Assembly Language Assembly language uses specialised command mnemonics to perform actions . See the Assembly Language section in the programming tab for a list of mnemonics such as INP , OUT and HLT . Assembly language is preferred by many programmers over machine code because it is easier to understand and spot errors . It is faster to execute than high-level languages and, like machine code, can be used to directly control the CPU . INP STA Number1 OUT HLT Number1 DAT Translators A translator changes (translates) a program written in one language into another language (usually machine code ). There are two main types of translator : Interpreter An interpreter converts high-level language one line at a time into machine code and executes it. Compiler A compiler converts high-level language into machine code for execution at a later time. The entire program is converted at once . PYT HON PYT HON 0010 1011 0101 0101 0110 0111 0101 0001 0101 0101 0010 1011 0101 0101 0110 0111 0101 0001 0101 0101 Interpreters vs Compilers Interpreter Compiler Execution Method: An interpreter translates source code (high level code) into machine code one line at a time . Execution Speed: An interpreter is slower than a compiler because the code must be reinterpreted each time the program is run. Complexity: Interpreters are smaller, simpler programs . Error Reporting: In error reporting, the interpreter would encounter the errors and report it to the user immediately and stops the program from running. Repetition: Interpreted programs can be edited and run without translating the whole program . Interpreters must reinterpret the program every time it is run. Execution Method: A compiler translates all the source code (high level code) into machine code in one go . A compiler produces an executable file that will run on other machines without the compiler needing to be installed. Execution Speed: Compilers can produce much more efficient code than interpreters making the compiled programs run faster . Complexity: Compilers tend to be large complex programs . Error Reporting: The compiler would analyse the entire program , taking note of where errors have occurred and record them in an error file . Repetition: Compilation requires analysis and the generation of the code only once , whereas interpreters must re-interpret each time. However, compiled programs have to be re-compiled after any changes have been made. x1 ∞ x1 Q uesto's Q uestions 5.1 - Languages & Translators: 1a. Describe three reasons why programmers use high-level languages . [ 3 ] 1b. Explain one limitation of using high-level languages . [2 ] 2a. Describe a key difference between low-level languages and high-level languages . [ 2 ] 2b. Describe when a low-level language would be used instead of a high-level language . [2 ] 2c. Describe an advantage and a disadvantage of writing directly in machine code . [2 ] 2d. Describe what assembly language is. Give one benefit to using assembly language instead of machine code and one benefit to using it instead of a high-level language . [3 ] 3. Compare high-level and low-level languages by stating which is: a. Easier to understand [ 1 ] b. Requiring translation [ 1 ] c. Quicker to execute [ 1 ] 4. Compare interpreters and compilers for each of the following features : a. Execution Method b. Execution Speed c. Complexity d. Error Reporting e. Repetition [ 10 total ] 4.1 - Boolean Logic Theory Topics 5.2 - IDE

  • 11 Graphical User Interface | CSNewbs

    Learn how to create and use a simple graphical user interface (GUI) in Python. Try practice tasks and learn through text and images. Perfect for students learning GCSE Computer Science in UK schools. Python 11 - GUI Graphical User Interface In Python, you don’t have just to use a text display; you can create a GUI (Graphical User Interface ) to make programs that look professional. This page demonstrates the basic features of Python’s built-in GUI named tkinter . You can add images, labels, buttons and data entry boxes to develop interactive programs . Hyperlinked sections covered on this page: Setup: Title, Size & Background Creating Elements: Labels, Entry Boxes, Buttons, Images, Message Boxes Displaying Elements: Pack, Place, Grid Inputs & Outputs GUI Tasks Setup Setup: Title, Size & Background Firstly, import the tkinter command and set tkinter.Tk() to a variable such as window . GUI code can be quite complicated with multiple elements so it is sensible to use a comment for each section. Setting the title , size and background colour of your window is optional but can be easily set up at the start of your code. The .geometry() command sets the size of the window. The first number is the width , and the second number is the height . The .configure() command can be used to set the background colour . For a full list of compatible colours, check here . import tkinter #Setting up the Window window = tkinter.Tk() window.title( "Graphical User Interface" ) window.geometry( "400x400" ) window.configure(background = "lightblue" ) import tkinter #Setting up the Window window = tkinter.Tk() window.title( "Example Number Two" ) window.geometry( "300x400" ) window.configure(background = "darkorchid3" ) Creating Elements Creating Elements: Labels, Entry Boxes, Buttons, Radio Buttons, Images, Message Boxes Labels label1 = tkinter.Label(window, text = "Hello there" ) label1 = tkinter.Label(window, text = "Hello there" , fg = "black" , bg = "lightblue" , font = ( "Arial" , 12)) Simple label with default formatting: Label with custom formatting: No elements will appear in your window until you write code to put them there. See the 'Displaying Elements' section further down. Entry (Text) Boxes Simple entry box with default formatting: entry1 = tkinter.Entry(window ) Entry boxes will appear blank , the 'Example Text' shown in the images has been typed in. Entry box with custom formatting: entry1 = tkinter.Entry(window, fg = "blue" , bg = "gray90" , width = 12, font = ( "Arial" ,12)) Buttons The command property of a button is a subroutine that will be called when the button is pressed . The subroutine must be written above the button creation code. def ButtonPress (): #Code here runs when the button is pressed button1 = tkinter.Button(window, text = "Click Me" , fg = "black" , bg = "gold2" , command = ButtonPress) Radio Buttons The Radiobutton element is a multiple-choice option button . A variable needs to be created to track which option has been selected, in this example it is ‘choice ’. Each radio button needs to be linked to the variable and given a unique value (e.g. 0, 1, 2). The radio button with the the value of 0 will be automatically selected when the window opens . Although not shown below, the .set() command can also be used to select a specific radio button , e.g. choice.set(2) . choice = tkinter.IntVar() radio1 = tkinter.Radiobutton(window, text = "Breakfast" , variable = choice, value = 0) radio2 = tkinter.Radiobutton(window, text = "Lunch" , variable = choice, value = 1) radio3 = tkinter.Radiobutton(window, text = "Dinner" , variable = choice, value = 2) Message Boxes You need to import messagebox from tkinter before you can use message boxes . You only need to do this once in your program and it sensible to have it at the very start after you import tkinter (and any other libraries). from tkinter import messagebox tkinter.messagebox.showinfo( "Information" , "Welcome to the program!" ) tkinter.messagebox.showerror( "Error" , "There is a problem with the program." ) if (tkinter.messagebox.askyesno( "Warning" , "Have you understood the instructions?" )) == True : tkinter.messagebox.showinfo( "Warning" , "Thank you for understanding." ) else : tkinter.messagebox.showinfo( "Warning" , "Please read the instructions again." ) Yes / No Message Box Clicking Yes (True ) Clicking No (False ) Images Tkinter supports the image file types .png and .gif . The image file must be saved in the same folder that the .py file is. Resize the image in separate image editing software such as Paint to a specific size . Tkinter does not support all image file types, such as .jpg. Use an application like Microsoft Paint to save an image with a different extension like .png. photo1 = tkinter.PhotoImage(file = "hamster.png" ) photoLabel1 = tkinter.Label(window, image = photo1) An image can be turned into a clickable button rather than a label. def ButtonPress (): #Code here runs when the button is pressed photo1 = tkinter.PhotoImage(file = "hamster.png" ) button1 = tkinter.Button(window, image = photo1, command = ButtonPress) photo1 = tkinter.PhotoImage(file = "hamster.png" ) window.iconphoto( True , photo1) The icon of the window can be changed to an image . Displaying Elements: Pack, Place and Grid Pack .pack() puts the element in the centre of the window, with the next packed element immediately below. window.mainloop() should always be your last line of code in every program, after you have packed, placed or gridded your elements. Displaying Elements labelAdd.pack() buttonAdd.pack() labelMinus.pack() buttonMinus.pack() window.mainloop() Place The .place() command allows an element to be placed in specific coordinates , using x (horizontal ) and y (vertical ) axes. labelAdd.place(x = 25, y = 15) buttonAdd.place(x = 12, y = 35) labelMinus.place(x = 90, y = 15) buttonMinus.place(x = 83, y = 35) window.mainloop() Grid The .grid() command is used to create a grid system to set the row and column . Remember Python starts counting at 0 . You can use padx and pady to add extra space (x is horizontal , y is vertical ). labelAdd.grid(row = 0, column = 0, padx = 10, pady = 5) buttonAdd.grid(row = 1, column = 0, padx = 10) labelMinus.grid(row = 0, column = 1, padx = 10, pady = 5) buttonMinus.grid(row = 1, column = 1, padx = 10) window.mainloop() Inputs & Outputs Inputs and Outputs .config to Change an Element .config() overwrites the property of an element. It can be used with elements such as labels and buttons to change how they appear. label1.config(text = "Warning!" ) The example below (not showing setup and packing) adds 1 to a total variable when the button is pressed . Config is used in two ways: to display the updated total and to change the background of the label to green. def AddOne (): global total total = total + 1 labelTotal.config(text = total, bg = "green" ) total = 0 buttonAdd = tkinter.Button(window, text = "Add" , command = AddOne) Below is a similar program in full that increases or decreases and displays a total when the buttons are pressed . #Setup import tkinter window = tkinter.Tk() total = 0 #Button Presses def AddOne (): global total total = total + 1 labelTotal.config(text = total) def MinusOne (): global total total = total - 1 labelTotal.config(text = total) #Create Elements labelTotal = tkinter.Label(window, text = total, font = ( "Arial" ,14)) buttonAdd = tkinter.Button(window, text = "+" , width = 6, bg = "green" , command = AddOne) buttonMinus = tkinter.Button(window, text = "-" , width = 6, bg = "red" , command = MinusOne) #Display Elements buttonAdd.pack() buttonMinus.pack() labelTotal.pack() window.mainloop() .get to Input a Value .get() returns the value of an element such as an entry box , label or the choice variable if using radio buttons . The value of the element should be stored in a variable so it can be used elsewhere, for example: name = entryName.get() number = int (entryNumber.get()) Use int when getting a value that is an integer : The full program example below checks that the values typed into the username and password entry boxes are correct . Error Messages #Setup import tkinter from tkinter import messagebox window = tkinter.Tk() window.title( "Login" ) #Button Presses def CheckDetails (): username = entryUsername.get() password = entryPassword.get() if username == "Bob Bobson" and password == "cabbage123" : tkinter.messagebox.showinfo( "Success" , "Welcome " + username) else : tkinter.messagebox.showerror( "Invalid ", "Those details are incorrect." ) #Create Elements labelUsername = tkinter.Label(window, text = "Username:" ) labelPassword = tkinter.Label(window, text = "Password" ) entryUsername = tkinter.Entry(window) entryPassword = tkinter.Entry(window) buttonLogin = tkinter.Button(window, text = "Login" , command = CheckDetails) #Display Elements labelUsername.grid(row = 0, column = 0) entryUsername.grid(row = 0, column = 1) labelPassword.grid(row = 1, column = 0) entryPassword.grid(row = 1, column = 1) buttonLogin.grid(row = 2, column = 0) window.mainloop() .bind for Key Presses (& Close Window) .get() will run a specific function when a certain key is pressed. The name of the key must be surrounded by < > brackets and speechmarks . Any associated subroutine of a key bind will need a parameter : event has been chosen and set to None . The code below closes the window using the .destroy() command when the Esc key is pressed. def Close (event = None ): window.destroy() window.bind( "" , Close) The code below will activate the button (and display a message box) by clicking on it but also by pressing the Enter ( Return ) key . def ButtonPress (event = None ): tkinter.messagebox.showinfo( "Success" , "The button was activated" ) button1 = tkinter.Button(window, text = "Press Me" , command = ButtonPress) window.bind( "" , ButtonPress) GUI Tasks GUI Programs to Make Making a program using a GUI can be overwhelming and you must decompose the problem - take it step by step : Import tkinter and create the window (set the title, size and background colour). Create the elements you will need such as labels , buttons and entry boxes . Put the components in the window using pack , place or grid . Write the subroutines for any button presses . These are written at the top of the program after the window setup. Consider your variables - do any need to be set at the start ? Have you made them global if they’re needed within a subroutine ? Put window.mainloop() as the final line of code, only have it once. Use #comments in your code to break up the different sections, the key four sections are shown below. #Setup #Button Presses #Create Elements #Display Elements GUI Task 1 (Random Number Generator ) Generate a random number between 1 and 100 when the button is pressed and display it in a label. Extension idea: Use entry boxes to allow the user to manually input the minimum and maximum value. Example solution: GUI Task 2 (Currency Exchange ) Enter a decimal value and convert it from British pounds to American dollars. You can search for the current exchange rate. Extension idea: Show the conversion rate for other currencies such as Euros and Japanese Yen. Example solution: GUI Task 3 (Random Quote Generator ) Create a list of quotes and use the choice command from the random library to select one to be displayed in a label when the button is clicked. Extension idea: Have a separate text box and button to add more quotes to the list. Example solution: GUI Task 4 (Colour Changer ) When the button is clicked change the background colour of the button with .config to the RGB colour code in the entry box. This should be # followed by 6 hexadecimal values (0-9, A-F). Extension idea: Have an error pop up in a message box if the colour code is incorrect - it must be exactly 7 characters long and start with a hashtag. Example solutions: GUI Task 5 (Class Captain Votes ) Use radio buttons to vote for different candidates in a class vote. Use an if statement when the button is pressed to check which radio button is selected using .get() and the variable you've assigned to the radio buttons ('choice' if you've followed the code in the radio buttons section on this page). Use .config to overwrite a label's value. Remember any variables you want to use in subroutines must be globalised. Extension idea: Stop the count after a certain number - e.g. 30 votes recorded. Example solution: ⬅ Section 10 Practice Tasks 12 - Error Handling ➡

  • Python | 8a - Using Lists | CSNewbs

    Learn how to create and use lists in Python. Try practice tasks and learn through text and images. Perfect for students learning GCSE Computer Science in UK schools. top Python 8a - Using Lists Lists A list is a temporary data structure . Any changes made to the list while the program is running will not be saved the next time it is run . Data can be added to and removed from lists so they can change in size (unlike an array which is fixed and not used in Python). It is important to note that each data element in a list has an index so that it can be specifically referenced (to delete it for example) and that indexes start at 0 . A list of the rainbow colours in order would start at 0 like this: Creating & Printing Lists Lists use square brackets in Python. Separate list items with commas . Strings must use speech marks and integers do not use speech marks. people = [ "Alan" , "Jesse" , "Max" , "Jack" ] years = [ 2010, 2019, 2001, 2016 ] There are many different ways to print items from a list depending on how you want it to look . Print all items on one line Type the list name into a print command to output the complete list . Typing an asterisk * before the list name removes punctuation . cities = [ "Shanghai" , "Sao Paolo" , "Bishkek" , "Asmara" ] print (cities) cities = [ "Shanghai" , "Sao Paolo" , "Bishkek" , "Asmara" ] print (*cities) ['Shanghai', 'Sao Paolo', 'Bishkek', 'Asmara'] Shanghai Sao Paolo Bishkek Asmara Print each item on a separate line To print a list line-by-line use a for loop to cycle through each item. 'city ' is just a variable name and can be replaced with the traditional 'i ' or anything relevant to the context, such as 'colour ' in a list of colours or 'name ' in a list of people. cities = [ "Shanghai" , "Sao Paolo" , "Bishkek" , "Asmara" ] for city in cities: print (city) Shanghai Sao Paolo Bishkek Asmara Print separated items on one line To print separated data elements on the same line then you can use the end command which defines what should go after each item . The example below uses slashes but end = " , " would add comma and space between each element. cities = [ "Shanghai" , "Sao Paolo" , "Bishkek" , "Asmara" ] for city in cities: print (city, end = " / " ) Shanghai / Sao Paolo / Bishkek / Asmara / Print specific list items To print an element with a certain index , put the index in square brackets . But remember that the index starts at 0 not 1. cities = [ "Shanghai" , "Sao Paolo" , "Bishkek" , "Asmara" ] print ( "The first city is" , cities[0]) print (cities[2], "is the third city" ) The first city is Shanghai Bishkek is the third city Create a list of five different foods . Print all list items on one line . Then print each item on a different line . Finally print just the first and fifth items . Example solution: lettuce yoghurt tomato artichoke tuna lettuce yoghurt tomato artichoke tuna The first item is lettuce The fifth item is tuna Lists Task 1 (Five Foods ) Lists Task 2 (Four Numbers ) Create a list of four integer values . Print all list items on one line separated by colons . Example solutions: 345:123:932:758: 812:153:783:603: Add (Append / Insert) to a List Append items to the end of a list To add a new item to the end of a list use the .append() command. Write .append() after the name of your list, with the new data in brackets . pets = [ "dog" , "cat" , "hamster" ] pets.append( "rabbit" ) print (*pets) fillings = [ "ham" , "cheese" , "onion" ] extra = input ( "Enter another filling: " ) fillings.append(extra) print ( "Your sandwich:" , *fillings) dog cat hamster rabbit Enter another filling: lettuce Your sandwich: ham cheese onion lettuce Insert items to a specific index Use the insert command to place an item in a specific position within the list. Remember that Python counts from 0 so the medals example below puts "silver" as index 2 , which is actually the 3rd item . medals = [ "platinum" , "gold" , "bronze" ] medals.insert(2, "silver" ) print (*medals) names = [ "Stacy" , "Charli" , "Jasper" , "Tom" ] name = input ( "Enter a name: " ) position = int ( input ( "Enter an index: " )) names.insert(position,name) print (*names) platinum gold silver bronze Enter a name: Lena Enter an index: 0 Lena Stacy Charli Jasper Tom Enter a name: Pat Enter an index: 3 Stacy Charli Jasper Pat Tom Use a loop to add items to a list A for loop can be used to add a certain number of items to a list. A while loop can be used to keep adding values until a certain value (e.g. ' stop ' or ' end ') is input. animals = [ ] for i in range (4): animal = input ( "Enter an animal: " ) animals.append(animal) print ( "\nAnimals:" , *animals) animals = [ ] while True : animal = input ( "Enter an animal: " ) if animal == "stop" : break else : animals.append(animal) print ( "\nAnimals:" , *animals) Enter an animal: lion Enter an animal: horse Enter an animal: hyena Enter an animal: squirrel Animals: lion horse hyena squirrel Enter an animal: rhino Enter an animal: gazelle Enter an animal: deer Enter an animal: stop Animals: rhino gazelle deer Example solution: Lists Task 3 (Favourite Musicicans ) Create a list of three musicians or bands you like . Print the list . Then append two new bands using two inputs . Print the list again. Use the sandwich filling example for help. Musicians I like: Lana Del Rey Devon Cole Elly Duhé Enter another musician: Charli XCX Enter another musician: Kenya Grace Musicians I like: Lana Del Rey Devon Cole Elly Duhé Charli XCX Kenya Grace Lists Task 4 (Missing 7 ) Create a list of numbers in order from 1 to 10 but miss out 7 . Use the insert command to add 7 in the correct place . Print the list before and after you insert 7. Example solution: 1 2 3 4 5 6 8 9 10 1 2 3 4 5 6 7 8 9 10 Lists Task 5 ('Land' Countries ) Use a while True loop to input countries that end in 'land' until the word 'finish ' is input . Print the list at the end. Note: You do not need to check if the countries entered are correct. There are also more than four. Example solution: Enter a country ending in 'land': Iceland Enter a country ending in 'land': Poland Enter a country ending in 'land': Switzerland Enter a country ending in 'land': Thailand Enter a country ending in 'land': finish Country list: Iceland Poland Switzerland Thailand Delete (Remove/Pop) from a List Delete items with a specific value To delete data with a certain value use the .remove() command, with the value in brackets . trees = [ "fir" , "elm" , "oak" , "yew" ] trees.remove( "elm" ) print (*trees) fir oak yew trees = [ "fir" , "elm" , "oak" , "yew" ] tree = input ( "Select a tree to remove: " ) trees.remove(tree) print (*trees) Select a tree to remove: oak fir elm yew Delete items with a specific index To delete data in a specific position in your list use the .pop() command, with the position in the brackets . Remember that indexes start at 0 so .pop(0) removes the first item . Negative values start from the end of the list , so -1 is the final item and -2 is the second last item and so on. kitchen = [ "plate" , "cup" , "spoon" , "jug" ] kitchen.pop(0) print (*kitchen) kitchen = [ "plate" , "cup" , "spoon" , "jug" ] kitchen.pop(-2) print (*kitchen) kitchen = [ "plate" , "cup" , "spoon" , "jug" ] index = int ( input ( "Select an index: " )) kitchen.pop(index) print (*kitchen) cup spoon jug plate cup jug Select an index: 1 plate spoon jug Delete all items in a list To delete data in a list use the .clear() command. insects = [ "ant" , "bee" , "wasp" ] insects.clear() insects.append( "hornet" ) print (*insects) hornet Lists Task 6 (Day Off ) Example solution: Create a list with the five week days . Ask the user to input a weekday and remove that day from the list. Print the list. Which day do you want off? Tuesday Your new days of work: Monday Wednesday Thursday Friday Lists Task 7 (May and October ) Create a list with the twelve months in order . Delete May and then October using the pop command by referring to their indexes in the list. Print the list. Note: Be aware the index of each month after May will change when May is popped from the list. Example solution: January February March April June July August September November December Finding the Length of a List To find the length of a list use the len function. You can create a separate variable for the length (shown in the first example below) or use the len command directly (second example). states = [ "Maine" , "Utah" , "Ohio" , "Iowa" ] length = len (states) print ( "There are" , length , "states in the list." ) states = [ "Maine" , "Utah" , "Ohio" , "Iowa" ] print ( "There are" , len (states), "states in the list." ) There are 4 states in the list. Lists Task 8 (Q Words ) Use a while True loop to input words beginning with q until the word ' stop ' is entered. Then use len to find the length of the list and print this value. Note: You do not need to check if the entered words actually start with q. Example solution: Input a Q word: question Input a Q word: quick Input a Q word: quiet Input a Q word: quandry Input a Q word: stop You wrote 4 Q words! Cycle Through List Items A for loop can be used to cycle through each item in a list. The following examples present some ways that this may be used. This program uses a for loop to add a word (David) before each list item. davids = [ "Beckham" , "Attenborough" , "Schwimmer" , "Tennant" , "Lynch" ] for i in range (5): print ( "David" , davids[i]) David Beckham David Attenborough David Schwimmer David Tennant David Lynch An if statement can be used within a for loop to check the value of each item . The example below checks how many items are 'medium'. sizes = [ "small" , "medium" , "small" , "large" , "medium" , "small" ] count = 0 for i in range (6): if sizes[i] == "medium" : count = count + 1 print ( "There were" ,count, "medium choices." ) There were 2 medium choices. The program below uses a while loop to allow entries until 'stop ' is input then a for loop to check the value of each item . Because the final length of the list is not known when the program starts, the len command is used in the range of the for loop . sports = [] fcount = 0 rcount = 0 while True : option = input ( "Choose football or rugby: " ) sports.append(option) if option == "stop" : break for i in range ( len (sports)): if sports[i] == "football" : fcount = fcount + 1 elif sports[i] == "rugby" : rcount = rcount + 1 print ( "\nResults:" ,fcount, "people chose football and" ,rcount, "chose rugby." ) Choose football or rugby: rugby Choose football or rugby: rugby Choose football or rugby: football Choose football or rugby: rugby Choose football or rugby: football Choose football or rugby: stop Results: 2 people chose football and 3 chose rugby. Lists Task 9 (Over 25 ) Create a list with the following eight numbers: 13, 90, 23, 43, 55, 21, 78, 33 Use a for loop to cycle through the list and check if each item is over 25 . Use a count variable to increase by 1 if the number is over 25. At the end print how many numbers are over 25 - there are five . Example solution: 5 numbers are over 25. Lists Task 10 (Favourite Lesson ) Use a while True loop to keep inputting school subjects until ' done ' is entered. Keep a count of how many times ' Maths ' is entered. Print the total number of people who entered maths. Example solution: Enter a subject: English Enter a subject: Maths Enter a subject: Art Enter a subject: Maths Enter a subject: History Enter a subject: done There were 2 people who chose maths. Sorting Lists The .sort() command will sort elements in a list into alphabetical order (if a string ) or numerical order (if a number ). names = [ "Robb" , "Jon" , "Sansa" , "Arya" , "Bran" , "Rickon" ] print ( "Original:" , *names) names.sort() print ( "Sorted:" , *names) Original: Robb Jon Sansa Arya Bran Rickon Sorted: Arya Bran Jon Rickon Robb Sansa numbers = [56,98,23,12,45] numbers.sort() print (*numbers) 12 23 45 56 98 The .sort() command can be used to sort values in descending order by including reverse = True in the brackets. names = [ "Robb" , "Jon" , "Sansa" , "Arya" , "Bran" , "Rickon" ] print ( "Original:" , *names) names.sort(reverse = True ) print ( "Sorted:" , *names) Original: Robb Jon Sansa Arya Bran Rickon Sorted: Sansa Robb Rickon Jon Bran Arya numbers = [56,98,23,12,45] numbers.sort(reverse = True ) print (*numbers) 98 56 45 23 12 Lists Task 11 (Sorted Fruit ) Example solution: Use a for loop to append six fruits to an empty list. Sort the list into alphabetical order and print it. Enter a fruit: strawberry Enter a fruit: kiwi Enter a fruit: lemon Enter a fruit: pear Enter a fruit: orange Enter a fruit: mango Sorted fruit: kiwi lemon mango orange pear strawberry Searching Through Lists A simple if statement can be used to see if a certain value appears within a list. names = [ "Alex" , "Bill" , "Charlie" , "Darla" ] name = input ( "Enter a name: " ) if name in names: print ( "Yes," , name , "is in the list." ) else : print ( "Sorry," , name , "is not in the list." ) Enter a name: Bill Yes, Bill is in the list. Enter a name: Sadie Sorry, Sadie is not in the list. Lists Task 12 (Packed Suitcase ) Example solutions: Create a list with five items to take on holiday. Ask the user to input an item and use an if statement to check if it is or isn't in the list. What should I pack? sun cream I've already packed sun cream What should I pack? toothpaste Whoops! I forgot to pack toothpaste Calculating the Sum of a List To calculate the sum of a list of numbers there are two methods. Using Python's built-in sum function : numbers = [1,4,2,3,4,5] print ( sum (numbers)) Both methods will result in the same output : 19 Using a for loop to cycle through each number in the list and add it to a total . numbers = [1,4,2,3,4,5] total = 0 for number in numbers: total = total + number print (total) Lists Task 13 (Sum and Average ) Example solution: Use a for loop to ask the user to input 5 numbers and append each to a list. Use the sum command to output the total and use it calculate the average . Enter a number: 6 Enter a number : 7 Enter a number : 6 Enter a number : 9 Enter a number : 4 The total is 32 The average is 6.4 Extending a List .extend() can be used in a similar way to .append() that adds iterable items to the end of a list . This commands works well with the choice command (imported from the random library ) to create a list of characters that can be randomly selected. The code below adds a lowercase alphabet to an empty list and then, depending on the choice of the user, adds an uppercase alphabet too. The choice command is used in a loop to randomly select 5 characters. Using .extend() to make a random 5-character code from random import choice list = [] list. extend ( "abcdefghijklmnopqrstuvwxyz" ) upper = input ( "Include uppercase letters? " ) if upper == "yes" : list. extend ( "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ) code = "" for number in range (5): letter = choice (list) code = code + letter print ( "Your five character code is" , code) Possible outputs: Include uppercase letters? yes Your five character code is yPfRe Include uppercase letters? yes Your five character code is GJuQw = Include uppercase letters? no Your five character code is gberv Extend treats each character as an indidual item whereas append adds the whole string as a single entity . Most of time append would be used, but extend is suitable for a password program as additional individual characters can be added to a list depending on the parameters (e.g. lowercase letters, uppercase letters, numbers and special characters). list = [] list. extend ( "ABCD" ) list. extend ("EFGH" ) print (list) list = [] list. append ( "ABCD" ) list. append ("EFGH" ) print (list) ['A','B','C','D','E','F','G','H'] ['ABCD' , 'EFGH'] = = Practice Task 14 Use the code above (for a 5-character code ) to help you make a password generator . Ask the user if they want uppercase letters , numbers and special characters and use the extend command to add them to a list of characters if they type yes (you should extend lowercase characters into an empty list regardless, like in the code above). Use a for loop and the choice command (imported from the random library) to randomly generate a 10-character password . Example solutions: Include uppercase letters? yes Include numbers? yes Include special characters? yes Your new password is RjWSbT&gW5 Include uppercase letters? no Include numbers? yes Include special characters? no Your new password is hdf8se9y2w ⬅ Section 7 Practice Tasks 8b - 2D Lists ➡

  • 3.1 - Planning Projects | F160 | Cambridge Advanced National in Computing AAQ

    Learn about the importance of planning application development projects, including the advantages and disadvantages of planning and the consequences of not planning. Also covers planning considerations such as budget, time, resources, success criteria and legislation. Based on Unit F160 (Fundamentals of Application Development) for the OCR Cambridge Advanced National in Computing (H029 / H129) (AAQ - Alternative Academic Qualification). Qualification: Cambridge Advanced National in Computing (AAQ) Unit: F160: Fundamentals of Application Development Certificate: Computing: Application Development (H029 / H129) 3.1 - Planning Projects Watch on YouTube : Purpose of Planning Planning Considerations Planning Projects You need to know why it is important to plan an application development project , as well as the advantages and disadvantages of taking the time to plan . You must also consider the potential consequences if a development team decide not to plan their project. There are several considerations (e.g. budget , time and legislation ) that must be looked at in the planning stage and you need to know how these may impact application development . You need to be aware of copyright , data protection and electronic communication legislation , but for this unit , you do not need to know the details of any specific laws . Importance of Planning Projects Planning application development projects is important as it sets clear goals and direction for the project and identifies required resources (e.g. time , money , people and tools ). Other advantages include better organisation , as team members should know their roles and tasks . Also, planning improves time management as deadlines and milestones keep the project on track . However, there are disadvantages to planning as it takes time and can delay the start of development . Also, plans may become outdated if requirements unexpectedly change mid-project . Avoiding planning entirely will have consequences , such as a higher potential for missed deadlines and overrunning costs due to poor time / budget estimates . Goals may be unclear , leading to confusion , delays or an unusable product . Planning Considerations There are several considerations team members must carefully evaluate in the planning phase of application software development : The three types of legislation cover copyright , data protection and electronic communication . Q uesto's Q uestions 3.1 - Planning Projects: 1. A company developing smartphones is considering whether to skip the planning stage and move straight to design. Give two advantages and two disadvantages of planning and two consequences of not planning an application development project . [6 ] 2. Summarise the impact of the three identified types of legislation on application development . [6 ] 3. Justify which planning consideration you think has the biggest potential impact on the success of a software application development project and why . [ 3 ] 4. Describe the impact of three planning considerations (other than legislation and the one you chose in Q3 ) on application development . [6 ] If a company seriously breaches the Data Protection Act , it can be fined up to £17.5 million or 4% of its global turnover , whichever is higher . D id Y ou K now? 2.2 - Phases of Development Models Topic List 3.2 - Project Planning Tools

  • Unit F161 - Developing Application Sotware - Cambridge Advanced National in Computing | CSNewbs

    Navigate between all Unit F161 (Developing Application Software) topics in the OCR Cambridge Advanced National in Computing (AAQ) specification. Qualification: Cambridge Advanced National in Computing (AAQ) Unit: F161: Developing Application Software Certificate: Computing: Application Development (H029 / H129) Unit F161: Developing Application Software These pages are based on content from the OCR Cambridge Advanced National in Computing (AAQ) specification . Unit F161 YouTube Playlist Topic 1: Application Software Considerations 1.1 - Application Platforms 1.2 - Devices 1.3 - Storage Locations Topic 2: Data & Flow in Application Software 2.1 - Data Formats & Types 2.2 - Data Flow 2.3 - Data States Topic 3: API & Protocols 3.1 - Application Programming Interfaces (API) 3.2 - Protocols Topic 4: Application Software Security 4.1 - Security Considerations Topic 5: Operational Considerations 5.1 - Testing 5.2 - Types of Application Software Installation 5.3 - Policies Topic 6: Legal Considerations 6.1 - Legal Considerations

  • Scratch Maze Game | CSNewbs

    This walkthrough will show you how to create a maze game in Scratch . It is split into the following sections: Creating the First Level Choosing the Main Character Animating & Moving the Main Character Back to the Start Adding Score & Time Making Enemies Adding More Levels Extensions Use the links to move between sections easily! 1. Creating the First Level The very first thing to do is to create the level in which our character will move around in! We are going to draw a background from scratch which our hero will run around in to get to the end. Important parts of the pictures are highlighted in yellow ! 1. Select the blank Stage button in the button left to edit the background. Drawing the Background Challenge Task Anchor 1 2. Press on the Backdrops tab. This will show Scratch’s own paint editor on the right. 3. Use the line tool to create straight maze lines on the background. Use the slider at the bottom to increase the width of the line. Remember this is only the first level so don’t make it too difficult. 4. Create a start zone and an end zone with the rectangle tool and then fill them in with the fill bucket tool . You can also change the main background colour using the fill bucket tool. Remember to choose an appropriate level name in the text box at the top. Level Name Rectangle Tool Fill Bucket Tool Make your game more exciting by creating themed levels , like this park background. Other ideas might include a classroom, library or car park. Try switching up the start and end zones by using the circle tool or the line tool and the fill bucket . Come back to this challenge when you are ready to make more levels! 2. Choosing the Main Character Now that you have your first level designed we can make our hero character who is going to navigate the maze and try to get to the end. Picking the main character Anchor 2 1. A character is called a sprite . We will choose a sprite from Scratch’s sprite library . Click on the fairy icon to open the sprite menu. 2. I have selected the Animals category on the left menu. I have chosen the Penguin sprite but choose whichever character you want. 3. Press the Costumes tab and check that your chosen sprite has at least two costumes . We will use these to create animation in the next section to make it look like the sprite is moving. 4. Now that we don’t need the cat anymore we can delete him by right-clicking on his icon and selecting delete . Shrink the Main Character down to size Shrink Tool 5. The sprite is too big for the level background and you will need to shrink them down . Click on the shrink button at the top of the program and then click on the sprite in the paint area to shrink them down. Remember how many times you clicked the sprite to shrink it. You will need to shrink both costumes the same number of times . Here I have shrunk my penguin by 17 clicks when I selected the shrink tool. You can compare the size of your costumes by looking at the image size beneath the icon (e.g. 40 x 53). Picture Size 6. You need to make sure that your sprite is in the centre of the grid otherwise it might cause trouble later when you try to move them. Click on the costume centre button in the top right (it looks like a crosshair ) and drag your sprite into the middle if it is not. Make sure that both costumes are in the centre . Also, give your costumes appropriate names , I have named mine Mr. Penguin 1 and Mr. Penguin 2. Costume Name Costume Centre 3. Animate & Move the Main Character Adding Animation Anchor 3 1. Click on your sprite icon in the bottom left and then on the Scripts tab in the top centre. We will begin using the script blocks and we need to start in the Events category with: ...so drag it over to the script area. This script will run all the blocks that we place beneath it, when the flag is pressed to start the game. 1. 2. You can only add animation if the sprite you chose has at least two different costumes! 2. The second block we need is: ...in the Control category. Every block that we put inside the forever loop block will repeat again and again . We want our character to switch between their costumes infinitely to make it look like they are always walking, which is why we use the forever loop. 3. Click on the Looks category and drag two... ...inside of your forever loop . Use the drop down list (small black triangle on the costume block ) to make one block switch to your first costume and the other block switch to your second costume. 4. In the Control category, drag over two blocks and place one after each of your ‘switch costume to ‘ blocks. 1 second is too long to wait so click on the 1 and change both to 0.5 instead (this is half a second). If you’ve got the code correct so far, when you press the green flag your character should be animated! Moving the Main Character 1. In the Events category drag a into the script area. Change the button from space to ‘up arrow ’ (or any key you like) It is also popular for computer games to use the w key to move up. 2. Click on the Motion category and move over two blocks: and Change the angle of direction from 90 (which is a right turn) to 0 (which is an upwards turn). Now you have just created code to make your character move upwards by ten steps when you press the up arrow! Once you have dragged the blocks when the up arrow is pressed, you can work out how to make your character move down, left and right ALL BY YOURSELF. Add this code in now, before you move on . Rotate the Main Character If you press the green arrow and move your character around you might notice that it doesn't rotate when it moves. Click on the i in the top left of your sprite icon in the bottom left. There are three types of rotation to choose from. Select your preferred style by clicking on one of the three symbols. Full Rotation will turn your sprite up, down, left and right. Horizontal Rotation will only turn your sprite left and right. No Rotation will not turn your sprite at all. it will always appear in the same direction. Anchor 4 4. Back to the Start Starting in the right place We always want the main sprite to start in the green zone when the green flag is pressed to start the game. First drag your sprite to the green zone . Then go to the Motion category and drag over: ...and connect it directly underneath the block you dragged over earlier. Once you’ve added that line of code, click the green flag to make sure that the sprite starts where you want it to . If it doesn’t, then you can change the x (horizontal) and y (vertical) co-ordinates by clicking on the white boxes and changing the values. Back to the start if touching the walls 1. Drag over and connect together the two blocks below: 2. Drag over the two blocks below, put the blue one inside the other and then put them both inside the forever loop : 3. Change the co-ordinates in the blue block you just added so that it matches the same co-ordinates as the block to make the sprite start at the green zone . 4. Now to add the wall detection code! In the Sensing section, drag this block over... ...and put it inside the top of the ‘if then‘ block . Make sure that you put it between the 'if' and 'then' and not underneath. 5. Click once on the box in the ‘touching colour ‘ block and then click the wall or obstacle you want the player to avoid, Now is a good idea to play your game and make sure you can get to the end without being teleported back to the start. If your game is impossible you will need to edit the background – click on the stage icon in the bottom left then the Backdrops tab and edit the walls. Anchor 5 5. Adding Time & Score Recording the Time 1. Click on the Stage icon in the bottom left, we will create new code in the Scripts tab of the stage. DO NOT click the character sprite! Click on the Data category and choose Make a Variable . A variable is something that can change . Call your new variable Time . Adding a Score - The Number of Restarts 2. From the Events category drag: ...then look in the Data category and connect this underneath: ...but it should say Time instead of 'variable'. This code makes the time start at 0 when the game begins. 3. Now we need a loop that increases our variable called Time by 1 every second. First drag over a forever loop : Then place inside of it two blocks: Make sure it says Time instead of variable. Now press the green flag to see the timer go up. 1. In the Data section click on Make a Variable and give it an appropriate name like Restarts . This variable will count how many times we have touched a wall and had to start again. 2. Firstly, go back to the Scripts area for your character – click on the sprite of your main character in the bottom left then the Scripts tab. You need to add two blocks from the Data category: Change variable to Restarts and place it directly underneath the flag. Change variable to Restarts again and place this code directly after the 'go to ' block inside the loop. Now whenever you touch the wall you restart and it records it in the variable called Restarts. 6. Making Enemies Anchor 6 1. Select the fairy icon in the New sprite section to open the Scratch sprite library. 2. From the sprite library choose your enemy . I have selected the polar bear because it fits with my penguin. 3. Select the shrink tool at the top of the program and click on the enemy . Then drag them to where you want them to start . 4. Click on the sprite icon of your enemy then select the Scripts tab. Drag and connect two blocks: 5. From the Control category grab a: ...and place it after the ‘go to ‘ block. Now we will make our enemy glide from his start position to somewhere on our level again and again. Move the enemy to where you want it to go to then add: ...inside the forever loop. Drag another ‘glide ‘ block and place it underneath but change those co-ordinates to the same as the one underneath the the ‘when green flag clicked‘ block. This code makes the enemy move backwards and forwards forever. 6. Make your main character return to the start if they touch the enemy. Click on your main character sprite in the bottom left and then the Scripts tab. You need to copy the exact same code you made earlier to see if the main character is touching the wall , but this time you need to use: ...instead of the touching colour block. Click on the box in the block and select your Main Character . 7. New Levels Anchor 7 Coming Soon To be added soon. This concludes the walkthrough for a Scratch maze game! Try a combination of the suggestions below to add complexity to your game: Using ‘say ‘ or ‘think ‘ blocks in the Looks category to make your sprites say things at certain points (like at the start of a new level). Making your game harder by speeding up enemies in later levels (you could change the number of seconds it takes to glide ) Adding more enemies that only appear in harder levels. Setting a time limit – instead of having your time begin at 0 and increasing by 1 every second, have it start at 30 and decrease by 1 every second. Extensions Anchor 8

  • 6.1 - Legal Considerations | F161 | Cambridge Advanced National in Computing | AAQ

    Learn about legislation and regulations related to application development, including the Data Protection Act, Computer Misuse Act and Freedom of Information Act. 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 Watch on YouTube: Computer Misuse Act Data Protection Act UK General Data Protection Regulation Freedom of Information Act Privacy and Electronic Communications Regulations Independent bodies UK Information Commissioner's Office 6.1 - Legal Considerations You need to know the latest version and main purpose of each act /regulation , as well as actions taken to comply with the act and the impacts of not complying with it. You must also understand how Privacy and Electronic Communications Regulations (PECR ) relate to the Data Protection Act and UK General Data Protection Regulation (UK GDPR ), and the role of the Information Commissioner's Office (ICO ) in the UK. What You Need to Know Developers must ensure application software complies with relevant legislation and regulations to protect users , their data and computer systems and to avoid legal and financial consequences . Computer Misuse Act (CMA) The Computer Misuse Act (CMA ) protects computer systems and data from unauthorised access and misuse . It makes activities such as unauthorised access , hacking and deliberately impairing computer systems criminal offences . Developers must only access systems and data they have permission to use , ensure any security testing is authorised , and must not develop or use software to deliberately gain unauthorised access or damage systems . If individuals do not comply with the CMA , they could face criminal prosecution , fines or imprisonment , while an organisation could also experience financial costs and reputational damage . Example : A developer must have permission before attempting to access restricted parts of a client's system , even if they claim they were only testing its security . Data Protection Act (DPA) The purpose of the Data Protection Act (DPA ) is to control how organisations collect , process , store and protect personal data . It helps ensure people's (known as data subjects ) information is handled fairly , lawfully and securely . Developers should ensure applications only collect necessary personal data , explain how it will be used , only use it for its intended purpose , keep it secure and remove it when it is no longer required . Non-compliance can result in complaints , data breaches , regulatory action , legal disputes , financial penalties , operational disruption and reputational damage . Example : A revision application should not collect a student's home address if that information is unnecessary for providing the service. UK General Data Protection Regulation (UK GDPR) UK General Data Protection Regulation (UK GDPR ) provides rules and principles governing the lawful processing and protection of personal data . It gives individuals rights over how organisations use their information . It operates alongside the DPA 2018 in the UK . Developers should ensure there is a lawful reason for processing personal data , collect only necessary information , clearly explain its use , keep it accurate and secure , avoid retaining it unnecessarily and allow users to exercise their data rights where applicable. If they do not comply , organisations can face investigations , enforcement action , significant fines , compensation claims and reputational damage , particularly following serious data breaches . Example : A bank application collecting account information should clearly tell users what personal data is collected and why it is needed . Freedom of Information Act (FOIA) The Freedom of Information Act (FOIA ) gives people the right to request recorded information held by public authorities , such as government departments , councils , state schools and the NHS , subject to exemptions . To comply , when developing software for a public authority , developers should consider how information can be stored , organised , searched and retrieved so the organisation can respond appropriately to information requests . Non-compliance may cause a public authority to face complaints , investigations , enforcement action and reputational damage if it fails to meet its legal responsibilities . Example : A system developed for a council should allow relevant recorded information to be located when the council receives a valid FOI request . Privacy and Electronic Communications Regulations (PECR) Privacy and Electronic Communications Regulations (PECR ) protect people's privacy when using electronic communications , including rules covering electronic marketing , cookies and similar technologies and the security of communications services . To comply, developers may need to ensure applications obtain appropriate consent for non-essential cookies or similar technologies , provide relevant information to users and follow the rules when enabling electronic marketing such as emails or text messages . If they don't comply , organisations could face regulatory action , financial penalties , complaints and reputational damage . Example : A website should not simply place certain advertising or analytics cookies on a user's device without providing the required information and obtaining consent where required. Independent Bodies Independent bodies are organisations that operate separately from the organisations they oversee and can provide guidance , monitor legal compliance and take action when rules or standards are not followed . When developing application software , independent bodies may: Provide guidance and codes of practice that developers can follow. Monitor and investigate whether organisations are meeting their legal responsibilities . Handle complaints from users or members of the public . Take or recommend enforcement action when organisations fail to comply . Help developers understand how legislation should be applied to applications and user data . Information Commissioner's Office (ICO) The Information Commissioner's Office (ICO ) is the UK's independent regulator for information rights and data protection , overseeing areas including the DPA , UK GDPR , FOIA and PECR . When developing application software , the ICO is relevant because it: Provides guidance on how personal information should be collected , processed , stored and protected . Helps organisations understand how to comply with data protection and privacy legislation . Can investigate complaints and data breaches . Can take enforcement action when organisations fail to meet their legal obligations . Promotes good practice in areas such as privacy , electronic marketing , cookies and protecting users' information . Example : If developers create an application that collects users' names , email addresses and dates of birth , they can use ICO guidance to help ensure the application handles this personal data appropriately and complies with data protection requirements . Q uesto's Q uestions 6.1 - Legal Considerations: 1. State the main purposes of the CMA , DPA , UK GDPR , FOIA and PECR . [ 2 each ] 2. For each act or regulation , explain the actions developers should take to ensure application software complies with its requirements . [2 each ] 3. Explain the possible impacts on an organisation if its application software does not comply with relevant legislation or regulations . [2 each ] 4. Explain the role of independent bodies and the Information Commissioner's Office (ICO ) when developing and operating application software. [4 ] 5. A revision app collects users' personal data , uses cookies and sends marketing emails . Identify the relevant legislation and explain how the developers should comply with it. [4 ] Following a 2018 cyberattack , personal data belonging to more than 400,000 British Airways customers was compromised . In 2020 , the Information Commissioner's Office ( ICO ) fined British Airways £20 million for failing to adequately protect its customers' data , the largest data protection fine the ICO has issued. D id Y ou K now? 5.3 - Policies Topic List

© CSNewbs 2026

The written, video and visual content of CSNewbs is protected by copyright. © 2026
bottom of page