More results...

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

Computer Hardware Acronyms Galore!

computer-hardware-desktopAre you confident with your knowledge of key computer hardware terminology? Check if you know what these acronyms stand for!

unlock-access

Solution...

The solution for this challenge is available to full members!
Find out how to become a member:
➤ Members' Area
Tagged with: ,

Using Karnaugh Maps

Karnaugh maps are a tool used to simplify complex Boolean expressions. To do so you will need to be able to

  1. Complete a Karnaugh Map for a given Boolean Expression or a given Truth Table.
  2. Identify the main blocks of 1, 2, 4, 8 or 16 consecutive 1s.
  3. Use these blocks to write down the Simplified Boolean Expression for your Karnaugh Map.

The following slideshow gives examples of how blocks can be identified on different Karnaugh Maps:

Your Task


Use a Karnaugh Map with 4 inputs to simplify each of the following Boolean expressions:
Click on the Boolean Expressions below to open our online Karnaugh Map tool


kmap-boolean-expression-1


kmap-boolean-expression-2


kmap-boolean-expression-3


unlock-access

Solution...

The solution for this challenge is available to full members!
Find out how to become a member:
➤ Members' Area

Computer Science Wordle!

Have a go at guessing the hidden computer science keywords…

5 Letters 6 Letters


Tagged with:

Office Network Design Task

office-networkA small IT company would like your help to improve the performance of their network.

They have a range of network components, all connected using ethernet cables but are not too sure how all the equipment are connected together. Before upgrading their network, they would like you to draw a diagram representing their network topology.

Luckily, all the ethernet ports on all the equipment used in the office have been clearly labelled, so these labels should help you draw an accurate design/topology of this network.

To draw the network design, you will need to use our network design tool:
Design Your Own Network Online

Here is all the information you will need to design this network.

Floor PlanMain SwitchRouterFirewallWAPHub
The network consists of:

  • 8 Desktop computers spread across two rooms,
  • 2 inkjet printers,
  • A server rack with a file server, an e-mail server, a web-server and a backup server,
  • A main switch (in the server room),
  • A hub (in the extension room),
  • A router,
  • A firewall,
  • A Wireless Access Point (in the main office area).

The employees of the office can also connect their smartphones and laptops wirelessly.

Here is the floor plan of the office:
office-floor-plan

Here is a picture of the main switch, located in the server room. The labels on this switch should help you design the network topology. (Click on the picture to zoom in).
Office-Network-main-switch
Here is a picture of the router, located in the server room. The labels on this router should help you design the network topology. (Click on the picture to zoom in).
Office-Network-ADSL-Router
Here is a picture of the firewall, located in the server room. The labels on this firewall should help you design the network topology. (Click on the picture to zoom in).
Office-Network-Firewall
Here is a picture of the Wireless Access Point (WAP), located in the main office. The label on this WAP should help you design the network topology. (Click on the picture to zoom in).
Office-Network-wireless-access-point
Here is a picture of the network hub, located in the extension room. The labels on this hub should help you design the network topology. (Click on the picture to zoom in).
Office-Network-hub

Improving the Network Performance


The employees find that the network performance is not great especially when:

  • Accessing the Internet
  • Connecting their laptops and smartphones wirelessly in the extension room.

To improve the performance of this network, the office have contacted their Internet Service Provider and upgraded their Internet Connection to a higher bandwidth.

They were also told that, installing a cache server could improve the performance of the network when employees access the Internet.

Finally, they found out that the network Wi-Fi signal in the extension room was fairly weak due to the distance to the Wireless Access Point and the presence of partition walls between the extension room and the main office area where the WAP is located. They were advised to install an extra Wireless Access Point in the extension room.

Could you upgrade your network diagram by adding:

  • A cache server, connected to the main switch,
  • An extra Wireless Access Point (WAP), connected to the main switch.
unlock-access

Solution...

The solution for this challenge is available to full members!
Find out how to become a member:
➤ Members' Area
Tagged with:

Let It Snow Challenge

snowflakes
In this challenge, we will create a randomised Christmas card using Python Turtle. Our card will include 20 snowflakes of random sizes, colours and number of branches, randomly positioned on the canvas.

We will also add some Christmas Greetings to our card.

The aim of this challenge is to learn how to define your own functions in Python and to add your own parameters to your functions.

Before completing this challenge, you should first learn how to draw a snowflake using Python Turtle by completing our snowflake challenge.

