Friday, June 26, 2015

Do androids dream of electric sheep?

"Do androids dream of electric sheep?" is the title of a Sci-Fi book by Philip K. Dick upon which the cult movie Blade Runner is based. Well, Google recently investigated this question by setting up feedback loop in its image recognition neural network - which looks for patterns in pictures - thereby creating hallucinatory images of animals, buildings and landscapes. Watch the video below to see what an AI dreams of.

Thursday, June 18, 2015

Happy New Year

Confused? Well today is Matariki, the Māori New Year. Matariki is the Māori name for the constellation of stars that other cultures call the Pleiades or the Seven Sister. Today the constellation first rises above the horizon just before dawn. Of course it's also reasonably close to the winter solstice (in the Souther hemisphere) and so makes a natural way of marking the end of one year and the start of a new year. There are lots of information, resources online and events to celebrate the occasion. 

Thursday, June 11, 2015

The Untold Story of Women Who Code

Computer programming is typically seen as being an activity that is done by young men of a certain type. Most TV shows (e.g., Silicon Valley) and movies conform to this stereotype. However, it's far from the truth; Lady Ada Lovelace is often referred to as the "first computer programmer" and Grace Hopper famously wrote the first compiler and coined the term "computer bug." A YouTube video, shared with my by my colleague Mark Wilson, featuring Megan Smith, the former Google executive recently appointed by President Obama as the Chief Technology Officer of the United States, further debunks this myth.

Friday, June 5, 2015

Computer junk worth thousands!

This is a great story reported in the LA Times; a woman whose husband had recently died decided to clean out their garage. She found several boxes of computer junk, old circuit boards, keyboards, you know the sort of stuff. Doing the right thing she took it all to a local e-waste recycling centre in Silicon Valley. Some time later when the recyclers were sorting through the boxes though found an Apple I computer. They auctioned this very rare machine for $200,000 and are now trying to locate the woman to give her half the money. So if you have a father, grandfather or uncle with what looks like computer junk perhaps you should have a careful sort through it, you never know what you may find.

Wednesday, June 3, 2015

Software Engineering vs Computer Science

At The University of Auckland, you can get a Bachelor of Science (BSc), with a major in Computer Science (COMPSCI), and a Bachelor of Engineering (BE), with a specialisation in Software Engineering (SOFTENG). Naturally a common question we get is, what's the difference?

There are many opinions and explanations as to what is the difference between Computer Science and Software Engineering, including "there is no difference" and "one is a subset of the other". My answer has been developed over years of being asked this question at University Open days, Career symposiums, Industry events, and such like.

My answer has two parts — one philosophical and the other practical. The philosophical part is that the difference is one of theory versus practice. The goal of Computer Science research is to to develop a theory of "computation", to understand what computation means, what its limits are, and how it might be applied. Software Engineering is about building effective software systems efficiently.

Clearly there are close connections between the two. Software is the embodiment of computation. It is how most people experience computation, even if they don't think of it that way (any more than they would think of turning on an electric light as physics). While some aspects of computation do not require any software, or even a physical computer (e.g. a Turing machine), much of our understanding of computation is demonstrated through developing software.

But there are aspects of Computer Science that are at best a curiosity to those building software systems (Turing machines again) and there are topics that are clearly important to software engineering that have little to do with any theory of computation (requirements elicitation, for example).

The practical part of my answer is that the B.Sc (COMPSCI) is a 3-year general degree whereas the BE (SOFTENG) is a 4-year professional degree. The B.Sc. has relatively few restrictions as to what courses students must take (mostly science, and mostly in the Major), whereas the BE is very prescribed, with only a little opportunity for choice. Both the BSc and the BE meet the requirements of a university degree, as dictated by the Tertiary Education Commission (TEC), but in addition the BE is an internationally accredited engineering qualification.

So, if you want a professional qualification, you probably should consider the BE. If you would prefer a reasonable amount of flexibility and choice, the B.Sc would probably be the better option. If you are interested in different aspects of computation, then major in Computer Science. If you really want to be able to build significant software systems, then specialise in Software Engineering.