KS3 Computing/Hardware/Connectivity

This is a page of notes and links, that could be turned into a set of resources later

The curriculum progression links are here: https://teachinglondoncomputing.files.wordpress.com/2014/07/computing_progression_pathways_with_computational_thinking_v2-3.pdf

This comes from the "Computing and Networks" strand of the above pdf Bdgghvhghbjkmmkkoo USAGE (how to know if web traffic is secure, https) (lots of nice cryptography resources Prof Chris Bishop, Royal Institution xmas lectures, National Museum of Computing) Yo mama so fat RESPONSIBLE/SAFE USE
 * use of a web browser
 * navigate and search
 * use of a range of internet services
 * how to effectively use search
 * use secure services
 * safe and respectful communication
 * social interaction safety
 * safe and responsible use
 * identify acceptable and unacceptable behaviours
 * knows how to report concerns

KNOWLEDGE (might be able to use GNS3 simulator to build your own network)
 * names of key components of network (hubs, switches, routers)

(should also add DHCP and DNS)
 * names and purpose of key protocols POP, HTTP, SMTP, IMAP, FTP TCP/IP


 * purpose of hardware of key components of network
 * online protection and privacy

UNDERSTANDING (internet is the connectivity, internet service are the applications that run using the internet)
 * difference between internet and an internet service

(resources from james)
 * how search engines select and return results (webcrawlers)

(video from james)
 * search rank algorithms

(probably a csunplugged for this, I did one at pi bakeoff with string and envelopes, perhaps we should just video this in a lead school that can get permissions?)
 * data transmission over computer networks, IP address, packet switching

(looking at the HTTP protocol would help here)
 * client server model esp with ref to web and server side scripting

(need to talk about netmask and routing here - see Raspberry Pi networking lesson plan here:) https://github.com/whaleygeek/pibakeoff/tree/master/docs
 * difference between WANs and LANs

(how to find the MAC address of your device?) (difference between a MAC address and an IP address?)
 * MAC addresses

Creating (could create your own very simple markup with a python text web browser, just like LMC is a cut down computer, have a cut down web browser that you can read and understand all the code)
 * creating static web pages with HTML and CSS

Other Stuff (not explicitly listed in progression pathways) DHCP/Static - see https://www.raspberrypi.org/learning/networking-lessons/lesson-3/README.md   DNS  - see https://www.raspberrypi.org/learning/networking-lessons/lesson-4/README.md    BONJOUR (printing)

Possible resources to create

1. understanding of protocols

use a web browser to fetch data from a web server

use telnet to fetch a web page from an external website http://blog.whaleygeek.co.uk/a-tiny-python-web-server-for-the-raspberry-pi/

use/modify/write a small python text mode web browser and web server (use square    brackets for links like LYNX, move cursor with TAB key or cursor keys a bit like the emacs doc system does) understand that a protocol is just a set of rules that enable collaboration

perhaps introduce simple message sequence charts as a way of diagramming simple protocols (see http://www.mcternan.me.uk/mscgen/)

develop a simple protocol of your own - a simple socket server using network.py from here as the transport: https://www.raspberrypi.org/learning/networking-lessons/lesson-1/README.md

protocols you might develop: TIMEP (time protocol) QOTDP (quote of the day) RJP (random joke protocol) These are all single request/response and single threaded servers (simple but not that interesting)

Other protocols you could develop - a simple textual adventure game protocol, the server could be a simple python program that accepts commands from identified users, moves them in a simple grid, and sends back information about other stuff around you) - users would provide their identity, send a command, and wait for some data to come back. Students    could be challenged to say how easy this protocol is to hack to masquerade as different users, they could suggest a password     scheme to protect each message. One group of students could write the server and the teacher could facilitate writing the protocol,     then lots of other students could write their own client python programs. When the protocol has to change, all of the client     programs have to be modified - this embeds deeper understanding of the standardisation of protocols and the need for standards     and versions.

TEACHING NOTES The problem with a lot of resources is kids don't want to know how things work. If you can show by this extra understanding, that you can take advantage of this yourself... An analogy, if you understand a bit about how a car engine works, putting your foot on the pedal too much floods the engine. You don't want to become a mechanic, but a better understanding of the engine makes you a better driver) i.e. is it possible to explain some technology that you use, dig into how it works, then helicopter back up to using the package and show that the extra knowledge of how it works helps you to do more with the package)