2013 ACM Turing Award: Lesley Lamport

Today, the 2013 ACM Turing Award has been awarded to Leslie Lamport, Principal Researcher at Microsoft Research:

For fundamental contributions to the theory and practice of distributed and concurrent systems, notably the invention of concepts such as causality and logical clocks, safety and liveness, replicated state machines, and sequential consistency.

 
Lamport has not only advanced the reliability and consistency of computing systems that work as intended (for example, temporal logic of actions (TLA) and Byzantine fault tolerance), but also created LaTeX!

Read the full award citation.

lamport

(also see: the 2012 recipients, as well as the full chronological listing of awards)

Tagged , , ,

Embrace logic

Let him who is not come to logic be plagued with continuous and everlasting filth.

Metalogicon II (1159)
John of Salisbury (1120-1180)

Tagged , , ,

2014 IET South Wales Annual Lecture

On Thursday 20th March I will be giving the 2014 IET South Wales Annual Lecture at Swansea University:

Computing: Enabling a Digital Wales

Digital technology (and thus computation) is an indispensable and crucial component of our lives, society and environment. In a world increasingly dominated by technology, we now need to be more than just digitally literate. Across science and engineering, computing has moved on from assisting researchers in doing science, to transforming both how science is done and what science is done. In the context of (Welsh and UK) Government science, technology and innovation policy, computer scientists (of all flavours) have a significant role to play. Tom will ground this hypothesis by describing his research interests at the hardware/software interface, his broader work in education and science policy, and then finishing by presenting a vision for a “Digital Wales” underpinned by science and technology innovation.

 
This talk is free, with registration online.

Tagged , , ,

Eye of the Tiger

This old 24-pin dot matrix printer has been converted into a MIDI compatible sound generator using an ATmega8 and a Xilinx FPGA. Up to 21 notes can be played simultaneously (16 MIDI channels with individual volume and pitch). The original printing frequency was approximately 1kHz with a pulse width of 300μs — pins hit the paper at a maximum of 1000 times per second during printing. The MIDI electronics increases this from a few Hz up to 2kHz. When the pulse width is reduced the sound gets quieter because the pin hits the paper with less force; see the full technical details.

(also see what can be done by manipulating floppy disk drives, especially for Super Mario)

Tagged , , , ,

Simon Jenkins on mathematics education

There has been much discussion online of yesterday’s CiF article by Simon Jenkins (For Britain’s pupils, maths is even more pointless than Latin). Click-bait aside, he has been here before; ignoring the derivation of the now-pervasive “x is the new Latin” meme, as well as overlooking the majority of the straw men and other logic fallacies, the main thrust of the article presents a false dichotomy. It appears to reiterate an antiquated Two Cultures-type of divide between mathematics and “creativity and social and emotional capacities” (which also frequently crops up in discussions on programming and computer science education). Furthermore, it implies the drive to reform mathematics education in the UK is ultimately misguided, with few jobs requiring advanced mathematical skills (STEM agenda? No thank you!), and we would be better served by focusing on numeracy as well as encouraging “key industries”:

If British schools are to be slaves to Gove’s economic dogma, they should be turning out accountants, lawyers, administrators and salespeople. That is where the money is. Britain needs literate and presentable young people, sensitive to culture and the world around them, skilled in health, entertainment, finance, the law and citizenship. The truth is that Gove, like most of Cameron’s ministers, is an old socialist planner at heart.

 
Now, this is not to say that there are no issues with mathematics education in the UK; ACME has been arguing for a mathematics curriculum fit for the 21st century, supported by Ofsted and reports highlighting the importance of mathematics in the other sciences. Conrad Wolfram has long maintained we have the wrong focus in how we teach mathematics — in a similar way for computer science, contexts and problems must come first. I have long maintained it is socially acceptable to be bad at mathematics — it is rare for people to publicly admit they are unable to read or write, but happily proclaim a lifelong inability to perform basic calculations.

Jenkins has thus thrown together a ragbag of prejudices (a love of the arts, a dislike of international education markers, a sympathy for progressive education) with personal anecdote and concocted an argument completely detached from reality. As epitomised by this quote:

I learned maths. I found it tough and enjoyable. Algebra, trigonometry, differential calculus, logarithms and primes held no mystery, but they were even more pointless than Latin and Greek. Only a handful of my contemporaries went on to use maths afterwards.

 
…which reminds me of this xkcd comic:

Tagged , , ,

Five Programming Top Tips (from a seven year old)

fivetoptips

Earlier today I tweeted the above image of five handwritten top tips from a seven year old female who had been learning programming; these were extremely astute observations and were a delight to read.