You will then be able to re-use your code to complete this “Let It Snow” challenge, following the steps from this video tutorial.

Video Tutorial


Python Code


You can now complete the code below as explained in the above video tutorial…

unlock-access

Solution...

The solution for this challenge is available to full members!
Find out how to become a member:
➤ Members' Area
Tagged with: , ,

Solving a Zebra Puzzle using Prolog

captain-americaIn this challenge, we are aiming to get the computer to solve Zebra Puzzles by creating Prolog programs.

Zebra Puzzle?


Zebra Puzzles, also known as Einstein’s Riddles, are a type of logic puzzles where you have to use the clues to make logic deductions in order to solve a given problem.

The most famous Zebra Puzzle was created by Einstein and published in 1962. You can find out more about this puzzle on this page.

Our zebra puzzle will be based on the following scenario:

Three kids went to a superheroes fancy dress birthday party.
The names of the three kids are Ethan, Ali and Anya.
They dressed up as Spiderman, Captain America and Iron Man.
The kids are 6, 8 and 10 years old.

We don’t know how each kid dressed up or how old each kid is but we have the following clues:

  • Anya was dressed up as Spiderman.
  • Ethan was not dressed up as Captain America.
  • The youngest kid dressed up as Spiderman.
  • The kid who is 8 years old dressed up as Captain America.

You can solve this puzzle manually using the following grid:
zebra-grid-puzzle

Prolog?


Prolog is a declarative language that uses a recursive approach to solve logic puzzles. To solve a logic Puzzle using Prolog, a programmer first needs to declare a knowledge base consisting of a collection of facts and rules. This knowledge base can then be used to run queries to try to solve the puzzle.

Setting up the knowledge base


Let’s first focus on declaring the key facts of our puzzle as follows:

/* Facts */
kid(ethan).
kid(ali).
kid(anya).

hero(spiderman).
hero(captain_america).
hero(iron_man).

age(six).
age(eight).
age(ten).

We will then implement our clues as rules:

relation(K,H,A):- K=anya, H=spiderman, age(A).
relation(K,H,A):- K=ethan, hero(H), age(A), H\=captain_america.
relation(K,H,A):- kid(K), H=spiderman, A=six.
relation(K,H,A):- kid(K), H=captain_america, A=eight.

We will add two extra rules that will be used to solve this puzzle and to reinforce the fact that two kids cannot have the same age or the same costume.

different(X,Y,Z):-X\=Y,X\=Z,Y\=Z.
solve(K1,H1,A1,K2,H2,A2,K3,H3,A3):- relation(K1,H1,A1),relation(K2,H2,A2),relation(K3,H3,A3),different(K1,K2,K3),different(H1,H2,H3),different(A1,A2,A3).

Solving the puzzle…

We have created this knowledge base using an online Prolog Environment called Swish:
https://swish.swi-prolog.org/p/Superheroes%20Zebra%20Puzzle.pl

You can now run the following query to solve this puzzle:

?-solve(K1,H1,A1,K2,H2,A2,K3,H3,A3)

Your Turn!


Pick up any Logic Grid Puzzle from this website and build your own set of facts and rules in Prolog to solve your puzzle.

Tagged with:

Dingbats – A Level Computer Science

Feeling confident with your A Level Computer Science terminology?

Have a go at guessing the hidden keywords or expressions represented by the following dingbats…

Dingbats 1 to 20Dingbats 21 to 40Dingbats 41 to 60Extras




Hint?

Here is a list of all the keywords used in the above dingbats, in alphabetical order

View Keywords!
AND gate
Abstract Syntax Tree
Abstraction
ALU (Arithmetic & Logic Unit)
Antivirus
Asymmetric Encryption
Bandwidth
Backtracking
Big O Notation
Binary addition
Binary left shift
Binary search
Binary search tree
Black box testing
Bluetooth speaker
Breakpoint
Breadth-first traversal
Brute force attack
Bubble sort
Clock speed
Colour depth
Comparison Operators
Control Unit
CPU
Data mining
Data visualisation
Decomposition
Defragmentation
Dictionary Coding
Divide and conquer
D-Type Flip-Flop
Dual core
File compression
Firewall
Floating point
Half-Adder
Hashing Algorithm
Hexadecimal
Indentation
Insertion sort
Instantiation
Linear search
Little Man Computer
Local Area Network
Logic error
Merge sort
Mesh topology
Multitasking
Multithreading
OOP
One-to-many Relationship
Operating System
Phishing
Pipelining
Quad core
Quick sort
Recursion
Run-length encoding
Run-time Error
Shortest path algorithm
Spider Bot
SQL Injection
Stack & Queue
Stack Overflow
Star topology
String
String concatenation
Symmetric Encryption
Syntax error
Translator
Unicode
USB key
Weighted graph
While loop
White box testing
Wide Area Network

