My colleague Andrea and I are very happy that Andrew, who started part-time in October, had his first paper accepted! It's an industrial case study about 'predicting' which parts of a software architecture will be problematic to implement and maintain. The work was his initiative. Being his first paper ...

# All articles

# Simon Butler's PhD

Helen, Yijun and I are delighted, but not surprised, that Simon passed his PhD, subject to the usual minor corrections, with flying colours! Examiners Steve Counsell (Brunel) and Paul Piwek (OU) praised his oral defence, the quality of the work, the list of publications, and the near-absence of typos.

Simon ...

# Problem Reduction

Another general computational thinking technique is to find an already solved problem to obtain the solution to a yet unsolved one.

To show that the unsolved problem is **reducible** to the solved one, I have to
show how to tranform the inputs of the unsolved problem into the inputs of ...

# Name Search

Name Search is the first example of problem specifications in M269. This note expands on and complements what is in the course materials, providing a fully worked example in a 'thinking aloud' style. The problem itself is trivial and often used in first-year programming courses. The emphasis here is on ...

# Big-O notation

Big-O notation is used in algorithmics to state, in a succinct way, an
**upper bound** of the number of steps or the amount of memory used by an
algorithm to solve a problem of a given size. For example, the statement

the worst case run-time complexity of algorithm *A* is ...

# First principles of instruction

My colleague Paul Piwek,
the leader of a team producing a new first-year module,
gave us at our last meeting two papers to read, one being Merrill's
*First Principles of Instruction*, from 2002. The author overviews several theories on instructional design and
distills five principles that promote learning and ...

# A recursive sorting algorithm

Having specified the sorting problem, how can I go about solving it? I could sit down and wait for inspiration (or an apple) to strike, or use a tried and tested problem solving approach, like solving the whole problem based on the solution for part of the problem.

## A step-wise ...

# Trinkets

I wrote an article about trinkets, an online introductory programming environment, for the latest issue of the newsletter of the UK's Computing at Schools organisation. Here's a slightly revised version, with more screenshots (click them to enlarge).

I came across trinkets when looking for a way to complement ...

# Bye bye, WordPress!

I've been wanting to ditch WordPress for quite some time. It's bloated software that needs constant updating, it attracts lots of comment spam, it's cumbersome to backup and restore, it has constant security problems. The database got corrupted once and if it weren't for the customer ...

# A sorting problem

The first stage of computational thinking (or any problem solving
activity) is to understand the given problem. One way to make sure we
are going to solve the right problem is to **specify** it, i.e. state it
as precisely as possible. Specifying the problem helps uncover
ambiguities or missing ...