After digging a bit deeper, I found the original blog post, describing in more detail the poignant observations of @fjsteele‘s daughter after spending an hour using Hopscotch, a visual programming language for the iPad. In the blog post, he explains that this was his daughter’s first programming lesson and he asked her to write down instructions on how to draw a square, and then use Hopscotch to make one; after that, they tried a triangle:

It was fun to see the `lightbulb’ come on as she tried different blocks, failed, tried something else. It was really fun to watch her discover debugging. She quickly learned not to do too much work before testing it out.

 
Not a bad summary from an hour of programming! What else would you add to this list?

Tagged , ,

Is the Universe a simulation?

From an article by Edward Frenkel in today’s New York Times:

Many mathematicians, when pressed, admit to being Platonists. The great logician Kurt Gödel argued that mathematical concepts and ideas “form an objective reality of their own, which we cannot create or change, but only perceive and describe”. But if this is true, how do humans manage to access this hidden reality?

We don’t know. But one fanciful possibility is that we live in a computer simulation based on the laws of mathematics — not in what we commonly take to be the real world. According to this theory, some highly advanced computer programmer of the future has devised this simulation, and we are unknowingly part of it. Thus when we discover a mathematical truth, we are simply discovering aspects of the code that the programmer used.

 
This hypothesis is by no means new; in Are you living in a computer simulation, Nick Bostrum argues that one of the following propositions is true:

  1. the human species is very likely to go extinct before reaching a “posthuman” stage;
  2. any posthuman civilisation is extremely unlikely to run a significant number of simulations of their evolutionary history (or variations thereof);
  3. we are almost certainly living in a computer simulation.

Also see: Constraints on the Universe as a Numerical Simulation.

Tagged , , ,

HTTPS Everywhere

https-everywhere

HTTPS Everywhere is a Firefox, Chrome and Opera extension that encrypts your communications with many major websites, making your browsing more secure.

Encrypt the web: Install HTTPS Everywhere today.

(HTTPS Everywhere is a collaboration between The Tor Project and the Electronic Frontier Foundation; information about how to access the project’s Git repository and get involved in development is here)

Tagged , , ,

The authority of reason


To argue with a man who has renounced the use and authority of reason, and whose philosophy consists in holding humanity in contempt, is like administering medicine to the dead, or endeavoring to convert an atheist by scripture.

The American Crisis, No. V (1778)
Thomas Paine (1737-1809)

Tagged , , ,

Interview for ITV Wales on effects of computer games

(N.B. due to the privacy settings for this Vimeo clip, you will have to view the video on their website)

Yesterday I was interviewed on Newsweek Wales, ITV Wales’ weekly news summary programme, on the perceived dangers of children playing computer games. This was in response to an ITV Wales News story from a few days before, in which a headteacher from a primary school near Caerphilly had felt he had identified a possible link between violent video games and aggressive behaviour; this story was further contextualised by a nine year old boy from Neath who had written to Prime Minister about his concerns over the availability of age-appropriate computer games.

This rather anecdotal declaration of a causal link between playing computer games (an activity enjoyed by the majority of the population) and increased aggression and violence is frustrating; furthermore, this type of story appears to pop every so often, but is not backed by the evidence base: see here and here, with summaries here and here. As I mentioned in the interview, the demographics of people who play computer games can be surprising, especially average age (over 30) and the gender split (55% male/45% female). While I take the point from the Neath pupil about the availability (and attraction) of age-appropriate computer games, it is interesting to list the top five best-selling computer games of all time (across all platforms):

Ranking Title Release Year Systems Copies Sold
1. Wii Sports 2006 Wii 82 million
2. Super Mario Bros. 1985 NES 40 million
3. Minecraft 2009 Various 36 million
4. Mario Kart Wii 2008 Wii 35 million
5. Tetris 2008 GameBoy/GameBoy Color 35 million

 
In summary: let’s stick to the evidence and not confuse societal or educational issues as technology problems. Minecraft is a great example of how powerful computer games can be: not only is it incredibly popular, it is also a great resource for education, developing digital literacies, communication skills and basic programming (aside: Ordnance Survey recently released a 22 billion block Minecraft map of the UK as an open data resource).

Tagged , , , ,

The perils of chess


Chess is a mere amusement of a very inferior character, which robs the mind of valuable time that might be devoted to nobler acquirements, while it affords no benefit whatever to the body. Chess has acquired a high reputation as being a means to discipline the mind, but persons engaged in sedentary occupations should never practice this cheerless game; they require out-door exercises — not this sort of mental gladiatorship.


Scientific American, July 1859

Tagged , , , ,

Cunk on Computing

Philomena Cunk finds out about the history of computing in this week’s Charlie Brooker’s Weekly Wipe (SE02E04):

(more seriously: you might recognise the National Museum of Computing at Bletchley Park; also worth reading about Konrad Zuse and the Z3)

Tagged , , ,

Policy Statement on Skills by the Welsh Government

Ken Skates AM, the Welsh Government’s Deputy Minister for Skills, has today unveiled a Policy Statement on Skills — a ten year plan “to help Wales evolve into a highly-skilled nation and create the conditions that businesses need to grow and flourish”, setting out the steps that need to be taken “to develop a resilient, responsive and sustainable post-19 skills system”.

The statement covers four priority areas for the Welsh Government:

  • Skills for jobs and growth: Focuses on how Wales can stimulate demand for a more highly-skilled society that can drive forward our economy in the pursuit of jobs and growth.
  • Skills that respond to local needs: Describes how Wales must develop a skills system which reflects the needs of local communities, including providing a streamlined and accessible employment and skills offer for both individuals and employers.
  • Skills that employers value: Recognises the importance of engaging employers to participate in the skills system and describes the level of co-investment needed alongside government if Wales is to remain competitive.
  • Skills for employment: Explores the role of the skills system in providing the employment support necessary to assist individuals into employment and to progress in work, both of which are central to our tackling poverty agenda in Wales.

From my perspective, digital skills should be front and centre in this new policy, both to ensure we have safe and confident digital citizens (see Delivering a Digital Wales), as well as to encourage the development of high-level skills for the Welsh Government’s priority sectors over the next ten years. This also links back last October’s review of the ICT curriculum in Wales, as well as the work of the UK Digital Skills Taskforce.

It will be interesting to see how this develops over the coming months; download the full policy statement [PDF].

Tagged , , , ,

What Superman III teaches us about programming

I’ve always had a soft spot for Superman III (1983), the third film in the original franchise starring Christopher Reeve as Superman. While it’s generally regarded as being below the standard of the first two films, it has some great moments e.g. the scene where evil Superman fights Clark Kent.

In Superman III, Richard Pryor plays Gus Gorman, a man with no known computing skills whatsoever, who — when his social security is stopped — turns to programming out of desperation.

become_a_programmer

After completing a programming course (presumably in BASIC or COBOL), Gus soon lands a job at Webscoe Industries, unaware that he’s working for Evil Robert Vaughn. He stays back after work one night, to hack into the work computers and award himself a few extra expenses. But what possible lines of programming genius will it require? What would you need to type in to override all the ruthless security of the Webscoe Payroll Division?

give_me_all_the_money

Err…it’s a good job he did that course.

After receiving a cheque for $85,789.90 and turning up to work in a new Ferrari, it all goes rather downhill: Evil Robert Vaughn coerces him into hacking the Vulcan weather satellite, as well as manipulating the global financial system, damaging the world’s oil supplies by moving every tanker into roughly the same place and replicating kryptonite by tracking down unknown elements in outer space. With the programming educational element of the film done by this point, Gus proposes building a “supercomputer”, eventually leading to the creation of a Robocop prototype.

Read the full Den of Geek analysis of Superman III‘s contribution to the teaching of programming; and remember: all of this computer mayhem came from a man who answered an advert on the back of a book of matches.

Tagged , ,

Dispatchwork: repairing dull and grey cities with Plastic Construction Bricks

This is part of the manifesto of the delightful Dispatchwork project, conceived by artist Jan Vormann in Belgium in 2010:


I don’t enjoy living in dull and grey cities. Do you? Have you noticed that toys for kids are generally very shiny and colorful? I wonder why that is, given that they are to be brought up to live in mostly dull and gray cities as adults. Since I lived in many of such cities, I am seeking to improve the appearance of public spaces in different ways, in terms of what I consider improvement. Dispatchwork aims to seal fissures in broken walls worldwide, completing the material compilation in urban constructing and adding color to the urban greyscales, by inserting a very basic construction-material: Plastic Construction Bricks (PCBs).

 
It has since spread worldwide: here’s an example in Piccadilly Circus in London:

london1

london2

london3

See more examples on the project website.

Tagged , , ,

FuckIt.py: The Python Error Steamroller

Having problems with your Python code? Try FuckIt.py by ajalt:

FuckIt.py uses state-of-the-art technology to make sure your Python code runs whether it has any right to or not. Some code has an error? Fuck it.

FuckIt.py uses a combination of dynamic compilation, Abstract Syntax Tree rewriting, live call stack modification and love to get rid of all those pesky errors that makes programming so hard. All functionality is provided through the fuckit module: add import fuckit to the top of your script, then you can use fuckit in a number of ways e.g. as a replacement for import when a module has errors — just change import some_shitty_module to fuckit('some_shitty_module'):

import fuckit
#import some_shitty_module
fuckit('some_shitty_module')
some_shitty_module.some_function()

Still getting errors? Chain fuckit calls. This module is like violence: if it doesn’t work, you just need more of it:

from fuckit import fuckit
fuckit(fuckit('some_shitty_module'))
# This is definitely going to run now.
some_shitty_module.some_function()

You can also use fuckit as a decorator and a context manager; plus check out its extremely permissive public license.

(also see: FuckItJS, the Javascript Error Steamroller)

Tagged ,

Critical questions for computer science education research

Over the past two years, we have seen wholesale reform of computing (and more specifically, computer science) education in the UK. In England from September 2014, a new national curriculum subject Computing, with a challenging and aspirational programme of study (“A high-quality computing education equips pupils to use computational thinking and creativity to understand and change the world.”) will replace ICT; in Scotland, we see Computing Science forming part of their Curriculum for Excellence; in Wales, September’s review of the ICT curriculum is shaping the ongoing Curriculum for Wales review; along with burgeoning activity in Northern Ireland.

While there is a large corpus of computing education research, along with national and international policy reports, such as the ACM/CSTA’s Running on Empty (2010), the Royal Society’s Shut down or restart? report (2012) and ACM Europe’s informatics education report (2013), there still remain a number of critical questions in computer science education. The recent announcement of the UK Forum for Computing Education provides an opportunity to support this important research agenda. Further to a group discussion led by members of the CSTA at a recent ACM Education Council meeting, the following list of questions cover a breadth of issues and reflect the deep need for further research-grounded solutions to the issues we face.

  • What are the indicators of incoming student success in introductory level computer science in colleges and universities?
  • Does computer science learning in schools contribute to success/improvement in other disciplines, especially mathematics and science?
  • What is the link between age/educational development and the potential to learn and master computer science concepts?
  • Are there issues of ergonomics in the introduction of computing devices with young children?
  • Is there a link between previous mathematics learning and success in computer science at school level?
  • What are the major factors that lead to students making early choices not to pursue computer science?
  • What is the role of informal education programs in scaffolding learning in computer science, especially in communities where access to computer science learning in school is limited?
  • What are the potential benefits and drawbacks of MOOCs in school student learning?
  • What are the potential benefits and drawbacks of MOOCs for the professional development of computer science teachers?
  • What models professional development are most effective for improving teacher mastery of computer science concepts and pedagogy?
  • What are the impacts of current efforts to market computer science to students?
  • To what extent do poverty and lack of home access to computer science tools impact computer science performance and or interest in school?
  • Do one-to-one devices per child programs have any impact on computer science interest or performance?
  • What are the major factors in computer science teacher retention?
  • What is required to increase the availability of teacher preparation programs for computer science teachers?
  • What is the impact of transitioning the the content of teacher preparation courses in “educational technology/AV” to a focus on computational thinking across STEM?
  • What is the ideal balance between content knowledge learning and pedagogical learning in computer science teacher preparation and alternative certifications?
  • Do hybrid programs (educators and volunteer partnerships) improve student access to rigorous computer science courses and increase the pool of well-prepared computer science teachers?

Which of these do you think is most important? And what is missing? (the questions are listed in no particular order and have been labelled alphabetical for easy referencing in the comments)

Tagged , , , ,

Legal disjunction

A fine example of the problems of grammatically vague statements:

In reproducing the obscure wording of treaty obligations in the Oil in Navigable Waters Act 1955, s 1 of the Act said that if oil were unlawfully discharged from a British ship ‘the owner or master’ of the ship would be guilty of an offence. In Federal Steam Navigation Co v Department of Trade and Industry [1974] 1 WLR 505, both the owner and the master of a ship were convicted. In dismissing their appeals, the House of Lords split three to two.

This interpretation of inclusive disjunction is an example of the golden rule, a form of statutory construction traditionally applied by courts in England and Wales; as per Grey v Pearson (1857) 6 HLC 61: “In construing statutes, and all written instruments, the grammatical and ordinary sense of the words is to be adhered to, unless that would lead to some absurdity or inconsistency with the rest of the instrument, in which case the grammatical and ordinary sense of the words may be modified, so as to avoid that absurdity or inconsistency, but not farther.”.

(thanks to James Davenport)

Tagged , ,
Follow

Get every new post delivered to your Inbox.

Join 342 other followers