Category Archives: Computer science

Illustrious company

Yesterday, I saw this quote from the blurb for Jamie Bartlett’s new book The Dark Net:

Beyond the familiar online world that most of us inhabit — a world of Google, Hotmail, Facebook and Amazon — lies a vast and often hidden network of sites, communities and cultures where freedom is pushed to its limits, and where people can be anyone, or do anything, they want. A world that is as creative and complex as it is dangerous and disturbing. A world that is much closer than you think.

The dark net is an underworld that stretches from popular social media sites to the most secretive corners of the encrypted web. It is a world that frequently appears in newspaper headlines, but one that is little understood, and rarely explored. The Dark Net is a revelatory examination of the internet today, and of its most innovative and dangerous subcultures: trolls and pornographers, drug dealers and hackers, political extremists and computer scientists, Bitcoin programmers and self-harmers, libertarians and vigilantes.

Based on extensive first-hand experience, exclusive interviews and shocking documentary evidence, The Dark Net offers a startling glimpse of human nature under the conditions of freedom and anonymity, and shines a light on an enigmatic and ever-changing world.

 
Computer science: an innovative and dangerous subculture indeed!

(N.B. I have not read this book)

Come and do a (fully-funded) PhD with me

Fancy doing a PhD with me at Cardiff Metropolitan University? I have a fully-funded studentship (for UK/EU students) starting in September, in collaboration with HP in Bristol:

Scaling Superoptimisation for Enterprise Applications

Our world is increasingly dependent on the effectiveness and performance of software. Tools and methodologies for creating useful software artefacts have been around for many years, but the scalability of these systems for solving challenging real world problems are — in many important cases — poor. While there are numerous socio-technical issues associated with developing large software systems, there is a significant opportunity to address the optimisation of software in a strategic, adaptable and platform-independent way.

Superoptimisation is an approach to optimising code by aiming for optimality from the outset, rather than as the aggregation of heuristics that are neither intended nor guaranteed to give provable optimality. Building on previous work by Crick et al., this research project will further develop the theoretical foundations of superoptimisation, as well as developing a scalable toolchain for superoptimising enterprise-level industrial software applications. This research project is a collaboration between Cardiff Metropolitan University and Hewlett-Packard (HP) in Bristol; HP is a leading technology company that operates in more than 170 countries around the world, providing infrastructure and business offerings that span from handheld devices to some of the world’s most powerful supercomputers.

Applicants must have an excellent first degree in Computer Science, Computer Engineering, Electronics or a related discipline, with interests/experience in compilers, optimisation, logic programming, satisfiability modulo theories and mathematical foundations.

 
For informal enquiries, send me an email: tcrick@cardiffmet.ac.uk (but please apply via FindAPhD or here).

Deadline for applications: Friday 22 August.

Tagged , , , ,

Paper submitted to WSSSPE2: “Can I Implement Your Algorithm?”: A Model for Reproducible Research Software

Yesterday, me, Ben Hall and Samin Ishtiaq (both Microsoft Research Cambridge) submitted a paper to WSSSPE2, the 2nd Workshop on Sustainable Software for Science: Practice and Experiences to be held in conjunction with SC14 in New Orleans in November. As per the aims of the workshop: progress in scientific research is dependent on the quality and accessibility of software at all levels and it is critical to address challenges related to the development, deployment and maintenance of reusable software as well as education around software practices. We feel this multitude of research software engineering problems are not just manifest in computer science, but also across the computational science and engineering domains (particularly with regards to benchmarking and availability of code). We propose a number of recommendations to address these issues, as well as proposing a new open platform for scientific software development. You can download our arXiv pre-print; the abstract is as follows:

The reproduction and replication of novel scientific results has become a major issue for a number of disciplines. In computer science and related disciplines such as systems biology, the issues closely revolve around the ability to implement novel algorithms and approaches. Taking an approach from the literature and applying it in a new codebase frequently requires local knowledge missing from the published manuscripts and project websites. Alongside this issue, benchmarking, and the development of fair, and widely available benchmark sets present another barrier. In this paper, we outline several suggestions to address these issues, driven by specific examples from a range of scientific domains. Finally, based on these suggestions, we propose a new open platform for scientific software development which effectively isolates specific dependencies from the individual researcher and their workstation and allows faster, more powerful sharing of the results of scientific software engineering.

 
(see GitHub repo)

