top of page

Search CSNewbs

Search this site

304 results found with an empty search

  • Python | CSNewbs

    Learn how to create simple programs in Python. Try practice tasks and learn through text and images. Perfect for students learning GCSE Computer Science in UK schools. Formerly pynewbs.com. Follow the instructions in each section and try the practice tasks on every page . At the end of each section are larger problems to solve. Pyt hon Sections 0. Setting up Python Installing and Using Python 1. Printing and Variables a. Printing b. Comments c. Creating Variables d. Using Variables Section 1 Practice Tasks 2. Inputting Data a. Inputting Text b. Inputting Numbers Section 2 Practice Tasks 7. Subroutines a. Procedures b. Functions Section 7 Practice Tasks 8. Lists a. Using Lists b. 2D Lists c. Dictionaries Section 8 Practice Tasks 9. String Handling a. Basic String Handling b. Number Handling Section 9 Practice Tasks 3. Data Types & Calculations a. Data Types b. Simple Calculations Section 3 Practice Tasks 4. Selection a. If Statements b. Mathematical Operators ( & MOD / DIV) c. Logical Operators Section 4 Practice Tasks 5. Importing from Libraries a. Random b. Sleep c. Date & Time d. Colorama e. More Libraries (math) Section 5 Practice Tasks 6. Loops a. For Loops b. While Loops Section 6 Practice Tasks 10. File Handling a. Open & Write to Files b. Read & Search Files c. Remove & Edit Lines Section 10 Practice Tasks 11. User Interfaces a. Graphical User Interface 12. Authentication a. Error Handling Extended Tasks Extended Task 1 (Pork Pies) Extended Task 2 (Lottery) Extended Task 3 (Blackjack) Extended Task 4 (Vet Surgery) Extended Task 5 (Colour Collection) Extended Task 6 (Guess the Word) Extended Task 7 (Guess the Number)

  • 1.2 - Designing Algorithms - OCR GCSE (J277 Spec) | CSNewbs

    Learn about designing algorithms including constructing pseudocode and flowcharts. Based on the J277 OCR GCSE Computer Science specification (first taught from 2020 onwards). Exam Board: OCR 1.2: Designing Algorithms Specification: J277 Watch on YouTube : Inputs, Processes & Outputs Structure Diagrams Pseudocode Flowcharts Writing Code in Exams Trace Tables What is an algorithm? An algorithm is a set of instructions , presented in a logical sequence . In an exam you may be asked to read and understand an algorithm that has been written. To prove your understanding you may be asked to respond by actions such as listing the outputs of the algorithm, correcting errors or identifying an error within it. Programmers create algorithm designs as a method of planning a program before writing any code. This helps them to consider the potential problems of the program and makes it easier to start creating source code. There are two main methods of defining algorithms are pseudocode and flowcharts . In exams , OCR will display algorithms in their own 'OCR Exam Reference Language '. Visit the Python section of CSNewbs ---> OCR Exam Reference Language Below is a list of all of the code concepts from the OCR J277 GCSE specification that you need to know , presented in OCR Exam Reference Language (OCR ERL ), which is how code will be presented in the paper two exam . The code below is NOT Python . There are several differences between OCR ERL and real high-level languages like Python or Java , especially in the 'String Handling ' section and with for loops . In an exam, you can write in OCR ERL or a programming language you have learnt. All code-related videos in the CSNewbs YouTube series for Paper 2 show both OCR ERL and Python side-by-side . Basic Commands Annotation // Comments are written using two slashes Assignment name = "Harold" age = 49 Constants and Global Variables constant tax = 15 global name = "Admin" Input / Output name = input ( "Enter your name") print ("Transaction Complete") Casting str (29) int ("102") float (30) bool ("False") Random Number number = random (1,100) Selection Selection (if - then - else) if firstname == "Steven" then print("Hello" + firstname) elif firstname == "Steve" then print("Please use full name") else print("Who are you?") end if Selection (case select) switch day: case “Sat”: print(“It is Saturday”) case “Sun”: print(“It is Sunday”) default : print(“It is a Weekday”) endswitch Iteration Iteration (for loop) for i = 1 to 10 step 1 input item next i Iteration (while loop) while firstname ! = "Steven" firstname = input("Try again:") endwhile Iteration (do while loop) do firstname = input("Guess name:") until firstname == "Steven" String Handling Length of a String word = "dictionary" print(word.length ) outputs 10 Substrings word = "dinosaurs" print(word.substring (2,3)) outputs nos print(word.left (3)) outputs din print(word.right (4)) outputs aurs Concatenation name = "Penelope" surname = "Sunflower" print(name + surname) String Cases phrase = "The Cat Sat On The Mat" print(phrase .lower ) print(phrase .upper ) ASCII Conversion ASC ("C") returns 67 CHR (100) r eturns "d" File Handling File Handling - Reading Lines file1 = open ("Customers.txt") while NOT file1.endOfFile() print(file1.readLine() ) endwhile file1.close() File Handling - Writing to a (New) File newFile ("paint.txt") file2 = open ("paint.txt") paint = input("Enter a paint colour:") file.writeLine (paint) file2.close() Arrays Declare Array array names[3] array names = "Ella", "Sam", "Ali" Declare 2D Array array grid[4,5] Assign Values names[2] = "Samantha" grid[1,3] = "X" More Programming Keywords Connecting strings together using the + symbol is called concatenation . Extracting certain parts of a string (e.g. using .substring() ) is called slicing . An if statement within an if statement or a loop within a loop is called nesting . Flowcharts A flowchart can be used to visually represent an algorithm. It is more likely you will need to be able to interpret a flowchart rather than draw one. The flowchart symbols are: The terminator symbol is also known as a terminal . Algorithm Examples Below are two different methods for representing the same algorithm - a program to encourage people to buy items cheaply at a supermarket. The program allows the price of items in a supermarket to be entered until the total reaches 100. The total price and the number of items entered are tracked as the program loops. Once the total reaches 100 or more, an if statement checks how many items have been entered and a different message is printed if there are 20 or more items, 30 or more items or less than 20 items. Pseudocode // This is a program to see how many items you can buy in a supermarket before you spend over £100} total = 0 itemsentered = 0 while total < 100 itemprice = input ("enter the price of the next item") total = total + itemprice itemsentered = itemsentered + 1 endwhile if itemsentered >= 20 then print ("You are on your way to saving money.") elif itemsentered => 30 then print ("You're a real money saver.") else print ("Look for better deals next time.") endif Flowchart Reading Algorithms In an exam you may be asked to read an algorithm and prove your understanding , most commonly by listing the outputs . Start from the first line and follow the program line by line , recording the value of variables as you go . When you encounter a for loop , repeat the indented code as many times as stated in the range . Example Algorithm: procedure NewProgram() maxvalue = input() for i = 1 to maxvalue output (i * i) ??????? print("program finished") endprocedure Example Questions: 1. List the outputs produced by the algorithm if the 'maxvalue' input is 5 . 2. State the code that has been replaced by '???????' and what the code's purpose is. Example Answers: 1. Outputs: 1 4 9 16 25 program finished 2. Missing Code: next i Purpose: Moves the loop to the next iteration. Watch on YouTube Structure Diagrams Structure diagrams display the organisation (structure ) of a problem in a visual format , showing the subsections to a problem and how they link to other subsections . The noughts and crosses structure diagram below has subsections in light yellow. Each subsection could be coded by a different person . Structure diagrams are different to flowcharts (those show how data is input, processed and output within a program or system). You may be asked in an exam to draw or fill in a simple structure diagram . Trace Tables Trace tables are used to track the value of variables as a program is run . They can be used to manually track the values in order to investigate why the program isn't working as intended . Each row in the trace table represents another iteration . Each column stores the value of a variable as it changes. See below how the trace table is updated for the simple algorithm on the left. num1 = 2 num2 = 5 for i = 1 to 3 output (num1 + num2) num2 = num2 - 1 next i print("complete") For most algorithms, not every variable will be updated in each iteration . Values may not be entered in the order of the trace table either. For example, each iteration outputs num1 + num2 and then decreases the value of num2 by 1. Q uesto's Q uestions 1.2 - Designing Algorithms: 1. What is the definition of an algorithm ? Name two ways an algorithm can be designed . [ 3 ] 2. Using a high-level programming language such as Python , or the OCR Exam Reference Language , write an algorithm that inputs 6 decimal numbers and outputs the total , largest , smallest and average values. [ 8 ] For example, entering 3.1 , 5.3 , 2.3 , 5.4 , 2.9 and 4.4 would output 23.3 (total), 5.4 (largest), 2.3 (smallest) and 3.9 (average). 3. Draw and label the flowchart symbols . [ 6 ] 4. What is the purpose of a structure diagram ? [ 2 ] 5. Create a trace table for the NewProgram() algorithm in the Reading Algorithms section on this page. [ 7 ] 1.1 - Computational Thinking Theory Topics 1.3 - Searching & Sorting

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

  • 3.1a - Network Types & Performance - OCR GCSE (J277 Spec) | CSNewbs

    Learn about the factors that affect the performance of networks, as well as different types of network types such as LAN and WAN. Based on the J277 OCR GCSE Computer Science specification (first taught from 2020 onwards). 3.1a: Network Types & Performance Exam Board: OCR Specification: J277 Watch on YouTube : LAN & WAN Network Performance Client-Server Network Peer-to-Peer Network Star Topology Mesh Topology What is a network? A network is more than one computer system connected together allowing for communication and sharing of resources . Network Types Networks can be split into different types , usually categorised by their geographical distance apart and the area that they serve. Local Area Network Wide Area Network Client-Server Network Clients make requests to a server , the server manages that request and responds. For example, if the user (client) makes a request to access www.bbc.co.uk to a web server. Large services like Amazon and Google will need very powerful servers to handle millions of requests a second. The client is completely dependent on the server to provide and manage the information. The server controls network security , backups and can be upgraded to manage higher demand. Advantages: The network can be controlled centrally from the server to easily backup data and update software . Hardware, software and resources can be shared across the network, such as printers, applications and data files . The network allows for improved scalability , meaning more clients can be easily added to the central server . Disadvantages: Large amounts of traffic congestion will cause the network to slow down . If a fault occurs with the server then the whole network will fail . IT technicians may be required to manage and maintain the network . Malware , such as viruses, can spread quickly across the network. Peer-to-Peer Network For peer-to-peer networks , data is shared directly between systems without requiring a central server . Each computer is equally responsible for providing data. Peer to peer is optimal for sharing files that can then be downloaded. Disadvantages: Without a dedicated server there is no central device to manage security or backups . Backups must be performed on each individual system. Computer performance will decrease with more devices connected to the network, especially if other machines are slow. Advantages: This is a simpler network than client-server to set up as no server is required . Clients are not dependent on a server . Perfect for quickly sharing files between systems , such as downloading media files. A local area network (LAN ) has computer systems situated geographically close together , usually within the same building or small site , like a school or office . The network infrastructure of a LAN (such as servers and routers) is usually owned and managed by the network owner . A wide area network (WAN ) has computer systems situated geographically distant to each other, possibly across a country or even across the world . WANs often use third party communication channels , such as connections by internet services providers like BT or Virgin Media. Data Packets When sending data across a network, files are broken down into smaller parts called data packets . Whole files are too large to transfer as one unit so data packets allow data to be transferred across a network quickly . Each packet of data is redirected by routers across networks until it arrives at its destination. Data packets may split up and use alternative routes to reach the destination address. When all the packets have arrived at the destination address the data is reassembled back into the original file. What is a network topology? Network topology refers to layout of computer systems on a local network . Devices in a network topology diagram are often called 'nodes' . Two types of typology are star and mesh . Star Topology Each computer system is connected to a central device , usually a hub or switch . How it works: Each computer system is connected to the central hub or switch and transfers its data packets there. The hub or switch looks at the destination address and transfers the packets directly to the intended computer. Advantages: A star topology has improved security because data packets are sent directly to and from the hub / switch in the centre and not necessarily all devices like in a bus or ring topology. New systems can be attached directly to the central system so the network doesn't need to be shut down . System failures of attached computers won't usually cause complete network failure. Transfer speeds are generally fast in a star topology as there are minimal network collisions . Disadvantages: Extra hardware (the hub or switch) is required to be purchased, installed and maintained. If the central system (the hub or switch) fails then the whole network will be unusable until the error is fixed. Mesh Topology In a full mesh network, each computer system is connected to every other computer system . There is also a partial mesh network where only some nodes (e.g. a printer) are connected to every other node. How it works: Data packets are transferred to the destination address along the quickest path , travelling from node to node. If a pathway is broken , there are many alternative paths that the packets can take. Advantages: If one cable or system fails then data packets can take an alternative route and still reach the destination address. Because of the large possible number of systems and connections, a mesh topology can usually withstand large amounts of data traffic . New systems can be added to the network without disrupting the entire topology . Disadvantages: Because of the possibly large amount of cables required (especially in a full mesh topology) this network layout can be expensive to install and maintain . Redundant cabling should be avoided - this is when cables are connected between systems that won't ever need to communicate . Performance There are several different factors that can affect the performance ( speed ) of a network, such as: The bandwidth available * Interference (e.g. thick walls) Number of users at the same time Distance to travel / signal strength Number of data collisions Amount of data to transfer * Bandwidth is the maximum amount of data that can be sent across a network at once . Q uesto's Q uestions 3.1a - Network Types & Performance: 1a. Describe the difference between a LAN and WAN . [2 ] 1b. Give an example of how a LAN and a WAN could each be used . [ 2 ] 2 a. Describe how peer-to-peer networks and client-server networks function. 2b. Give one use for both types of network. 3. Draw and label diagrams of client-server , peer-to-peer , star and mesh networks. [8 ] 4. An office currently uses a star topology but is considering changing to a mesh topology . Describe two advantages and two disadvantages of both topologies. [ 8 ] 5. State five factors that could affect the performance of a network . [5 ] 2.5 - Compression 3.1b - Network Hardware & Internet Theory Topics

  • 4.7 - Sound Representation - Eduqas GCSE (2020 Spec) | CSNewbs

    Learn about how sounds are represented in a computer system including how analogue sound waves are converted into binary. Also, learn about sample rate, bit depth and metadata. Based on the 2020 Eduqas (WJEC) GCSE specification. 4.7: Sound Representation Exam Board: Eduqas Specification: 2020 Converting Analog Sound to Binary To store sound on a computer analog sound waves must be converted in to digital data ( binary ). The sound is sampled using an ADC (Analog to Digital Convertor) and stored as a binary value (such as 01010011) called a sample . 0010 1011 0101 0101 Analog sound wave ADC (Analog to Digital Converter) Binary sample Sampling an Analog Sound Wave Digital sampling is discrete (separate) and not continuous like analog waves. To get the highest quality sound, many samples are taken to recreate the analog wave as closely as possible . Sample Rate The sample rate is the number of samples taken per second . It is measured in kilohertz (kHz), for example CD quality is 44.1kHz (44,100 samples per second). The higher the sample rate , the better the audio quality as the digital data more closely resembles an analog wave . However, higher sample rates result in larger file sizes because more data is stored for each individual sample. A low sample rate will result in a low-quality sound because the digital data does not closely resemble the original analog wave . A higher sample rate will result in a higher-quality sound because the digital data more closely resembles the original analog wave . Improving Audio Quality Bit Depth Bit Rate The bit rate is defined as the amount of audio data processed per second . It is measured in kilobytes per second (kbps ). The bit rate is calculated by multiplying the sample rate and bit depth . Because the bit rate is the measure of the sample rate and bit depth multiplied together, the higher the bit rate the higher the quality of the sound . The bit depth is the number of bits available to represent each sample . For example, a sample with a bit depth of 4 could be 0101 or 0111 or 1010. A sample with a bit depth of 8 could be 01010110 or 1010110 or 11001111. A common bit depth is 16 bits . The higher the bit depth , the more bits are available to be used for each sample. Therefore the quality is often higher as the wave more closely resembles an analog wave . The file size will also be larger if the bit depth is higher, as each sample stores additional bits . Example: A short audio sample has a bit depth of 4 and a sample rate of 10 samples per second . The clip is 15 seconds long . Calculate the bit rate by multiplying the sample rate and bit depth : 4 bits x 10 = 40 bits . Now that is the correct data for one second. Multiply the bit rate by the number of seconds in the file: 40 x 15 = 600 bits . To convert the answer from bits to bytes , divide by 8 . 600 bits ÷ 8 = 75 bytes . Calculating File Size Metadata for Sound Files Music libraries such as Apple Music or Spotify store a huge amount of metadata on each song. Metadata is additional data about a file such as: Artist Title / Track Title Product / Album Title Track Number Date Created / Year Genre Comments Copyright Software Type Duration File size Bit rate Sampling rate Channels Volume Q uesto's Q uestions 4.7 - Sound Representation: 1. Explain how an analog sound wave is converted into a binary sample . [ 2 ] 2a. What is a sample rate ? [1 ] 2b. Explain two ways an audio file will be affected if the sample rate is increased . [4 ] 3a. What is bit depth ? [2 ] 3b. Explain two ways an audio file will be affected if the bit depth is increased . [4 ] 3c. Explain what the bit rate is. [ 2 ] 4 . An audio sample has a bit depth of 8 , a sample rate of 10 and it is 12 seconds long . What is the file size in bytes ? [ 2 ] 5a. What is metadata ? [ 2 ] 5b. State four different types of metadata for audio files . [4 ] low bit rate = lower quality high bit rate = higher quality Converting Analog Sound to Binary 1 4.6 Graphical Representation Theory Topics 4.8 - Compression

  • App Inventor 2 | The Basics | CSNewbs

    Learn how to use App Inventor 2 to create simple programs. Perfect for key Stage 3 students to experiment with block coding and objects What is App Inventor? App Inventor 2 Link App Inventor 2 is software developed by Massachusetts Institute of Technology (MIT ), a research university in America. It allows users to create simple apps and learn about the way that they work in a fun manner. There is no need to learn how to program with text editors as everything is based around blocks, a bit like Scratch. To open App Inventor 2 (the current version of the program) click the button in the top right. You will need to log in with a Google account. There are two layouts to App Inventor, Designer and Blocks . You can switch between them with the bottoms in the top right corner. This guide will show you how to make seven simple programs and introduce you to programming concepts such as variables and properties . Download all App Inventor images you will need for the 7 tasks by clicking the camera icon. Note to Computer Science Teachers - The easiest way to test programs made using App Inventor 2 is using the emulator which should be pre-installed by the IT technician team at your school. See here for information on how to set it up. Also, Google accounts are required to access and use App Inventor 2. Viewer - This is a mock-up of what your app will look like. Components - Each component can be renamed or deleted here. Designer Layout Palette - Drag the component that you want to use in your app, into the centre. Properties - Edit the settings for each component. Media - Upload images and sound here before they can be used in your app. Blocks Layout Viewer - This is space for you to drag blocks to make things happen. Blocks - Drag the code block that you want to use into the centre. The blocks connect together like in Scratch. Warnings - Any errors with your code will be displayed here. Backpack - Drag code into to backpack to store it for later. KS3 Home Tasks 1 & 2

  • Greenfoot | Common Errors | CSNewbs

    The most common errors made in Grennfoot when making a game and how to fix them, including when missing punctuation is expected or the end of file is reached while parsing. Common Greenfoot Errors Greenfoot Home If the world becomes greyed out and you can't click on anything then an error has occurred. The actor with the error will have red lines on it. When an error occurs, a red squiggly line will appear underneath the problem. Hover your mouse over the line and a helpful message will appear to help you solve the issue. Some of the more common errors (and how to fix them) are listed below: ; expected Every line with a white background must end in a semi colon ( ; ) ) expected You have missed a bracket . Count the number of open brackets and the number of closed brackets on a line and make sure you have an equal number of both. reached end of file while parsing You are missing at least one curly bracket ( } ) at the end of your program . Press enter to move onto a new line at the bottom; you must have a closed curly bracket with a yellow background and another closed curly bracket with a green background . cannot find symbol You have typed a command incorrectly . Greenfoot uses a system where commands have no spaces and each word after the first word is uppercase . Such as isKeyDown not IsKeyDown and not isKeydown. Check your spelling and capitals carefully. Stuck ? If you start typing but can't remember what commands come next, press Ctrl and Space together to show a list of all possible commands that you can use.

  • Greenfoot Guide #5 | Play Sounds | CSNewbs

    Learn how to play sound files in Greenfoot. Part 5 of the Greenfoot Tutorial for the Eduqas / WJEC GCSE 2016 specification. 5. Play Sounds 1. Check the Sounds Folder Greenfoot Tutorial Sound files must be placed the ' sounds ' folder of your Greenfoot project to be used in the game. In the Component 2 exam of the WJEC / Eduqas 2016 specification , an audio file will be placed in the sounds folder already . For this example game you can download the audio clips to the right and paste them into your sounds folder . Watch on YouTube: Click the audio icon to download a zip folder of the two sound files below . Copy the files into the sounds folder of your Greenfoot project . < Part 4 - Remove Objects 2. Add the playSound Method Add the code to play the sound at the same time as when the collectible object is removed . The name of the file and its extension (e.g. .wav or .mp3 ) must be written in speech marks after the playSound method. Part 6 - The Counter >

  • HTML Guide 2 - Essential Tags | CSNewbs

    Learn what a tag is in HTML and which ones are necessary to format a webpage ready for text and other content. 2. Creating Essential Tags HTML Guide Watch on YouTube: What is a tag ? HTML uses tags to define the content of a webpage . A tag uses angle brackets - they look just like my teeth... Some examples of tags are and and Most tags have a start tag and an end tag . The actual content is written in between the tags . For example : The p tag is used to write a paragraph Notice that the end tag uses a forward slash . < > Essential Tags There are three tags that are essential for every HTML web page : - This tag declares the start and the end of your html web page. - The head is the part of the web page that the user will not see. - The body holds all of the content of the web page (text, images, video etc.) Don't forget to use backslash for the end tags : / Use the image on the right to add the three essential tags (and their end tags) to your document. Now it is time to add something we can actually see! Text tags are up next. 1. Setup HTML Guide 3. Text Tags

  • 2.4a - Number Systems - OCR GCSE (J277 Spec) | CSNewbs

    Learn about how to convert between the denary (decimal), binary and hexadecimal number systems. Based on the J277 OCR GCSE Computer Science specification (first taught from 2020 onwards). Exam Board: OCR 2.4a: Number Systems Specification: J277 Watch on YouTube : Binary and Denary Hexadecimal Number System Ranges Binary to Denary Denary to Binary Binary to Hexadecimal Hexadecimal to Binary Denary to Hexadecimal Hexadecimal to Denary What is binary? By now you should know that computer systems process data and communicate entirely in binary . Topic 2.3 explained different binary storage units such as bits (a single 0 or 1), nibbles (4 bits) and bytes (8 bits). Binary is a base 2 number system. This means that it only has 2 possible values - 0 or 1 . What is denary? Denary (also known as decimal ) is the number system that you've been using since primary school. Denary is a base 10 number system. This means that it has 10 possible values - 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9 . Binary & Denary Convert from binary to denary: Convert from denary to binary: Hexadecimal What is hexadecimal? Hexadecimal is a base 16 number system. This means that it has 16 possible values - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E and F . Hexadecimal is used as a shorthand for binary because it uses fewer characters to write the same value . This makes hexadecimal less prone to errors when reading or writing it , compared to binary. For example, 100111101011 in binary is 9EB in hexadecimal. Hexadecimal only uses single-character values. Double-digit numbers are converted into letters - use the table on the right to help you understand. Binary to hexadecimal: Hexadecimal to binary: Converting from denary to hexadecimal / hexadecimal to denary To convert from denary to hexadecimal or from hexadecimal to denary , it is easiest to convert to binary first . However, it is possible to convert directly from denary to hexadecimal or directly from hexadecimal to denary . The videos below explain both methods . Denary to hexadecimal: Hexadecimal to denary: Watch on YouTube Watch on YouTube Watch on YouTube Watch on YouTube Watch on YouTube Watch on YouTube Q uesto's Q uestions 2.4a - Number Systems: 1. Explain why hexadecimal numbers are used as an alternative to binary . Use an example . [ 3 ] 2. Convert the following values from binary to denary : a. 00101010 b. 11011011 c. 01011101 d. 11101110 e. 01011111 [1 each ] 3. Convert the following values from denary to binary : a. 35 b. 79 c. 101 d. 203 e. 250 [1 each ] 4. Convert the following values from binary to hexadecimal : a. 11110101 b. 01100111 c. 10111010 d. 10010000 e. 11101001 [1 each ] 5. Convert the following values from hexadecimal to binary : a. C2 b. 8A c. DE d. 54 e. F7 [1 each ] 6. Convert the following values from denary to hexadecimal : a. 134 b. 201 c. 57 d. 224 e. 101 [1 each ] 7. Convert the following values from hexadecimal to denary : a. 32 b. A5 c. 88 d. C0 e. BE [1 each ] Click the banners below to try self-marking quizzes (Google Forms) on these topics. Binary to Denary: Denary to Binary: Binary to Hexadecimal: Hexadecimal to Binary: 2.3 - Data Units Theory Topics 2.4b - Binary Addition & Shifts

  • 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.1 - Programming Fundamentals - OCR GCSE (J277 Spec) | CSNewbs

    Learn about the fundamentals of programming - selection, sequence and iteration. Also find out the difference between local and global variables and constants. Based on the J277 OCR GCSE Computer Science specification (first taught from 2020 onwards). Exam Board: OCR Specification: J277 2.1: Programming Fundamentals Watch on YouTube : Programming Fundamentals Sequence Selection Iteration Operators This section of the specification includes programming topics that are outlined in 1.2 (Designing Algorithms). You must have an understanding of a range of programming techniques , such as how to use selection , loops and operators . The best practice for learning is to try the tasks in the Python pages on this website (see the link to the right). Visit the Python section of CSNewbs ---> Programming Constructs There are three constructs ( ideas of programming ) that are used to control the flow of a program : Sequence Structuring code into a logical, sequential order . Selection Decision making using if statements . Iteration Repeating code using for or while loops . Variables Variables are used to store data in programs. They can be changed as the program runs . A variable has two parts - the data value such as "Emily" and an identifier such as First_Name . An efficient program will use variables with sensible identifiers that immediately state their purpose in the program. Using variable names like 'TotalNum' and 'Profit' rather than 'num1' and 'num2' mean that other programmers will be able to work out the purpose of the code without the need for extensive comments. Local & Global Variables Large programs are often modular - split into subroutines with each subroutine having a dedicated purpose. Local variables are declared within a specific subroutine and can only be used within that subroutine . Global variables can be used at any point within the whole program . Local variable advantages Saves memory - only uses memory when that local variable is needed - global variables use memory whether they are used or not. Easier to debug local variables as they can only be changed within one subroutine. You can reuse subroutines with local variables in other programs. Global variable advantages Variables can be used anywhere in the whole program (and in multiple subroutines). Makes maintenance easier as they are only declared once. Can be used for constants - values that remain the same. Constants π As specified before, a variable is data that can change in value as a program is being run. A constant is data that does not change in value as the program is run - it is fixed and remains the same. An example of a constant in maths programs is pi - it will constantly remain at 3.14159 and never change. Operators Comparison Operators Comparison operators are used to compare two data values . A table of common comparison operators used in programs are below: Arithmetic Operators Arithmetic operators are used to mathematically manipulate values . The most common arithmetic operators are add (+ ), subtract (- ), multiply (* ) and divide (/ ). Further arithmetic operators are shown below: Modulo division (also known as modulus ) reveals the remainder from the last whole number . For example: 9 % 4 = 1 (4 goes into 9 twice (8) with a remainder of 1) Integer division (also known as quotient ) reveals the ‘whole number of times ’ a number can be divided into another number : 9 // 4 = 2 (4 goes into 9 fully, twice) The symbol ^ represents exponentiation . However, Python uses ** to represent exponentiation. For example '2^3 = 8' is equivalent to '2³ = 8'. Logical Operators Logical operators typically use TRUE and FALSE values which is known as Boolean . You can find more information about Boolean values in section 4.1 . Q uesto's Q uestions 2.1 - Programming Fundamentals: Programming Constructs 1. Describe and draw a diagram for the 3 programming constructs . [6 ] Variables 1. What is the difference between local and global variables ? [4 ] 2. Describe two advantages of using local variables . [2 ] 3. Describe two advantages of using global variables . [2 ] 4. What is a constant ? Give an example . [2 ] 1.3 - Searching & Sorting Theory Topics 2.2 - Data Types

© CSNewbs 2026

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