Ever used an online poemgenerator, perhaps to get started with an English assignment? They normally have a template and some word lists you can fill in, with a simple algorithm that randomly selects from the word lists to fill out the template. “I wandered lonely as a cloud” might become “I zoomed destitute as a rainbow” or I danced homeless as a tree”. It would all depend on those word lists. Artificial Intelligence and machine learning researchers are aiming to be more creative.
Stanford University, the University of Massachusetts and Google have created works that look like poems, by accident. They were using a machine learning Artificial Intelligence they had previously ‘trained’ on romantic novels to research the creation of captions for images, and how to translate text into different languages. They fed it a start and end sentence, and let the AI fill in the gap. The results made sense though were ‘rather dramatic’: for example
“he was silent for a long moment he was silent for a moment it was quiet for a moment it was dark and cold there was a pause it was my turn”
Is this a real poem? What makes a poem a poem is in itself an area of research, with some saying that to create a poem, you need a poet and the poet should do certain things in their ‘creative act’. Researchers from Imperial College London and University College Dublin used this idea to evaluate their own poetry system. They checked to see if the poems they generated met the requirements of a special model for comparing creative systems. This involved things like checking whether the work formed a concept, and including measures such as flamboyance and lyricism.
Read some poems written by humans and compare them to poems created by online poetry generators. What makes it creativity? Maybe that’s up to you!
See also this article about Christopher Strachey, who came up with the first example of a computer program that could create lines of text (from lists of words) to make up love poems.
Sitting at the heart of your computer, mobile phone, smart TV (or even smart toaster) is the microprocessor that makes it all work. These electronic ‘chips’ have millions of tiny electronic circuits on them allowing the calculations needed to make your gizmos work. But it may be surprising to learn that these silicon chips, now a billion pound industry worldwide are in fact mostly made of the same stuff that you find on beaches, namely sand.
A transistor is just like a garden hose with your foot on it
Sand is mostly made of silicon dioxide, and silicon, the second most abundant substance in the earth’s crust, has useful chemical properties as well as being very cheap. You can easily ‘add’ other chemicals to silicon and change its electrical properties, and it’s by using these different forms of silicon that you can make mini switches, or transistors, in silicon chips.
House Hose
A transistor on a chip can be thought of like a garden hose, water flows from the tap (the source) through the hose and out onto the garden (the drain), but if you were to stand on the hose with your foot and block the water flow the watering would stop. An electronic transistor on a chip in its most basic form works like this, but electrical charge rather than water runs through the transistor (in fact the two parts of a transistor are actually called the source and drain). The ‘gate’ plays the part of your foot; this is the third part of the transistor. Applying a voltage to the gate is like putting your foot on and off the hose, it controls whether charge flows through the transistor.
Lots of letter T’s
A billion pound industry made of sand
If you look at a transistor on a chip it looks like a tiny letter T, the top crossbar on the T is the source/drain part (hose) and the upright part of the T is the gate (the foot part). Using these devices you can start to build up logic functions. For example, if you connect the source and drain of two transistors together one after another it can work out the logic AND function. How? Well think of this as a long hose with you and a friend’s foot available. If you stand on the hose no water will flow. If your friend stands on the hose no water will flow. If you both stand on the hose defiantly no water will flow. It is only when you don’t stand on the hose AND your friend also doesn’t stand on the hose that the water flows. So you’ve build a simple logical function.
Printing chips
From such simple logic functions you can build very complex computers, if you have enough of them, and that’s again where silicon comes in. You can ‘draw’ with silicon down to very small sizes. In fact a silicon chip is printed with many different layers. For example, one layer has the patterns for all the sources and drains, the next layer chemically printed on top are the gates, the next the metallic connections between the transistors and so on. These chips take millions of pounds to design and test, but once the patterns are correct it’s easy to stamp out millions of chips. It’s just a big chemical printing press. It’s the fact that you can produce silicon chips efficiently and cheaply with more and more transistors on them each year that drives the technology leaps we see today.
Beautiful silicon
Finally you might wonder how the chip companies protect their chip designs? They in fact protect them by registering the design of the masks they use in the layer printing process. Design registration is normally used to protect works of artistic merit, like company logos. Whether chip masks are quite as artistic doesn’t seem to matter. What does matter is that the chemical printing of silicon and lots of computer scientists have made all today’s computer technology possible. Now there is a beautiful thought to ponder when next on the beach.
You probably won’t be surprised to learn that computer science can now also help improve the creation of computer chips. Computational lithography (literally ‘stone writing’) improves the resolution needed to etch the design of these tiny components onto the wafer thin silicon, using ultraviolet light (photoglithography = ‘stone writing with light’). Here’s a promotional video from ASML about computational lithography.
Subscribe to be notified whenever we publish a new post to the CS4FN blog.
This blog is funded by EPSRC on research agreement EP/W033615/1.
The Internet is now so much a part of life that, unless you are over 50, it’s hard to remember what the world was like without it. Sometimes we enjoy really fast Internet access, and yet at other times it’s frustratingly slow! So the question is why, and what does this have to do with posting a letter, or cars on a motorway? And how did electronic engineers turn the problem into a business opportunity?.
The communication technology that powers the Internet is built of electronics. The building blocks are called routers, and these convert the light-streams of information that pass down the fibre-optic cables into streams of electrons, so that electronics can be used to switch and re-route the information inside the routers.
Enormously high capacities are achievable, which is necessary because the performance of your Internet connection is really important, especially if you enjoy online gaming or do a lot of video streaming. Anyone who plays online games would be familiar with the problem: opponents apparently popping out of nowhere, or stuttery character movement.
So the question is – why is communicating over a modern network like the Internet so prone to odd lapses of performance when traditional land-line telephone services were (and still are) so reliable? The answer is that traditional telephone networks send data as a constant stream of information, while over the Internet, data is transmitted as “packets”. Each packet is a large group of data bits stuck inside a sort of package, with a header attached giving the address of where the data is going. This is why it is like posting a letter: a packet is like a parcel of data sent via an electronic “postal service”.
But this still doesn’t really answer the question of why Internet performance can be so prone to slow down, sometimes seeming almost to stop completely. To see this we can use another analogy: the flow of packet data is also like the flow of cars on a motorway. When there is no congestion the cars flow freely and all reach their destination with little delay, so that good, consistent performance is enjoyed by the car’s users. But when there is overload and there are too many cars for the road’s capacity, then congestion results. Cars keep slowing down then speeding up, and journey times become horribly delayed and unpredictable. This is like having too many packets for the capacity in the network: congestion builds up, and bad delays – poor performance – are the result.
Typically, Internet performance is assessed using broadband speed tests, where lots of test data is sent out and received by the computer being tested and the average speed of sending data and of receiving it is measured. Unfortunately, speed tests don’t help anyone – not even an expert – understand what people will experience when using real applications like an online game.
Electronic engineering researchers at Queen Mary, University of London have been studying these congestion effects in networks for a long time, mainly by using probability theory, which was originally developed in attempts to analyse games of chance and gambling. In the past ten years, they have been evaluating the impact of congestion on actual applications (like web browsing, gaming and Skype) and expressing this in terms of real human experience (rather than speed, or other technical metrics). This research has been so successful that one of the Professors at Queen Mary, Jonathan Pitts, co-founded a spinout company called Actual Experience Ltd so the research could make a real difference to industry and so ultimately to everyday users.
For businesses that rely heavily on IT, the human experience of corporate applications directly affects how efficiently staff can work. In the consumer Internet, human experience directly affects brand perception and customer loyalty. Actual Experience’s technology enables companies to manage their networks and servers from the perspective of human experience – it helps them fix the problems that their staff and customers notice, and invest their limited resources to get the greatest economic benefit.
So Internet gaming, posting letters, probability theory and cars stuck on motorways are all connected. But to make the connection you first need to study electronic engineering.
Global Entrepreneurship Week is in November each year and to celebrate we’ve put together a portal resource page on Tech Entrepreneurs to inspire you. It features, for example, Jacquie Lawson (who created a digital greetings card enterprise), Freddie Figgers (who runs the first Black-owned telecoms company in the US), Dragonfly AI (a computer vision company founded at QMUL) and Sophie Wilson (who designed the chip for the BBC Micro). We will keep adding more people and companies. There are also links to careers resources.
Claude Shannon, inventor of the rocket powered Frisbee, gasoline powered pogo stick, a calculator that worked using roman numerals, and discoverer of the fundamental equation of juggling! Oh yeah, and founder of the most important theory underpinning all digital communication: information theory.
Claude Shannon is perhaps one of the most important engineers of the 20th century, but he did it for fun. Though his work changed the world, he was always playing with and designing things, simply because it amused him. Like his contemporary Richard Feynman, he did it for ‘the pleasure of finding things out.’
As a boy, Claude liked to build model planes and radio-controlled boats. He once built a telegraph system to a friend’s house half a mile away, though he got in trouble for using the barbed wires around a nearby pasture. He earned pocket money delivering telegrams and repairing radios.
He went to the University of Michigan, and then worked on his Masters at MIT. While there, he thought that the logic he learned in his maths classes could be applied to the electronic circuits he studied in engineering. This became his Masters thesis, published in 1938. It was described as ‘one of the most important Master’s theses ever written… helped to change digital circuit design from an art to a science.’
Claude Shannon is known for his serious research, but a lot of his work was whimsical. He invented a calculator called THROBAC (Thrifty Roman numerical BACkward looking computer), that performs all its operations in the Roman numeral system. His home was full of mechanical turtles that would wander around, turning at obstacles; a gasoline-powered pogostick and rocket-powered Frisbee; a machine that juggled three balls with two mechanical hands; a machine to solve the Rubik’s cube; and the ‘Ultimate Machine’, which was just a box that when turned on, would make an angry, annoyed sound, reach out a hand and turn itself off. As Claude once explained with a smile, ‘I’ve spent lots of time on totally useless things.’
A lot of the early psychology experiments used to involve getting a mouse to run through a maze to reach some food at the end. By performing these experiments over and over in different ways, they could figure out how a mouse learns. So Claude built a mouse-shaped robot called Theseus. Theseus could search a maze until he solved it, and then use this knowledge to find its way through the maze from any starting point.
Oh, and there’s one other paper of his that needs mentioning. No, not the one on the science of juggling, or even the one describing his ‘mind reading’ machine. In 1948 he published ‘A mathematical theory of communication.’ Quite simply, this changed the world, and changed how we think about information. It laid the groundwork for a lot of important theory used in developing modern cryptography, satellite navigation, mobile phone networks… and the internet.
Using clever computer vision techniques it’s now possible for your ingredients to tell you how they should be cooked in a kitchen. The system uses cameras and projectors to first recognise the ingredients on the chopping board, for example the size, shape and species of fish you are using. Then the system projects a cutting line on the fish to show you how to prepare it, and a speech bubble telling you how long it should be cooked for and suggesting ways it can be served. In the future these cooking support systems could take some of the strain from mealtimes. At least it will help to make us all better cooks, and perhaps with an added pinch of artificial intelligence we can all become more like Jamie Oliver.
Learn the recipe for Hummus and Tomato Pasta, and find out about program structure, commenting, variable storage and assignments. A bit of ‘back to school’ around the dinner table (or perhaps combine Computer Science classes with Food and Nutrition!).
Subscribe to be notified whenever we publish a new post to the CS4FN blog.
This blog is funded by EPSRC on research agreement EP/W033615/1.
What was the first technology for recording music: CDs? Records? 78s, The phonograph? No. Trained songbirds came before all of them.
Composer, musician, engineer and visiting fellow at Goldsmiths University, Sarah Angliss, usually has a robot on stage performing live with her. These robots are not slick high tech cyber-beings, but junk modelled automata. One, named Hugo, sports a spooky ventriloquist dolls head! Sarah builds and programs her robots, herself.
She is also a sound historian, and worked on a Radio 4 documentary, ‘The Bird Fancyer’s Delight‘, uncovering how birds have been used to provide music across the ages. During the 1700’s people trained songbirds to sing human invented tunes in their homes. You could buy special manuals showing how to train your pet bird. By playing young birds a tune over and over again, and in the absence of other birds to put them right, they would adopt that song as their own. Playing the recorder was one way to train them, but special instruments were also invented to do the job automatically.
With the invention of the phonograph, home songbird popularity plummeted but it didn’t completely die out. Blackbirds, thrushes, canaries, budgies, bullfinches and other songbirds have continued to be schooled to learn songs that they would never sing in the wild.
Website whimsy 1 – the UK Government (surprisingly)!
If you’re reading this post today (Monday 26th August 2024) it’s a Bank Holiday in England & Wales and in Northern Ireland. The UK Government’s website has a page https://www.gov.uk/bank-holidays which lists all the upcoming dates for the next two years’ worth of bank holidays (so people can put them in the diaries). But… if you visit the page on a Bank Holiday then you’ll be met with some bunting, which isn’t there on the other days. If you’re reading this post tomorrow then you’ll have to wait until the next Bank Holidays, which are Christmas, Boxing Day then New Year’s Day. On those days the bunting changes to tinsel!
Website whimsy 2 – Wikipedia
Throughout history people have tried to make money and sometimes they do so rather dishonestly. Occasionally people claim that they have a qualification in a subject – in the hope that this will make people trust them, and give them money.
Normally it takes time and effort to get a genuine qualification (and for some qualifications it costs money too). A qualification that is suspiciously easy to get (just make a payment and then get a certificate) raises red flags and if someone thinks someone else’s qualification might be fraudulent there’s a fun way they can draw attention to this.
There’s a page on Wikipedia currently called “List of animals awarded human credentials” (but it used to have the even better name “List of animals with fraudulent diplomas” (and before that it was “List of cats with fraudulent diplomas” until people started adding more animals!)). It’s full of examples where people filled in an online form and paid a fee, using their pet’s name as the ‘person’ to be awarded. If someone claims a particular credential but someone else was able to get the same credential for their dog by paying $50 and filling in a form… well, don’t give them any money!
Try your hand at making 3D pictures with stereoscopy
Bank Holiday weather is famous for being inconveniently changeable but if the rain holds off and you’re out and about with a smartphone camera (or any camera) then you can quite easily create some 3D images with them (you can do this indoors too of course). We’ve put together some basic instructions (below) and some more detailed information, in case teachers might also like to try this in class some time. (If the weather is off-putting there are also some ready-to-use images in that link).
Basic instructions: take two photos a few inches apart, line them up, gaze between them and adjust your focus until a third image appears between them which combines the two images into one that has depth perception. This is just recreating what your eyes do naturally every day – combining what your left eye and your right eye see separately into one view of the world around you.
Photographs and icons created by Jo Brodie for CS4FN.
Subscribe to be notified whenever we publish a new post to the CS4FN blog.
This blog is funded by EPSRC on research agreement EP/W033615/1.
The nurse types in a dose of 100.1 mg [milligrams] of a powerful drug and presses start. It duly injects 1001 mg into the patient without telling the nurse that it didn’t do what it was told. You wouldn’t want to be that patient!
Designing a medical device is difficult. It’s not creating the physical machine that causes problems so much as writing the software that controls everything that that machine does. The software is complex and it has to be right. But what do we mean by “right”? The most obvious thing is that when a nurse sets it to do something, that is exactly what it does.
Getting it right is subtler than that though. It must also be easy to use and not mislead the nurse: the human-computer interface has to be right too. It is the software that allows you to interact with a gadget – what buttons you press to get things done and what feedback you are given. There are some basic principles to follow when designing interfaces. One is that the person using it should always be clearly told what it is doing.
Manufacturers need ways to check their devices meet these principles: to know that they got it right.
It’s not just the manufacturers, though. Regulators have the job of checking that machines that might harm people are ‘right’ before they allow them to be sold. That’s really difficult given the software could be millions of lines long. Worse they only have a short time to give an answer.
Million to one chances are guaranteed to happen.
Problems may only happen once in a million times a device is used. They are virtually impossible to find by having someone try possibilities to see what happens, the traditional way software is checked. Of course, if a million devices are bought, then a million to one chance will happen to someone, somewhere almost immediately!
Paolo Masci at Queen Mary University of London, has come up with a way to help and in doing so found a curious problem. He’s been working with the US regulator for medical devices – the FDA – and developed a way to use maths to find problems. It involves creating a mathematical description of what critical parts of the interface program do. Properties, like the user always knowing what is going on, can then be checked using maths. Paolo tried it out on the code for entering numbers of a real medical device and found some subtle problems. He showed that if you typed in certain numbers, the machine actually treated them as a number ten times bigger. Type in a dose of 100.1 and the machine really did set the dose to be 1001. It ignored the decimal point because on such a large dose it assumed small fractions are irrelevant. However another part of the code allows you to continue typing digits. Worse still the device ignores that decimal point silently. It doesn’t make any attempt to help a nurse notice the change. A busy nurse would need to be extremely vigilant to see the tiny decimal point was missing given the lack of warning.
A useful thing about Paolo’s approach is that it gives you the button presses that lead to the problem. With that you can check other devices very quickly. He found that medical devices from three other manufacturers had exactly the same problem. Different teams had all programmed in the same problem. None had thought that if their code ignored a decimal point, it ought to warn the nurse about it rather than create a number ten times bigger. It turns out that different programmers are likely to think the same way and so make the same mistakes (see ‘Double or Nothing‘).
Now the problem is known, nurses can be warned to be extra careful and the manufacturers can update the software. Better still they and the regulators now have an easy way to check their programmers haven’t made the same mistake in future devices. In future, whether vigilant or not, a nurse won’t be able to get it wrong.
Ariane 5 on the launch pad. Photo Credit: (NASA/Chris Gunn) Public Domain via Wikimedia Commons.
If you spent billions of dollars on a gadget you’d probably like it to last more than a minute before it blows up. That’s what happened to a European Space Agency rocket. How do you make sure the worst doesn’t happen to you? How do you make machines reliable?
A powerful way to improve reliability is to use redundancy: double things up. A plane with four engines can keep flying if one fails. Worried about a flat tyre? You carry a spare in the boot. These situations are about making physical parts reliable. Most machines are a combination of hardware and software though. What about software redundancy?
You can have spare copies of software too. Rather than a single version of a program you can have several copies running on different machines. If one program goes wrong another can take over. It would be nice if it was that simple, but software is different to hardware. Two identical programs will fail in the same way at the same time: they are both following the same instructions so if one goes wrong the other will too. That was vividly shown by the maiden flight of the Ariane 5 rocket. Less than 40 seconds from launch things went wrong. The problem was to do with a big number that needed 64 bits of storage space to hold it. The program’s instructions moved it to a storage place with only 16 bits. With not enough space, the number was mangled to fit. That led to calculations by its guidance system going wrong. The rocket veered off course and exploded. The program was duplicated, but both versions were the same so both agreed on the same wrong answers. Seven billion dollars went up in smoke.
Can you get round this? One solution is to get different teams to write programs to do the same thing. The separate teams may make mistakes but surely they won’t all get the same thing wrong! Run them on different machines and let them vote on what to do. Then as long as more than half agree on the right answer the system as a whole will do the right thing. That’s the theory anyway. Unfortunately in practice it doesn’t always work. Nancy Leveson, an expert in software safety from MIT, ran an experiment where different programmers were given programs to write. She found they wrote code that gave the same wrong answers. Even if it had used independently written redundant code it’s still possible Ariane 5 would have exploded.
Redundancy is a big help but it can’t guarantee software works correctly. When designing systems to be highly reliable you have to assume things will still go wrong. You must still have ways to check for problems and to deal with them so that a mistake (whether by human or machine) won’t turn into a disaster.