Tagged , , , , ,

Paper at HCII 2014: “Changing Faces: Identifying Complex Behavioural Profiles”

In June, my colleague Giles Oatley presented a joint paper entitled: Changing Faces: Identifying Complex Behavioural Profiles at HCII 2014, the 16th International Conference on Human-Computer Interaction in Crete.

If you do not have institutional access to SpringerLink, especially the Lecture Notes in Computer Science series, you can download our pre-print. The abstract is as follows:

There has been significant interest in the identification and profiling of insider threats, attracting high-profile policy focus and strategic research funding from governments and funding bodies. Recent examples attracting worldwide attention include the cases of Chelsea Manning, Edward Snowden and the US authorities. The challenges with profiling an individual across a range of activities is that their data footprint will legitimately vary significantly based on time and/or location. The insider threat problem is thus a specific instance of the more general problem of profiling complex behaviours. In this paper, we discuss our preliminary research models relating to profiling complex behaviours and present a set of experiments related to changing roles as viewed through large scale social network datasets, such as Twitter. We employ psycholinguistic metrics in this work, considering changing roles from the standpoint of a trait-based personality theory. We also present further representations, including an alternative psychological theory (not trait-based), and established techniques for crime modelling, spatio-temporal and graph/network, to investigate within a wider reasoning framework.

 
(see Publications)

Tagged , , , , ,

Call for Papers: Recomputability 2014

I am co-chairing Recomputability 2014, the first workshop to focus explicitly on recomputability and reproducibility in the context of utility and cloud computing and is open to all members of the cloud, big data, grid, cluster computing and open science communities. Recomputability 2014 is an affiliated workshop of the 7th IEEE/ACM International Conference on Utility and Cloud Computing (UCC 2014), to be held in London in December 2014.

Recomputability 2014 will provide an interdisciplinary forum for academic and industrial researchers, practitioners and developers to discuss challenges, ideas, policy and practical experience in reproducibility, recomputation, reusability and reliability across utility and cloud computing. It will provide an opportunity to share and showcase best practice, as well as to provide a platform to further develop policy, initiatives and practical techniques for researchers in this domain. Participation by early career researchers is strongly encouraged.

Proposed topics of interest include (but are not limited to):

  • infrastructure, tools and environments for recomputabilty and reproducibility in the cloud;
  • recomputability for virtual machines;
  • virtual machines as self-contained research objects or demonstrators;
  • describing and cataloging cloud setups;
  • the role of community/open access experimental frameworks and repositories for virtual machines and data, their operation and sustainability;
  • validation and verification of experimental results by the community;
  • sharing and publication issues;
  • recommending policy changes for recomputability and reproducibility;
  • improving education and training: best practice, novel uses, case studies;
  • encouraging industry’s role in recomputability and reproducibility.

Please see the full call for papers; deadline for submissions (online via EasyChair) is 10 August 2014 17 August 2014.

Tagged , , , , , ,

Simon Peyton Jones on Teaching Creative Computer Science

An excellent TEDx talk by Simon Peyton Jones, Principal Researcher at Microsoft Research Cambridge and Chair of Computing At School, on why we should teach computer science at school.

Tagged , ,

Alan Turing: mathematician, computer pioneer and code breaker

turingplaque

Found Turing’s plaque today near King’s College, Cambridge (his alma mater).

Tagged ,

2013 ACM Software System Award: Coq

Today, the 2013 ACM Software System Award has been awarded to Bruno Barras, Yves Bertot, Pierre Castéran, Thierry Coquand, Jean-Christophe Filliâtre, Hugo Herbelin, Gerard P. Huet, Chetan Murthy and Christine Paulin-Mohring:

For the Coq Proof Assistant System that provides interactive software for the development of formal proofs, using a powerful logic known as the Calculus of Inductive Constructions.

 
The Coq Proof Assistant System (full award citation), which has been under continuous development for nearly 30 years, is a formal proof management system that supports a rich higher-order logic with powerful inductive definitions. The programming language incorporates a rich dependent type system, applicable to a range of needs from compilers to models of foundational mathematics. Because it can be used to state mathematical theorems and software specifications alike, Coq is a key enabling technology for certified software and has played an influential role in several disciplines including formal methods, programming languages, program verification and formal mathematics. The system is open source, is supported by a substantial and useful library, and has attracted a large and active user community. Since the project started, more than 40 people have contributed various theoretical, implementational and pedagogical works leading to the Coq system as it is now (see Who did What in Coq?).

