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 18, 2015
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.
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.
Thursday, May 28, 2015
Does Call of Duty: Black Ops 3 predict the future?
A recent article in the Guardian by Keith Stuart titled "Does Call of Duty: Black Ops 3 predict the terrifying future of warfare?" is well worth a read. It doesn't matter if you're not a player of combat games, because this isn't about games but about how the future of warfare is looksingincreasingly like scenes from The Terminator. The article even points to a Japanese company called Cyberdyne, that has created a "Robot Suit HAL® for the benefits of humankind in the field of medicine, caregiving, welfare, labor, heavy works, entertainment and so on." However, the military are developing similar systems to support troops. You've been warned!
Monday, May 25, 2015
A "beautiful mind" has died
News is breaking that the Nobel prize winning mathematician John Nash and his wife were both killed in a taxi crash in New Jersey, USA. John Nash is famous for his "Nash Equilibrium" in Game Theory, which can be most easily be described by the game of paper, rock, scissors. If a player randomly plays each of the three options 1/3rd of the time they can guarantee they will never be beaten over a large enough number of games. As soon as a player deviates from the Nash Equilibrium, perhaps by slightly preferring to play scissors, then they can be exploited by an opponent preferring rock. Of course as soon as the opponent tries to play the exploit they themselves become exploitable. John Nash's life was famously documented in the movie "A Beautiful Mind," a clip of which is shown below.
Friday, May 22, 2015
Take a better selfie with Lily
Selfie sticks were the must have Xmas gift last year and now a team out of the UC Berkeley robotics lab, who built the first prototype using a Raspberry Pi and an Arduino, have developed the Lily camera drone. Watch the video below to see how it works but basically it flies itself and can take video or stills of its owner. It's on my Christmas list.
Subscribe to:
Posts (Atom)


