# Computing: The Science of Nearly Everything

Computer Science…Research, Education and Policy

## Posts Tagged ‘xkcd’

Whenever I hear politicians demanding that our education system has to change to better meet the needs of industry, I am reminded of this xkcd comic:

While this might be facetious, I am not being naive nor pontificating from an “ivory tower” — I think there is an important point to be made about reconciling the traditional aims of education and the modern needs of industry. I understand that there is an imperative to equip our graduates (or school leavers) to be useful members of the nation’s workforce. However, higher education should not be conflated with training — the onus should be on industry to train their workforce, especially if they require specific skillsets. Clearly we have to be aware of the requirements of industry in a more general sense, but I would much prefer to develop a graduate who is capable of applying their existing knowledge and learning new skills (e.g. Alvin Toffler: “The illiterate of the 21st century will not be those who cannot read or write, but those who cannot learn, unlearn and relearn.“), rather than one who only has specific (and perhaps increasingly transient) skills and understanding. Furthermore, trying to meet the immediate needs of industry can be problematic without taking into account the latency of the graduate “pipeline”; this is especially relevant to the ongoing debate regarding computer science education and fulfilling the needs of the IT industry.

But overall, I would like to ensure that as a nation we continue to promote education as being important in its own right — for enjoyment and self-betterment (as well as lasting for longer than the time spent in formal education) — rather than primarily as a means to determining a career path.

Written by Tom

5 June 2012 at 9:09 pm

## Lots of Irritating Superfluous Parentheses

After seeing last week’s xkcd, I was reminded of the delights of learning Lisp (or in my case, Scheme) as an undergraduate. I’m a big fan of declarative programming in general — I think exposure to functional and logic programming languages develops your problem solving skills and refines how you think about programming, by focusing on the logic of a computation without getting distracted by its control flow (although this discussion has been going on for many years). It has served me well: I used logic programming (Answer Set Programming) extensively in my PhD and I dabbled with OCaml whilst a research intern at ARM; although I have used very little Haskell, I know a man who does. There seems to be a wider trend of functional programming techniques moving into the mainstream, especially with the release of F# as part of Visual Studio 2010.

Anyone who has used Lisp for any amount of time will fondly remember its enthusiastic use of parentheses. But you can embrace the Lisp philosophy a little too much. Parenthetic is a programming language that only uses ( and ) as code; all other characters are considered comments. Parenthetic uses Lisp-style expressions where parentheses enclose expressions; programs with unmatched parentheses are invalid. It looks pretty similar to another esoteric language called Parenthesis Hell, and has most of the basic Lisp features, including lambda for anonymous functions. To demonstrate a nice simple code example, the following Parenthetic program prints ‘Hello World‘:

((()()())(()(()()))((()(()))((())()()()()()()())((()()(()))((())()()()()()()()()())
((())()()()()()()()()()()))))((()()())(()(()()()))((()(())(())())((())()()()()()()(
)()()()()()()()()()()()()()()()()()()()()()()()()())))((()(()))((()(())(())())((()(
()))(()(()()))((())()()()()()()())))((()(())(())())((()(()))(()(()()))((())()()()()
)))((()(())(())())((()(()))(()(()()))((())()()()()()()()()()()())))((()(())(())())(
(()(()))(()(()()))((())()()()()()()()()()()())))((()(())(())())((()(()))(()(()()))(
(())()()()()()()()()()()()()()())))(()(()()()))((()(())(())())((()(()))(()(()()))((
())()()()()()()()()()()()()()()()()()()()()()())))((()(())(())())((()(()))(()(()())
)((())()()()()()()()()()()()()()())))((()(())(())())((()(()))(()(()()))((())()()()(
)()()()()()()()()()()()()())))((()(())(())())((()(()))(()(()()))((())()()()()()()()
()()()())))((()(())(())())((()(()))(()(()()))((())()()()))))


Pretty expressive, I’m sure you’ll agree.

There has been a rich history of developing bizarre programming languages; for example, Brainfuck, an eight-instruction Turing-Complete programming language, and Ook!, a programming language designed for orangutans (essentially isomorphic to Brainfuck, but with even fewer syntax elements).

Written by Tom

13 May 2012 at 10:00 pm

Posted in Computer science

## Proof by intimidation

with one comment

First year students, beware! The axiom of choice may be used on Monday…

(As always, a big thanks to xkcd.)

Written by Tom

25 November 2011 at 10:34 am

## The most remarkable formula in all of mathematics

I have been re-reading Genius: The Life and Science of Richard Feynman by James Gleick (hence the recent Feynman-themed post), which reminded me of a very special formula in mathematics; one that Feynman himself described as follows in his famous Feynman Lectures on Physics:

In our study of oscillating systems, we shall have occasion to use one of the most remarkable, almost astounding, formulas in all of mathematics. From the physicists’ point of view, we could bring forth this formula in two minutes or so and be done with it. But science is as much for intellectual enjoyment as for practical utility, so instead of just spending a few minutes, we shall surround the jewel by its proper setting in the grand design of that branch of mathematics called elementary algebra.

This remarkable formula? Euler’s Identity:

$e^{i\pi} + 1 = 0$

In analytical mathematics, Euler’s identity (named for the pioneering Swiss-German mathematician, Leonhard Euler), is an equality renowned for its mathematical beauty, linking five fundamental mathematical constants:

• The number 0, the additive identity.
• The number 1, the multiplicative identity.
• The number $\pi$, which is ubiquitous in trigonometry, the geometry of Euclidean space, and analytical mathematics ($\pi$ = 3.14159265…)
• The number $e$, the base of natural logarithms, which occurs widely in mathematical and scientific analysis ($e$ = 2.718281828…); both $\pi$ and $e$ are transcendental numbers.
• The number $i$, the imaginary unit of the complex numbers, whose study leads to deeper insights into many areas of algebra and calculus.

The identity is a special case of Euler’s Formula from complex analysis, which states that:

$e^{ix} = \cos x + i \sin x$

for any real number $x$. The derivation to the identity follows, as $\cos \pi = -1$ and $\sin \pi = 0$.

For me, Euler’s Identity reinforces the underlying beauty and interconnectedness of mathematics, pulling together three seemingly disparate fields into one simple formula; it certainly deserves being known as “the most remarkable formula in all of mathematics“.

Written by Tom

16 May 2011 at 7:09 pm

## Fukushima

Today’s page 3 headline in The Times:

## Japan radiation leak may be worse than Chernobyl

A worrying headline indeed, especially with all of the associated implications of dropping the C-word, mainly due to the re-categorisation of the incident from Level 5 to Level 7 on the International Nuclear Event Scale (INES).

However, on closer inspection of the actual article, specifically the Q&A section further down, the headline does not quite ring true:

Does this mean that Fukushima is as serious an accident as Chernobyl?
No. The INES scale is not finely graded, so Level 7 incidents can vary widely in severity. Chernobyl remains a far more serious accident. To date, the amount of radioactive material released at Fukushima has been a tenth of that released into the atmosphere at Chernobyl and confined to a much smaller area.

Hmmmm, that’s slightly disingenuous; maybe they should have just published this xkcd comic:

UPDATE: check out the Fukushima Nuclear Accident Update Log by the International Atomic Energy Agency (IAEA).

UPDATE: Quote by Hiroshi Horiike, Professor of Nuclear Engineering at Osaka University, in Time magazine (25th April 2011) regarding the increase in severity level of the crisis to the maximum of seven:

We should not consider the two incidents as the same…Fukushima is not a Chernobyl.

Written by Tom

13 April 2011 at 9:41 am