Some of the significant results that have been accomplished using Coq are: proofs for the four colour theorem, the development of CompCert (a fully verified compiler for C), the development of RockSalt (software-based fault isolation, as used in Google’s Native Client), and most recent, the fully specified and verified hypervisor OS kernel CertiKOS.

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

Tagged , , , ,

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 , , ,

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 , , ,

Paper at AI-2013: “‘The First Day of Summer': Parsing Temporal Expressions with Distributed Semantics”

In December, my PhD student Benjamin Blamey presented a joint paper entitled: ‘The First Day of Summer': Parsing Temporal Expressions with Distributed Semantics at AI-2013, the 33rd SGAI International Conference on Artificial Intelligence in Cambridge.

If you do not have institutional access to SpringerLink, especially the Research and Development in Intelligent Systems series, you can download our pre-print. The abstract is as follows:

Detecting and understanding temporal expressions are key tasks in natural language processing (NLP), and are important for event detection and information retrieval. In the existing approaches, temporal semantics are typically represented as discrete ranges or specific dates, and the task is restricted to text that conforms to this representation. We propose an alternate paradigm: that of distributed temporal semantics –- where a probability density function models relative probabilities of the various interpretations. We extend SUTime, a state-of-the-art NLP system to incorporate our approach, and build definitions of new and existing temporal expressions. A worked example is used to demonstrate our approach: the estimation of the creation time of photos in online social networks (OSNs), with a brief discussion of how the proposed paradigm relates to the point- and interval-based systems of time. An interactive demonstration, along with source code and datasets, are available online.

 
(see Publications)

Tagged , , , , ,

2008 Royal Institution Christmas Lectures: Professor Chris Bishop

The Royal Institution Christmas Lectures, started by Michael Faraday in 1825, are one of the highlights of science communication specifically aimed at young people to be broadcast on national television. I distinctly remember watching the Christmas Lectures when I was young, in particular Richard Dawkins in 1991 and Frank Close in 1993. The 2013 Christmas Lectures — Life Fantastic — have Alison Woollard from the University of Oxford exploring the frontiers of developmental biology and uncovering the remarkable transformation of a single cell into a complex organism.

Unsurprisingly, I am always reminded of the single instance in 2008 of a computer scientist presenting the Christmas Lectures: Hi-tech Trek with Chris Bishop, a Distinguished Scientist at Microsoft Research Cambridge, where he leads the Machine Learning and Perception group:

Christopher Bishop


From the origin of the microprocessor to the development of the internet, the field of computer science has literally changed the way in which we live our lives.

But the world of computers is vast and complicated, ranging from the architecture of microchips to use of quantum mechanics for data encryption – it’s not always easy to know what exactly is going on inside the box. So how do computers work? How is so much information stored within a single hard-drive and how do computers communicate with each other over the internet?

Across five lectures, Professor Chris Bishop sheds light on some of these questions by tracing the evolution of the modern computer. Along the way he explores the many technologies which have developed as a result of the computer revolution; including the interconnected world of the internet, the use of software to control hardware and the challenges involved in creating artificial intelligence.

You can watch all five episodes of the 2008 Lectures on the excellent Ri Channel (as well as extra resources on the microsite):

Tagged , ,

UK Forum for Computing Education

A new expert body on computing education was established today: the UK Forum for Computing Education (UKForCE), which will provide an independent and unified voice to advise UK government and other agencies on issues relating to computing education. UKForCE is led by the Royal Academy of Engineering and will provide advice on the curriculum, qualifications and assessment and the supply and training of computing teachers.

As per today’s press release, the expert body has been established in response to the 2012 Royal Society report “Shut down or restart: the way forward for computing in UK schools”, which had as a key recommendation the formation of a UK forum for the UK’s computing bodies. UKForCE brings together representatives from across the communities of education, computer science, digital media, IT, engineering and telecommunications. The body will be independent of government and awarding organisations and will work towards improving computing education across all education sectors of the UK.

