Most people, if they think about the topic at all, probably imagine computer science involves the programming of computers. But what are computers? In most cases, these are just machines of one form or another. And what is programming? Well, it is the issuing of instructions (“commands” in the jargon of programming) for the machine to do something or other, or to achieve some state or other. Thus, we can view Computer Science as nothing more or less than the science of delegation.
When delegating a task to another person, we are likely to be more effective (as the delegator or commander) the more we know about the skills and capabilities and current commitments and attitudes of that person (the delegatee or commandee). So too with delegating to machines. Accordingly, a large part of theoretical computer science is concerned with exploring the properties of machines, or rather, the deductive properties of mathematical models of machines. Other parts of the discipline concern the properties of languages for commanding machines, including their meaning (their semantics) – this is programming language theory.
Because the vast majority of lines of program code nowadays are written by teams of programmers, not individuals, then much of computer science – part of the branch known as software engineering – is concerned with how to best organize and manage and evaluate the work of teams of people. Because most machines are controlled by humans and act in concert for or with or to humans, then another, related branch of this science of delegation deals with the study of human-machine interactions. In both these branches, computer science reveals itself to have a side which connects directly with the human and social sciences, something not true of the other sciences often grouped with Computer Science: pure mathematics, physics, or chemistry. With the rise of networked machines, we may find ourselves delegating tasks not simply to one machine, but to multiple machines, acting in concert or in parallel in some way. The branch of computer science known as distributed computing thus deals with delegation to, and co-ordination of, multiple machines. As a consequence of this, computer scientists think a lot about combinations of actions and concurrency, more than do researchers in any other discipline. This is exactly as we would expect for a science of delegation.
And from its modern beginnings 70 years ago, computer science has been concerned with trying to automate whatever can be automated – in other words, with delegating the task of delegating. This is the branch known as Artificial Intelligence. We have intelligent machines which can command other machines, and manage and control them in the same way that humans could. But not all bilateral relationships between machines are those of commander-and-subordinate. More often in distributed networks, machines are peers of one another, intelligent and autonomous (to varying degrees). Thus, commanding is useless – persuasion is what is needed for one intelligent machine to ensure that another machine does what the first desires, just as with human beings. And so, as one would expect in a science of delegation, computational argumentation arises as an important area of study.
Hackathons are emerging as one of the key ways students develop hands-on skills, develop exciting products, and work with tech companies. London is at the centre of the 21st century tech revolution, with London hackathons organised by companies such as Facebook; and KCL Tech‘s own internationally attended event, hackkings.
Buoyed by the success of this, first-year informatics student Fares Alaboud wanted to create a hackathon for his classmates. The premise was simple: take the essence of a hackathon experience (teamwork, hacking code, free pizza, prizes); make sure it’s accessible to first years by giving them some code to help them get started; then stand back and watch the magic happen. With the assistance of Mark Ormesher, Mustafa Al-Bassam, Alex Iurov and Sanyia Saidova, and the kind support of King’s Student Opportunity Fund, and King’s College London Teaching Fund, thus was born…
At the crack of noon, the hackathon began – the students, in teams of three, had eight hours to make an automated trading system based on trading shares of kickstarter projects, using a trading platform developed by Piotr Galar as part of Steffen Zschaler’s ‘Challenge2Code’ project. The system gives a novel slant on classical trading – their system has to use the same sort of intelligent algorithmic techniques to choose when to buy and sell shares, based on the market conditions. At the end of the day, the students’ systems competed against each other, with a range of prizes up for grabs:
- For the first-placed team, £30 each of Amazon vouchers
- For the second-placed team, £15 each of iTunes vouchers
- For the third-placed team, £10 each of Pizza Hut vouchers
Students were also entered into an hourly random draw to win a one-month premium Spotify subscription.
The day was a great success. Fares’s own words sum it up well: “It was everything I hoped it would be and more! They enjoyed the event and, most importantly, the atmosphere. They were really excited and active throughout the whole eight hours. They never gave up and always put a lot of effort into coding, knowing they didn’t have to win but at least to accomplish something. They understood that it was all about the learning experience, more than the one of winning. And that’s how they became winners.”
First place – The Exceptions
Second place – Scarpinici
Third place – Team Rocket
As we speak, first-year Informatics students at King’s College today are engaged in a Saturday programming tournament, aiming to successfully predict funding of Kickstarter projects. This hacking challenge is led by Dr Steffen Zschaler and Dr Andrew Coles, with the platform development being led by Piotr Galar. The day was organized by Fares Alaboud of the KCL Tech Society, with support from Mustafa Al-Bassam, Iurov Alex, Mark Ormesher and Sanyia Saidova. Photos here.
Thanks to the King’s College Teaching Fund for supporting the development of the tournament platform, and to the King’s Experience Fund and the School of Natural and Mathematical Sciences for supporting the prizes and the pizzas!
Last weekend, the KCL Tech Society and the KCL Business Club jointly organized the largest student-run Hackathon in Britain. The event ran 24 hours and attracted over 100 insomniac programmers from King’s College London and beyond. Well done to the team who organized this wonderful event and to all who participated in it!
The KCL Tech Society is running another in its very popular series of student-led learning sessions tonight, Teach Me X. This session will be led by James Bellamy and is on mobile app development using iOS. The session is at 6-7 pm tonight, Monday 19 February, in room K3.11 at the Strand campus of KCL. Details from the Facebook page.
The Department of Informatics at King’s College London is proud to support this event through the provision of free pizza – since whoever heard of anyone coding without access to pizza!
The first computer programmer was a woman – mathematician Ada Lovelace (1815-1852), daughter of Lord Byron and friend of computer pioneer, Charles Babbage. As a result of her efforts, the 16th October each year has been set aside to celebrate women in science. This year, Britain’s Royal Society and Wikipedia hosted an edit-a-thon, to increase the Wikipedia pages devoted to women scientists and mathematicians.