Categories
computer science my projects Work in IT

Production systems can’t be beta

Warning: this is just one of those ranting, whinging, blog posts you all developers like.

Yesterday I have been struggling almost half an hour with a python script. A very simple one: connect to a system, download an XML. This XML is a paginated list containing the number of the current page, the next one, and the last. The script should have simply got to the next page, read the “next” number, downloaded such page, and terminate when current == last.

Easy, right?

Except I spent half an hour trying to understand why the script was going into an infinite loop. I am an experienced programmer, but not a massively confident one: when things don’t work, I check my code. You can call it coding modesty if you prefer.

It turns out the problem was in the XML: whatever the page, it always contains “this = 1” and “next = 2”. This is supposed to be a production system, at its version 3, for which the institution I work for pays a huge amount of money.

This is quite a big bug on a basic function of what is supposed to be a production system. Which prompts me the obvious question: have they ever tested it?

Categories
computer science

Computer Science History in Secondary Education?

Sue Black’s wrote a great blog post about whether the history of computer science should be part of the GCSE Computing programme. This is a new programme offered initially by OCR as a pilot, and now as standard GCSE. It offers a qualification in three practical parts, lacking completely a more philosophical approach to Computer Science.

Although a mainly practical approach to computing might be justified at this level, a total absence of the wider issues of Computer Science is appalling. So Sue’s idea of adding the History of Computer Science to this qualification would improve not just the quality of the qualification itself, but also the understanding of the contribution of Computer Science to our society. Joining voices with Sue, I would like to highlight some simple points about why Computer Science history is important:

  • from a purely technical perspective, learning how things developed leads to better skills; we require nuclear physicists to study Newton’s laws, and astronomers to have a grasp of Kepler’s ideas. Knowing the history of punched cards and batch processing on mainframes will make today’s developers deal with their work more effectively.
  • Computer Science made a substantial contribution, most famously through the work of cryptoanalysts at Bletchley Park, to the Allies’ victory in World War II. Computer Science made the difference between a Europe dominated by dictatorships and a democratic one.
  • The history of businesses in Computer Science is one of visions and missions, one of intense fights over the improvement of efficiency, effectiveness and commitment to users; it’s a story of genius ideas and financial mistakes; it’s a story of alternative views of how to get to the market, of giants that created giants. In short, it’s a story that every aspiring entrepreneur should learn before even trying.
  • Studying the more philosophical aspects of Computer Science, the complexity and computability theories, the halting problem, the Goedel’s theorems, can give a student an amazing insight of how humans perceive reality and approach problems.
  • The history of people in Computer Science is a history of science, knowledge, research, passion; it’s also a telling story about civil liberties and bigotry. Ada Lovelace, a woman, is hailed as the first programmer of history; Alan Turing, a gay man who was persecuted (not a typo for prosecuted) for what he was, is credited with developing modern computer science and leading the effort to decrypt Nazi communications. Knowing this story is a way to learn the contribution of each and every person to the development of a great science.

Studying the history of Computing as a science is part of my background. The path going through Babbage, Lady Lovelace, Turing, Goedel, and Dijkstra was possibly the most mind opening of my life. I would really like to see new generations enjoy the same mind opening experience.