UKForCE will consist of a smaller strategic group, along with a broader representative forum (invitations to be sent out shortly); the current members of the group are:

  • Chris Mairs FREng (Metaswitch Networks)
  • Andy Connell (Keele University)
  • Bob Harrison (Toshiba Information Systems, UK)
  • Simon Peyton Jones (Microsoft Research Cambridge)
  • Bill Mitchell (BCS, The Chartered Institute for IT)
  • Liz Bacon (University of Greenwich)
  • Theo Blackwell (Next Gen. Skills)
  • Mark Chambers (Naace)
  • Debbie Forster (Apps for Good)
  • Quintin Cutts (University of Glasgow)
  • Tom Crick (Cardiff Metropolitan University)
  • Sue Nieland (e-skills UK)
  • Rhys Morgan (Royal Academy of Engineering)

Chris Mairs, Chair of UKForCE and Chief Scientist at Metaswitch Networks, said:


The new computing curriculum, which comes into effect in September 2014, is a most welcome step change in computing education. There are many amazing initiatives springing up to build upon this bold move both inside and outside the classroom.

UKForCE will be the connective tissue between all these initiatives, central government and other relevant bodies. With a coherent voice and government commitment, our children will be the world’s most savvy digital citizens and a tremendous asset to the UK economy.

As well as providing a springboard for great software engineers and computing specialists, effective delivery of the new curriculum can literally improve the life chances of an entire generation. UKForCE will help make this happen.

The creation of UKForCE, to sit alongside similar organisations such as ACME, SCORE and E4E, is a significant opportunity to raise the profile of computing as a discipline, as well as support its delivery across all four nations of the UK. I look forward to working with the forum in 2014, in particular to continue to promote the reform of computing education in Wales (see the review of the ICT curriculum in Wales from October).

Tagged , , , ,

2014 Software Sustainability Institute Fellowship

SSI

I’m delighted to have been named today as one of the sixteen Software Sustainability Institute Fellows for 2014.

The Software Sustainability Institute (SSI) is an EPSRC-funded project based at the universities of Edinburgh, Manchester, Oxford and Southampton, and draws on a team of experts with a breadth of experience in software development, project and programme management, research facilitation, publicity and community engagement. It’s a national facility for cultivating world-class research through software, whose goal is to make it easier to rely on software as a foundation of research; see their manifesto. The SSI works with researchers, developers, funders and infrastructure providers to identify the key issues and best practice surrounding scientific software.

During my fellowship, I’m particularly keen to work closely with Software Carpentry and Mozilla Science Lab to highlight the importance of software skills across the STEM disciplines. I’m also interested in a broader open science/open computation agenda; see the Recomputation Manifesto and the recently established recomputation.org project.

More to follow in 2014!

Tagged , , , , , , ,

BBC Four: The Joy of Logic

Catch The Joy of Logic by Dave Cliff on iPlayer before it disappears! Programme blurb:


A sharp, witty, mind-expanding and exuberant foray into the world of logic with computer scientist Professor Dave Cliff. Following in the footsteps of the award-winning ‘The Joy of Stats’ and its sequel, ‘Tails You Win — The Science of Chance’, this film takes viewers on a new rollercoaster ride through philosophy, maths, science and technology — all of which, under the bonnet, run on logic.

Wielding the same wit and wisdom, animation and gleeful nerdery as its predecessors, this film journeys from Aristotle to Alice in Wonderland, sci-fi to supercomputers to tell the fascinating story of the quest for certainty and the fundamentals of sound reasoning itself.

Dave Cliff, professor of computer science and engineering at Bristol University, is no abstract theoretician. 15 years ago he combined logic and a bit of maths to write one of the first computer programs to outperform humans at trading stocks and shares. Giving away the software for free, he says, was not his most logical move…

With the help of 25 seven-year-olds, Professor Cliff creates, for the first time ever, a computer made entirely of children, running on nothing but logic. We also meet the world’s brainiest whizz-kids, competing at the International Olympiad of Informatics in Brisbane, Australia.