Double Six Dice Game

2-diceIn this challenge, we will use a step by step approach to create a 2-player dice game with the following rules:

  • The first player rolls a pair of dice, and keeps rolling the dice again and again, until they roll a double six.
  • It is then the turn of the the second player. They too will roll the dice and keep doing so until they roll a double six.
  • The winner of the game is the user who rolled a double six in the smaller number of attempts.
  • The game ends on a draw if both players used the same number of attempts to roll a double six.

Python Code


So let’s tackle this Python challenge one step at a time… You will need to type your code in the code window below, using the step by step checklist provided underneath the code window.

Step by Step Checklist!

Step 1: Displaying a welcome banner

    Write some Python code using the print command to display to display a nice banner with the title of the game: “Double Six Dice Game”. Your banner could look like this:

    ___________________________
    |                          |
    |   Double Six Dice Game   |
    |__________________________|

Step 2: Retrieving the name of the first player

    Use an input command to ask for the first player to enter their name. Store this name in a variable called player1. You will have to use this variable later on, at the end of the game to display the name of the winner of the game.
Step 3: Throwing the first dice…

    Use the randint function from the random library to generate and output a random number between 1 and 6 for the first dice. Store this randomly generated number in a variable called dice1.

    Here is the Python code to generate a random number from 1 to 10:

    import random
    number=random.randint(1,10)
Step 4: Throwing the second dice…

    Re-use the code from step 3 to generate and output a second random number between 1 and 6. Store this randomly generated number in a variable called dice2.
Step 5: Carry on throwing the dice until a double six is rolled.

    You will now need to use a while loop, to repeat steps 3 and 4 for as long as player 1 doesn’t throw a double six.
Step 6: Counting the number of throws.

    Add a counter using a variable called counter1 to count the number of attempts/throws of the two dice. You will need to:

    • Initialise your counter1 variable at the start of the game to 0.
    • Increment your counter1 variable by 1 after each throw of the two dice.
    • Output the total number of attempts once a double six has been rolled.
Step 7: Player 2’s turn…

    Repeat steps 2 to 6 for player 2!
Step 8: Deciding who wins the game!

    Compare the counter of both players to display the appropriate message to end the game:

    • Player 1 wins if they have had less attempts than player 2.
    • Player 2 wins if they have had less attempts than player 1.
    • The game ends on a draw if both players have had exactly the same number of attempts to roll a double six.
unlock-access

Solution...

The solution for this challenge is available to full members!
Find out how to become a member:
➤ Members' Area

Dingbats – GCSE Computer Science

Feeling confident with your GCSE Computer Science terminology?

Have a go at guessing the hidden keywords or expressions represented by the following dingbats…

Dingbats 1 to 12Dingbats 13 to 24Dingbats 25 to 36Extras




Hint?

Here is a list of all the keywords used in the above dingbats, in alphabetical order

View Keywords!
AND gate
Abstraction
ALU (Arithmetic & Logic Unit)
Antivirus
Bandwidth
Binary addition
Binary left shift
Binary search
Bluetooth speaker
Breakpoint
Brute force attack
Bubble sort
Clock speed
Colour depth
Comparison Operators
Control Unit
CPU
Decomposition
Defragmentation
Dual core
Encryption
File compression
Firewall
Hexadecimal
Indentation
Insertion sort
Linear search
Local Area Network
Logic error
Merge sort
Mesh topology
Multitasking
Operating System
Phishing
Quad core
SQL Injection
Star topology
String
String concatenation
Syntax error
Translator
Unicode
USB key
While loop
Wide Area Network

Procedural Programming Terminology (Crossword)

crosswordAre you confident with your knowledge of key procedural programming concepts, including sequencing, selection, iteration and the use of subroutines?

You can find out more about the key terminology relevant to procedural programming using our Periodic Table of Procedural Programming Concepts.


Procedural Programming TerminologyOpen Crossword Puzzle in a New Window

unlock-access

Solution...

The solution for this challenge is available to full members!
Find out how to become a member:
➤ Members' Area