top of page

Search CSNewbs

Search this site

304 results found with an empty search

  • 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

  • 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

  • 6.6 - Logical Protection | Unit 2 | OCR Cambridge Technicals | CSNewbs

    Learn about the methods of digital protection including antimalware, firewalls and obfuscation. Based on the 2016 OCR Cambridge Technicals Level 3 IT specification for Unit 2 (Global Information). 6.6 - Logical Protection Exam Board: OCR Specification: 2016 - Unit 2 Logical protection refers to using digital methods of security to protect computer systems and data. Usernames & Passwords ****** Anti-Malware Usernames must be matched with a secure password to minimise the chances of unauthorised users accessing a system. Passwords should contain a mix of uppercase and lowercase letters , punctuation and numbers . Passwords should be of a substantial length (at least 8 characters) and should be regularly changed . Anti-virus software scans a system and removes viruses . If left to infect a system a virus could delete data or permit access to unauthorised users . Anti-spyware software removes spyware on an infected system so hackers cannot view personal data or monitor users. Organisations should install and regularly update anti-virus and anti-spyware programs. Firewall Encryption Firewalls prevent unauthorised access to or from a network . Firewalls filter data packets and block anything that is identified as harmful to the computer system or network. Firewalls can also be used to block access to specific websites and programs. A firewall can be in the form of a physical device which is connected to the network, or software installed on a computer system. Encryption is the conversion of data ( plaintext ) into an unreadable format ( ciphertext ) so it cannot be understood if intercepted . Encrypted data can only be understood by an authorised system with a decryption key . There are two types of encryption . Encryption at rest is when data is encrypted while it is being stored on a system or storage drive. Encryption in transit is to secure the data as it being transferred between systems on a network. Tiered Levels of Access Obfuscation ?????? The purpose of tiered levels of access is to grant different types of permission to certain users. Managing levels of file access ensures that only authorised people can access and change certain files . There are different levels of file access : No access Read-only - Allows a user to view but not edit. Read/write - Allows a user to view and edit. Obfuscation is when data is deliberately changed to be unreadable to humans but still understandable by computers . Program code might be obfuscated to stop rival programmers from viewing and stealing it if they were able to access it. Specialist software can be used to obfuscate data and convert it back into a human-readable format. Q uesto's Q uestions 6.6 - Logical Protection: 1a. Describe why usernames and strong passwords are necessary. [2 ] 1b. State 3 rules for choosing a strong password . [3 ] 2. Describe the purpose of anti-virus and anti-spyware software. [4 ] 3. Describe the roles of a firewall . [4 ] 4. Explain what encryption is. What are the two types? [4 ] 5. Why would an organisation use tiered levels of access ? What are the 3 levels of file access ? [5 ] 6. What is obfuscation ? State a scenario in which it would be used. [3 ] 6.5 - Physical Protection Topic List

  • 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

  • 1.3.3 - Application Software Types | F160 | Cambridge Advanced National in Computing | AAQ

    Learn about the purpose, characteristics, advantages, disadvantages, examples and client requirements of application software types, including off-the-shelf, custom off-the-shelf and bespoke software. Resources 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) 1.3.3 - Application Software Types Watch on YouTube : Off-the-Shelf Software Custom Off-the-Shelf Software Bespoke Software There are three application software types you need to know : Off-the-shelf software Custom off-the-shelf software Bespoke software For each software type , you need to know : Its purpose and common characteristics . The advantages and disadvantages of using the software. How client requirements affect the selection of that software. Application Software Types Off-the-Shelf Software Off-the-shelf software is pre-made and available for anyone to buy and use . It is designed for general users and common tasks . It is pre-developed and ready-made with standard features for a wide audience , not custom-built for a specific user. Its purpose is to provide a cost-effective , quick-to-deploy solution for popular applications . Custom Off-the-Shelf Software Custom off-the-shelf software is pre-built like regular off-the-shelf software , but can be slightly customised to meet specific user needs . It offers a balance between quick setup and limited personalisation . It supports configurable features such as add-ons , plugins or modules to extend or adapt functionality while the base software remains maintained and updated by the original developer . Bespoke Software Bespoke software is designed and built specifically for one organisation or user . It fits their exact needs but usually costs more and takes longer to develop . An example is a bespoke system developed for a specific bank with custom software to handle financial regulations , unique products and security needs . Other examples include government systems , hospital patient management and air traffic control . Q uesto's Q uestions 1.3.3 - Application Software Types: 1. Explain the differences in purpose and characteristics between off-the-shelf and custom off-the-shelf software. [4 ] 2. A dental surgery needs new software to manage its customer bookings . Justify which application software type they should use and why . [4 ] 3. Describe two advantages and two disadvantages of the three application software types on this page. [ 12 ] Off-the-shelf software gets its name from the days when software like Microsoft Word was sold on physical discs in shops , for customers to take off the shelf and install at home . D id Y ou K now? 1.3.2 - Software Categories Topic List 2.1 - Software Development Models

  • 2.1 - Information Styles | Unit 2 | OCR Cambridge Technicals | CSNewbs

    Learn about the wide range of style data and information can be presented in, both digitally and physically. Based on the 2016 OCR Cambridge Technicals Level 3 IT specification for Unit 2 (Global Information). 2.1 - Information Styles Exam Board: OCR Specification: 2016 - Unit 2 There are many different ways that information can be styled and presented , both on-screen and physically . There are many more benefits and limitations to using each information style but some key ideas have been described below. T Text Text is a written (or typed ) format of information. ✓ Text provides detailed summaries and explanations . ✓ The format of text can be changed to suit its purpose (e.g. include bullet points or different colours). ✓ Text can be written in different languages so that all literate people can understand. X Large amounts of text can be difficult and time-consuming to read. It is generally less engaging than most other methods. X Text may include spelling errors or be factually incorrect . Graphics Graphics are a visual form of information. Examples include logos , photographs and diagrams . ✓ Graphics are multilingual - they can be understood by anybody regardless of their spoken language. Companies like IKEA will use the same graphics globall y . ✓ Graphics can present an idea or message immediately and can use associations (e.g. the colour red is associated with temperature or anger). ✓ Graphics are a more engaging method of presenting information than text. X Images may take longer to load over a data-restricted network, for example, images in an email may not be automatically downloaded. Video Videos are visual formats of information, often with audio . ✓ More engaging and easier to follow than reading large amounts of text. ✓ Videos can be used to convey a message in a short space of time , e.g. television adverts. ✓ Audio can be added to videos such as music for engagement or narration to explain a process. X Videos usually take up a relatively large amount of storage space , longer videos may take time to upload / download / transfer along a network. X Videos take a long time to create including filming, editing and narration. Animated Graphics Animated graphics are images with multiple frames , such as an animation of the heart showing individual steps that a user can pause and step through in their own time. ✓ Can be used to show a process and is easier to understand than reading text. ✓ Can be understood by all ages and language speakers . X Creating an animated graphic takes time to create , especially educational resources with multiple frames and annotation. 9 Numerical Numerical information is represented by numbers . This can include a wide array of different information including statistics, financial data, dates, ages and distances . ✓ Statistical data is easier to understand and manage in a numerical format than standard text - 234,567 is simpler to work with than "two hundred and thirty-four thousand, five hundred and sixty-seven". ✓ Numerical data can be exported into spreadsheets and presented as graphs to visualise the dat a . X Long numbers can be entered by humans incorrectly and lead to incorrect results . X Formatted data like telephone numbers cannot be stored as numerical because numerical does not allow spaces and does not allow the number to start with 0 . Audio Audio is an information type using sound waves. A common form of audio is music , such as the millions of tracks stored in music libraries like Spotify and YouTube. Non-music examples include spoken instructions and podcasts . ✓ Users can listen to information when they are otherwise busy and could not read, such as when walking or driving. ✓ Visually impaired users who are unable to read can still hear audio and interact with voice recognition software . ✓ Some users prefer listening to instructions rather than reading text . X Audio may not be suitable in some environments e.g. noisy areas . X Words may be misheard and misunderstandings made, possibly due to pronunciations or accents. Tactile Images Tactile images are a form of physical information that can be interpreted by touch . Specialist software is used to create raised lines on paper that people can experience by touching . Geographers can create 3D physical objects of environments such as valleys or volcanoes. This allows researchers and land surveyors to have a better understanding of a geographic area. ✓ Users can better understand a physical environment or prospective design if it is physically built. ✓ Visually-impaired users can feel the object instead of being able to see it. ✓ The tactile image can be used as a prototype for a target audience to feel and comment on. X It is difficult to share a tactile image without physically moving it, unlike digital or paper information styles. X Creating a tactile image requires specialist equipment like a 3D printer. *screams* Subtitles Subtitles are a textual form of information that can be shown along with visual data such as a video. Subtitles are written to transcribe audio , such as speech, into words . ✓ Hearing-impaired users can access audio information formats such as video by reading the subtitles. ✓ Subtitles can be used in noisy environments or when sound cannot be played. ✓ Subtitles can be used for translated speech , such as in promotional videos or television programmes. X Auto-generated subtitles are often incorrect . X Subtitles written by a human take a long time to type up and sync in time with the audio. Tables & Spreadsheets Tables and spreadsheets can store both numerical and textual data ready for analysis . Examples include simple database tables and financial spreadsheets of a company's profits this year. Microsoft Access is an example of database software that uses tables and Microsoft Excel is an example of spreadsheet software. When using spreadsheets (or databases) records can be locked ('record locking' ) so that only one person can make edits at any one time . Edits will be saved before unlocking the file. This will stop data being incorrectly overwritten and will ensure that the data in the spreadsheet is up-to-date , accurate and fit for purpose . Spreadsheets can be linked to other documents such as forms to directly import data from. This data can be ordered into different groups and conditional formatting can be used to automatically organise and style the data. Graphs and charts can be created using values stored in a spreadsheet to easily visualise the data . Modelling can be used to see the effect of variable changes (e.g. will raising the price of one product affect overall profit?). Database tables use queries (advanced searches) to find and display data based on given criteria (such as all males under 35). Mail merge can be used to automatically send emails to the customers highlighted in the query . A report can be generated from the query results to display the information in a structured format . This can be used to make decisions and analyse data . Boolean Boolean is a data type that can only have one of two specified values . These values are most commonly 'True' and 'False' or sometimes 'yes' and 'no'. Braille Braille is an example of a tactile image that can be physically touched . Braille characters represent letters or numbers that can be 'read' by touch - used primarily by those with visual impairments . Devices like braille terminals convert characters on a screen into braille, line-by-line so that blind people can understand the information through touch . A braille printer is used to output braille dots onto paper. ✓ Allows visually impaired users to interact with a computer system using a braille terminal . ✓ A braille printer can print documents written using braille to be given to blind people to 'read'. X Braille terminals can only display a limited amount of information at a time. X Braille is not used by many people except visually impaired people so few resources are written using braille. Charts & Graphs Charts and graphs can be used to present numerical data in a format that is easier to visualise and understand . They can be labelled to show different data values and they make it easier for viewers to identify trends and make comparisons between data. Large quantities of data, like census results, are easier to visualise in a graph than reading huge tables of numbers. ✓ Charts present numerical data in a format that is easier to visualise and understand . ✓ Charts and graphs can summarise information into one image data that would take paragraphs to explain in text. ✓ Displaying information in a graph allows users to easily identify trends and make comparisons between data . X Charts can be misleading or can display incorrect information if the numerical data is wrong. Q uesto's Q uestions 2.1 - Information Styles: 1. Describe the following information styles : a. Tactile Images [2 ] b. Braille [2 ] c. Boolean [2 ] 2. Describe two advantages and two disadvantages for each of the following information styles : a. Text [8 ] b. Graphics [8 ] c. Video [8 ] d. Animated Graphics [8 ] e. Numerical [8 ] f. Audio [8 ] g. Tactile Images [8 ] h. Subtitles [8 ] i. Braille [8 ] j. Charts & Graphs [8 ] 3a. Spreadsheets and database tables can be record locked . Explain what record locking is and why it is used . [4 ] 3b. Describe different ways that spreadsheets can be used. [6 ] 3c. Describe different ways that databases can be used. [6 ] 1.7 & 1.8 - Internet Pros & Cons 2.2 - Information Classification Topic List

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

  • 4.2 - Client Requirement Specfications | F160 | Cambridge Advanced National in Computing AAQ

    Learn about the importance of client requirement specifications and the need for specific elements such as functional requirements, process constraints and data formats. 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) 4.2 - Client Requirement Specifications Watch on YouTube : Client Requirement Specifications A client requirement specification is a detailed document that outlines what the client needs from a new system . Elements include the new system’s purpose , functional and non-functional requirements , constraints and success criteria . As well as understanding the importance of creating client requirement specifications , you need to know the purpose of each element and how they can be gathered using the methods from section 4.1 . Client Requirement Specifications Elements of Requirement Specifications Specifications ensure developers and stakeholders fully understand what the client wants the system to do , avoiding misunderstandings and costly changes later. There are several elements of client requirement specifications you need to know : Purpose of the new system Current system deficiencies Requirements ( functional and n on-functional ) Data formats Process constraints Version and source control Client-defined constraints Three considerations for data storage location are local/onsite , cloud and physical storage devices . Budget Time Integration Software Hardware Data storage location Q uesto's Q uestions 4.2 - Client Requirement Specifications: 1. Give three reasons why it is important to create a client requirement specification . [8 ] 2. Describe the purpose of each client-defined constraint . [6 ] 3. Describe the difference between functional and non-functional requirements . [ 2 ] Some cloud storage data centres are built in cold climates , such as Sweden and Norway , to reduce cooling costs for servers that run 24/7 . D id Y ou K now? 4.1 - Gathering Client Requirements Topic List 4.3 - Decomposition Methods

  • 2.2 - Computational Methods | OCR A-Level | CSNewbs

    Learn about computational methods including problem recognition, decomposition, divide and conquer, abstraction, backtracking, data mining, heuristics, performance modelling, pipelining and visualisation. Based on the OCR H446 Computer Science A-Level specification. Exam Board: OCR A-Level Specification: Computer Science H446 3.1f - Standard Algorithms Watch on YouTube : Bubble sort Merge sort Insertion sort Quick sort Linear search Binary search Djisktra's algorithm A* algorithm The OCR A-Level course requires an understanding of algorithms used for sorting , searching and pathfinding including how they can be used for traversing and how to write them in pseudocode or a high-level programming langauge . Bubble Sort Bubble sort repeatedly compares adjacent items and swaps them if they are in the wrong order . Its advantage is that it is very simple to understand and easy to implement . However, it is extremely slow for large lists , with a worst- and average-case time complexity of O(n²) . It performs slightly better (O(n)) if the list is already nearly sorted and the algorithm is optimised t o detect no swaps . Overall, it is easy but inefficient . YouTube video uploading soon Merge Sort Merge sort is a divide-and-conquer algorithm that repeatedly splits a list into smaller sublists , sorts them recursively and then merges them back together . Its major benefit is that it is consistently fast with a time complexity of O(n log n) in the best , average and worst cases , making it very efficient for large datasets . It is also stable and works well with linked lists . However, a drawback is that it requires additional memory to store the temporary sublists , making its space complexity O(n) . Merge sort is therefore reliable but not memory-efficient . YouTube video uploading soon This page is under active development. Check here for the latest progress update. Insertion Sort Insertion sort works by taking each item and inserting it into the correct position in a growing sorted portion of the list . It is efficient for small or nearly sorted datasets and has a best-case complexity of O(n) , making it useful in real-time systems or hybrid algorithms . However, for large , randomly ordered datasets it becomes slow , with average- and worst-case performance of O(n²) . It uses very little memory space - (O(1) - which is one of its key benefits compared to more complex sorts like merge or quick . YouTube video uploading soon Quick Sort Quick sort is a divide-and-conquer algorithm that chooses a pivot , partitions the list into smaller elements and larger elements , and recursively sorts the partitions . Its main advantage is speed : the average-case time complexity is O(n log n) and it is often faster in practice than merge sort due to good cache performance and in-place partitioning . However, if poor pivot choices are made (e.g., always picking the first item in an already sorted list ), the worst case becomes O(n²) . Despite this, quick sort is widely used because good pivot-selection strategies minimise this risk . YouTube video uploading soon Linear Search Linear search checks each item in a list one by one until it finds the target value or reaches the end . Its benefit is that it works on any list (sorted or unsorted ) and is extremely simple to use and implement . The drawback is inefficiency for large datasets because its best , average and worst time complexity is O(n) . This means the time taken grows directly with the size of the list , making it suitable only for small collections of data . YouTube video uploading soon Binary Search Binary search repeatedly halves a sorted list to locate a target value , making it much faster than linear search . Its key benefit is efficiency : the time complexity is O(log n) for best , average and worst cases , meaning performance scales extremely well with large datasets . However, its major limitation is that the data must be sorted beforehand , and maintaining a sorted list can itself be costly . When this condition is met , binary search is one of the most efficient searching algorithms available. YouTube video uploading soon Dijkstra's Algorithm Dijkstra’s algorithm is a pathfinding algorithm used to find the shortest path from a starting node to all other nodes in a weighted graph with non-negative edge weights . It works by gradually exploring the graph , always choosing the next closest unvisited node , updating the shortest known distances to its neighbours and marking nodes as 'visited ' once the shortest path to them is confirmed . The algorithm continues until all nodes have been processed or the destination is reached , guaranteeing the shortest path . YouTube video uploading soon A* Algorithm The A* algorithm is an informed pathfinding algorithm that also finds the shortest path in a weighted graph , but it uses a heuristic (an estimate of the distance to the goal ) to guide its search more efficiently toward the target . A* combines the actual cost from the start to a node with a heuristic estimate of the remaining distance , allowing it to prioritise exploring nodes that appear more promising . YouTube video uploading soon Q uesto's K ey T erms Sorting Algorithms: bubble sort, flag, pass, merge sort, insertion sort, quick sort, pivot Seraching Algorithms: linear search, binary search, precondition Pathfinding Algorithms: Dijsktra's algorithm, A* algorithm, heuristic D id Y ou K now? Halo: Combat Evolved released on the Xbox in 2001 and introduced groundbreakingly convincing enemy AI for the time. Pathfinding algorithms were used more realistically than older games so that enemies wouldn't just run directly at the player but behaved in different ways depending on the situation , such as cooperating , flanking or retreating by reacting dynamically to the player . 3.1e - Data Structure Algorithms A-Level Topics

  • 3.6 - 7 Layer OSI Model - Eduqas GCSE (2020 spec) | CSNewbs

    Learn about networking standards and the seven layers of the Open Systems Interconnected (OSI) model - Application, Presentation, Session, Transport, Network, Data Link and Physical. Based on the 2020 Eduqas (WJEC) GCSE specification. 3.6: 7-Layer OSI Model Exam Board: Eduqas Specification: 2020 What are networking standards? Networking standards are rules that allow computer systems to communicate across networks . Standards have been created to ensure devices can exchange data and work together . What is the 7-layer OSI Model? The OSI ( Open Systems Interconnection ) model is split into 7 layers . The model is used to visualise the different parts of a network as each of the seven layers has a specific role . Splitting a network design into layers is beneficial to programmers as it simplifies design , making it easier to modify and use . Each layer has a certain purpose and is associated with different protocols . The seven layers are explained below: 7 Allows humans and software applications to use the network e.g. browsers (HTTP /HTTPS ) and email (SMTP ) and file transfer (FTP ). 6 The purpose of the presentation layer is to display data in a standard format that other devices can accept and understand . 5 The session layer establishes a connection between computers allowing data to be sent between them. Data can be synchronised in each session to allow for efficient data transfer . 4 TCP breaks the data down into data packets . This layer makes sure the data is sent and received in the correct order and reassembled at the destination without errors. 3 IP is responsible for addressing and routing data packets . The optimal route for the data to take is calculated in this layer. Also known as the 'Internet Layer '. 2 Ethernet sets out the format of data packets . This layer handles transmission errors and passes data to the physical layer . 1 This layer converts the data packets into bits so they can be transferred across a physical connection using routers and switches . Q uesto's Q uestions 3.6 - 7-Layer OSI Model: 1a. What are networking standards ? [ 2 ] 1b. Describe why network designs are split into layers . [ 2 ] 2. Create a diagram similar to the one above and describe each layer of the OSI Model. [ 14 ] 3. Look at the statements below and name the layer that is being described: a. This layer ensures data packets are sent and received correctly. b. This layer checks for errors in transmission and sets out the data packet format. c. This layer displays data in a format that can be understood. d. This layer allows software like web browsers to interact with the network. e. This layer transfers bits across a connection using routers. f. This layer establishes a connection between computer systems. g. This layer uses addresses to ensure data packets take the correct route. [ 7 ] 3.5 - Protocols Theory Topics 3.7 - The Internet

  • 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 ASCII ASCII (American Standard Code for Information Interchange ) is a character-encoding system that represents 256 characters using 8-bit ( 1 byte ) binary codes , including English letters , numbers , punctuation and control characters . It is used for storing and transferring basic English text , such as simple text files and character-based data . It is simple , requires little storage and is widely supported by different computer systems . However, it supports a limited range of characters , so it cannot represent most non-English alphabets , symbols or emojis . Link, Ocarina of Time, 1998 Lamball, Palworld, 2024 This information can simply be stored as plain ASCII characters. Unicode Unicode is a character-encoding standard that can represent a very large range of characters and symbols from different languages . A common encoding is UTF-16 , which uses 16 bits (two bytes ) for 65,536 possible characters . It is typically used for websites , applications and documents that need to store multiple languages , symbols and emojis . Unicode supports characters from many different languages and provides a consistent standard across different systems . However, some Unicode encodings can require more storage per character than ASCII, and incorrect encoding can cause characters to display incorrectly . Link 🗡️ | Ocarina of Time ⏳ | 1998 🗓️ Lamball 🐑 | Palworld 👹 | 2024 🗓️ Similar to ASCII, but Unicode allows a much wider range of characters and symbols. CSV CSV (comma-separated values ) is a plain-text , tabular format where each row represents a record and values are separated into columns , usually by commas . The first row often contains column names . It is used in storing and transferring tabular data , such as spreadsheets , datasets and data exported from databases . CSV is simple , human-readable , lightweight and widely compatible , resulting in small files that are fast to process and can be opened by many applications . But, it has limited support for data types and complex/nested data , with no enforced structure or validation , meaning inconsistent formatting , missing values and encoding problems can occur. Character,Game,Year Link,Ocarina of Time,1998 Lamball,Palworld,2024 Each value is separated by a comma, with column headings on the first row. Fixed Width Fixed width is a text-based format where each field is allocated a fixed number of characters , so data always starts and ends at predetermined positions . It is used in legacy systems , financial systems and transferring structured records where fields need to remain in predictable positions . Fixed width has a consistent and predictable structure , making fields easy for software to locate without needing separators . But it can waste storage space because fields must use their allocated width and changing the structure or allowing longer values can be difficult . Character Game Year Link Ocarina of Time 1998 Lamball Palworld 2024 Each field is given a set amount of space so that the values line up. JSON JSON (JavaScript Object Notation ) is a lightweight , text-based and human-readable format that uses key-value pairs and can contain nested data . It is used when transferring structured data between applications , particularly web applications , servers and APIs . JSON is lightweight , easy for humans to read and software to process , supports complex/nested data and works with many programming languages . It is simple to read/write , scalable and language-independent . But it can become difficult to read with large or deeply nested datasets , and syntax errors can prevent the data from being parsed correctly . { "character": "Link" , "game": "Ocarina of Time" , "year": 1998 } Data is stored using key-value pairs. XML XML (eXtensible Markup Language ) is a text-based , human-readable format that uses custom tags and attributes to describe and structure data and supports hierarchical/nested data . It is used to store and transfer structured data between different applications and systems , including configuration files and data exchange . XML is flexible , platform-independent and human-readable , with support for metadata and nested structures that allow complex data to be represented . However, XML can be verbose (uses lots of extra text/tags ), increasing file size and processing requirements . Complex XML can be difficult to process and syntax errors such as unclosed tags can prevent data from being parsed . Link Ocarina of Time 1998 Data is stored between descriptive opening and closing tags Data Types Character A character stores a single letter (e.g. L ), digit (e.g. 7 ) or symbol (e.g. @ ). It is used to store individual values such as initials , grades or single-letter codes . It is suitable and storage-efficient when only one character needs to be stored , but can only store one character , so multiple characters require a string . String A string stores a sequence of characters , such as "Pokopia" , "Nintendo Switch 2" or "2026" . Strings store text-based information , such as names , addresses , usernames and descriptions . They can store multiple characters and a wide variety of text , making it flexible for textual data . However, they usually require more storage than a single character , and numbers stored as strings cannot normally be used directly in mathematical calculations . Integer An integer stores whole numbers with no decimal places , including positive numbers , negative numbers and zero , e.g. -5 , 0 , 120 . It is used to store values that are counted in whole numbers , such as quantity , lives remaining or number of users . Integers require less storage and can be faster and more precise to process than real numbers when decimals aren't required . However, they cannot represent fractional or decimal values , making it unsuitable for values such as 3.5 . Real A real (also known as a float ) stores numbers that can contain a fractional/decimal part , such as 3.14 , -2.5 or 10.0 . it is used in storing measurements and calculations requiring decimal values , such as temperature , distance or speed . Reals can represent a much wider range of numerical values than integers , including fractional values . However, they require more storage than an integer and some real numbers cannot be represented exactly , potentially causing small rounding errors . Boolean A Boolean stores one of two possible values , usually True or False . It is used in representing yes/no or on/off condition s, such as whether a user is logged in . It requires little storage and is simple and efficient for making decisions in programs . But it can only represent two states , so it is unsuitable when more possible values are needed . Date The date data type stores a calendar date , typically containing a day , month and year , such as 21/11/1998 . It is used to store dates of birth , appointment dates , deadlines and release dates . it allows software to validate , compare , sort and perform calculations with dates . However, different date formats can cause confusion or compatibility problems . For example, 11/10/2026 could mean 11th October or 10th November . Q Half-Life 2 493 93.4 True 18/08/2026 Q uesto's Q uestions 2.1 - Data Formats & Types: 1. For each data format (ASCII , Unicode , CSV , fixed width , JSON and XML ), describe its characteristics and give one typical use . [ 3 each ] 2. Give two advantages and two disadvantages of each of the following data formats : CSV , fixed width , JSON and XML . [ 4 each ] 3. Explain the difference between ASCII and Unicode , including an advantage and disadvantage of each. [ 5 ] 4. For each data type (Boolean , Character , Date , Integer , Real and String ), describe its characteristics and give an example of data it could store. [ 2 each ] 5. For a hospital database , explain why different data types and data formats would be suitable for storing different pieces of data . Be specific . [5 ] Some older computers stored years using only two digits to save space . This contributed to the Y2K problem , where 00 could be interpreted as 1900 rather than 2000 , leading organisations around the world to check and update their systems before the new millennium . D id Y ou K now? 1.3 - Storage Topic List 2.2 - Data Flow

  • Python | 1a - Printing | CSNewbs

    Learn how to create print statements in Python. Try practice tasks and learn through text and images. Perfect for students learning GCSE Computer Science in UK schools. top Python 1a - Printing Printing in Python To output a message onto the screen, use the print command. Then place your message within brackets and speech marks . For example: print ( "Welcome to Python!" ) When you run the program, the text will print to the Python console: Welcome to Python! Printing Task 1 (Full Name & To Your Left) On the first line, print your first name and surname. On the next line, write another print statement to print t he name of the person (or thing) to your left. Example solution: Elsie Parker pencil case Printing over Several Lines One way of writing across multiple lines is to write several print commands like this: print ( "Welcome to...." ) print ( "Computer Science " ) print ( "Newbies!!! " ) = Welcome to .... Computer Science Newbies!!! However, when we program, we always want to make our code the most efficient it can be by using as few lines as possible . Therefore you can write \n within a printed statement to move it to the next line. Make sure you use \ and not / otherwise it will print the slash and not make a new line! print ( "Welcome to....\n Computer Science\n Newbies!!! " ) = Welcome to .... Computer Science Newbies!!! Both pieces of code display the same thing, but the second one is more efficient because it only uses one line. Printing Task 2 (Name, Colour, Movie) Use \n to write your name, favourite colour and favourite movie in only one line of code. Example solution: Matthew yellow Interstellar ⬅ Setting Up Python 1b - Comments ➡

© CSNewbs 2026

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