‘The Joy of Logic’ also hails logic’s all-time heroes: George Boole who moved logic beyond philosophy to mathematics; Bertrand Russell, who took 360+ pages but heroically proved that 1 + 1 = 2; Kurt Godel, who brought logic to its knees by demonstrating that some truths are unprovable; and Alan Turing, who, with what Cliff calls an ‘almost exquisite paradox’, was inspired by this huge setback to logic to conceive the computer.

Ultimately, the film asks, can humans really stay ahead? Could today’s generation of logical computing machines be smarter than us? What does that tell us about our own brains, and just how ‘logical’ we really are…?

(you might also like this In Our Time programme on the history of logic from 2010 or this BBC Science Café programme on logic I was a guest on in 2011)

Tagged ,

Computing is…

Computing is not about computers anymore. It is about living.

Being Digital (1995)
Nicholas Negroponte

Tagged , , ,

“Are you familiar with public-key cryptography…?”

Whitfield Diffie took the stand in Texas on Friday in the courtroom face-off between Newegg and “patent-licensing giant” (a.k.a. patent troll) TQP Development, who has sued hundreds of companies saying it has patented the common Web encryption scheme of combining SSL with RC4.

Enjoy this exchange:

Lawyer: “We’ve heard a good bit in this courtroom about public-key encryption, are you familiar with that?
Diffie: “Yes, I am.
Lawyer: “And how is it that you’re familiar with public-key encryption?
Diffie: “I invented it.

See the full Ars Technica article.

UPDATE: Newegg lost!?

Tagged , , , , ,

A set of top Computer Science Education blogs

Further to my most-read blog post (from May 2012: A set of top Computer Science blogs, 80,000 hits and counting), here’s a follow-up: blogs on computer science education.

As before, instead of a list, it more closely resembles a set: the order is irrelevant and there are no duplicate elements; membership of this set of blogs satisfies all of the following conditions:

  1. they focus on computer science education (research, policy and practice);
  2. they are of consistently high quality;
  3. I regularly read them.
  • Computing Education Blog by Mark Guzdial (@guzdial)

    Mark is a professor in the School of Interactive Computing at Georgia Institute of Technology and a researcher in computing education. His blog is about how people come to understanding computing, and how to facilitate that understanding, cross-cutting research, policy, practice and wider societal issues. And while it is US-focused (as you would expect), it is an excellent venue for the discussion of key topics in computer science education.

  • Teach Computing by Alan O’Donohoe (@teknoteacher)

    Alan is a busy chap: as well as being principal teacher of Computing at Our Lady’s High School in Preston, he’s the founder of both Hack To The Future and Raspberry Jam, the global community of events for everyone to discover the wonders of the Raspberry Pi. His blog tracks his five-year computing journey: from improving classroom practice (listen to his Teach Computing podcasts), contributing back to the community as a CAS Master Teacher, to shaping the development of a new curriculum subject in England.

  • Miss Philbin’s Teaching and Learning Journal by Carrie Anne Philbin (@MissPhilbin)

    Carrie Anne is an award-winning secondary teacher at Robert Clack School in Essex and a passionate advocate for women in technology. She is the creator of Geek Gurl Diaries, a YouTube web series for teenagers who want to be makers and creators of technology (which recently won a Talk Talk Digital Hero Award) and vice-chair of the CAS initiative #include to address diversity issues in computing. Her blog also covers the gamut of classroom practice, the transition from ICT to computing, supporting the wider community, to shaping policy in England.

  • Academic Computing by Neil Brown (@twistedsq)

    Neil is a research associate in the Programming Languages and Systems Group at the University of Kent, working on the BlueJ and Greenfoot projects. He writes thought-provoking pieces on topics spanning computing (and more broadly, STEM) education, programming and socio-technical issues. He also has a second blog on learning and applying mathematics through computing: The Sinepost.

  • An Open Mind by Miles Berry (@mberry)

    Miles is a principal lecturer and the subject leader for Computing Education at the University of Roehampton. He sits on the boards of both CAS and Naace, with wide experience of curriculum development in the UK. His blog, a personal perspective on education, technology and culture, covers a range of interesting pieces on computer science and programming pedagogy, CPD and agile practice.

  • Computer Science Teacher by Alfred Thompson (@alfredtwo)

    Alfred is a high school computer science teacher in New Hampshire, having previously been the K-12 Computer Science Academic Relations Manager for Microsoft and a software developer for 18 years. He currently sits on the board of the Computer Science Teachers Association. His blog covers a wide range of topics, including computer science and programming pedagogy, curriculum development and US education policy.

  • Knowing and Doing: reflections of an academic and computer scientist by Eugene Wallingford (@wallingf)

    Eugene is an associate professor and head of the Department of Computer Science at the University of Northern Iowa. He has been blogging since 2004 on topics across computing, software development, higher education, learning and teaching, as well as managing and leading.

  • Raspberry Pi Blog by the Raspberry Pi Foundation (@Raspberry_Pi)

    These guys need no introduction, especially after the two millionth Raspberry Pi was sold in October! With the huge success and penetration of the Raspberry Pi over the past two years, the platform now exists for the Foundation to fulfil its wider educational objectives. A diverse blog, ranging from technical posts, peripherals and resources, to superb examples of innovative uses of the Raspberry Pi.

  • CSTA Blog by the Computer Science Teachers Association (@csteachersa)

    The Computer Science Teachers Association is a membership organisation (free to join), supported by the ACM, that promotes and supports the teaching of computer science and other computing disciplines in the US, providing opportunities for K–12 teachers and students to better understand the computing disciplines and to more successfully prepare themselves to teach and learn. Its blog covers a wide range of topics across computer science education, programming, curriculum design and education policy,

  • CAS Online by Computing At School (@CompAtSch)

    Computing At School is a membership organisation (also free to join), supported by the BCS, that promotes and supports the teaching of computer science in UK schools. Formed in 2008, it now has over 7000 members from across schools, colleges, universities, industry and government and is the subject association for computer science. Along with numerous high-quality articles in the quarterly CAS newsletter, Switched On, CAS Online provides the UK computer science education community with a wide range of forums, events, policy discussions, consultations and a veritable wealth of resources to support learning and teaching.

This set is most definitely incomplete — please post your computer science education blog recommendations in the comments below. You can also read some of my posts on computer science education.

Tagged , , , , , , , , , , , , , , , , ,

Ten Simple Rules for Reproducible Computational Research

In a paper published last week in PLoS Computational Biology, Sandve, Nekrutenko, Taylor and Hovig highlight the issue of replication across the computational sciences. The dependence on software libraries, APIs and toolchains, coupled with massive amounts of data, interdisciplinary approaches and the increasing complexity of the questions being asked are complicating replication efforts.

To address this, they present ten simple rules for reproducibility of computational research:
 

Rule 1: For Every Result, Keep Track of How It Was Produced

Rule 2: Avoid Manual Data Manipulation Steps

Rule 3: Archive the Exact Versions of All External Programs Used

Rule 4: Version Control All Custom Scripts

Rule 5: Record All Intermediate Results, When Possible in Standardized Formats

Rule 6: For Analyses That Include Randomness, Note Underlying Random Seeds

Rule 7: Always Store Raw Data behind Plots

Rule 8: Generate Hierarchical Analysis Output, Allowing Layers of Increasing Detail to Be Inspected

Rule 9: Connect Textual Statements to Underlying Results

Rule 10: Provide Public Access to Scripts, Runs, and Results


The rationale underpinning these rules clearly resonates with the work of the Software Sustainability Institute: better science through superior software. Based at the universities of Edinburgh, Manchester, Oxford and Southampton, it is a national facility for cultivating world-class research through software (for example, Software Carpentry). An article that caught my eye in July was the Recomputation Manifesto: computational experiments should be recomputable for all time. In light of the wider open data and open science agenda, should we also be thinking about open software and open computation?

Tagged , , , , , , ,

Sleep sort

Everyone likes algorithms, especially novel sorting algorithms. So the basis for this “sleep sort” is simple: take the first element n of the array (of positive integers), fork a new process which sleeps n seconds then displays that number. Repeat for the next element.

#!/bin/bash
function f() {
    sleep "$1"
    echo "$1"
}
while [ -n "$1" ]
do
    f "$1" &
    shift
done
wait

Calculation of the average (and worst-case) complexity of this algorithm is left as an exercise to the reader; you might also enjoy bogosort and stooge sort (as well as some dancing).

Tagged , , ,
Follow

Get every new post delivered to your Inbox.

Join 343 other followers