Archive for the ‘Computer science’ Category
In the context of recent (and ongoing) curriculum and qualifications reform for computing education in UK schools, I am hosting a one-day Higher Education Academy workshop in Cardiff in May entitled: Rethinking The First Year Computing Curriculum.
HEA STEM (Computing): Rethinking the First Year Computing Curriculum
24th May 2013, 10am-4pm
Department of Computing & Information Systems, Cardiff Metropolitan University, Western Avenue, Cardiff, CF5 2YB
There have been profound changes to computing education in UK schools over the past two years, with significantly more to follow; soon we will see applicants to higher education courses with 4+ years of rigorous computing education at school. How will this affect the first year university computing curriculum?
This workshop will offer a forum to discuss this and related themes:
- What are the potential issues with the new focus on computing in schools?
- What changes do we envisage to the content and level of the first year computing curriculum?
- How will the new GCSEs in Computer Science affect the pipeline of students coming through to university?
- How can we change the perception of A-Level Computing, especially in light of proposed A-Level reform?
- Getting kids coding: can we expect a better understanding or aptitude in programming?
- How can universities encourage and support the teaching of computer science in UK schools (e.g. CAS/BCS Network of Computer Science Teaching Excellence)?
- Are we doing enough outreach and public engagement activities for computer science, compared to other STEM disciplines?
|1.||↔||University of Cambridge||(1st)|
|2.||↑||Imperial College London||(3rd)|
|3.||↓||University of Oxford||(2nd)|
|4.||↑||University of Glasgow||(9th)|
|5.||↓||University of Bristol||(4th)|
|6.||↑||University of Exeter||(15th)|
|7.||↑||University of Birmingham||(16th)|
|8.||↓||University College London||(6th)|
|9.||↑||University of York||(10th)|
|10.||↓||University of Warwick||(8th)|
As always, the rankings for Wales institutions in Computer Science were of particular interest to me:
|76.||↓||University of Glamorgan||(63rd)|
|89.||↓||Cardiff Metropolitan University||(88th)|
N.B. no data was available for Swansea Metropolitan University or the University of Wales Trinity Saint David (who merged in 2012), or for the University of Wales, Newport (who recently merged with the University of Glamorgan to form the University of South Wales.
The Complete University Guide’s methodology for the subject league tables are based on four measures: Student Satisfaction, Research Assessment, Entry Standards and Graduate Prospects. To qualify for inclusion in a subject table, a university has to have data for at least two of the four measures; a blank in the Entry Standards and Graduate Prospects columns is not a zero score but rather denotes that no valid data were available.
What is a NANDputer? It’s obviously a computer built entirely out of NAND gates. NAND logic (along with NOR) is functionally complete, so it is possible to construct all other logic gates using just NAND gates. But why? Well, like any good hardware hack: to see if it could be done.
Taking Kevin Horton nearly two months to design and make, every part of the build apart from the peripheral board is based on NAND gates (hence why the point-to-point wiring is…crazy). The basic architecture of the computer is fairly conventional, with an accumulator, a full ALU, 8 bit registers, separate RAM/ROM areas (Harvard architecture), instruction skipping for decision making, bit set/clearing, a three-level stack and even an interrupt.
It takes 96 clock cycles to run a single instruction, giving just over 100kIPS (thousands of instructions per second) with the clock running at 10MHz. Not great (roughly 2-3x slower than a Commodore 64 at 250-300kIPS), but not bad considering the hardware engineering. For example, it’s faster than a TMS1000!
(N.B. If you’re still curious about how a NAND-based computer works, then try this online course.)
With the impending start of the 2014 university guide season, here’s an aggregation of the four main UK university guides in 2013 for Computer Science:
Last week was an exceptional week for computer science education in the UK: Google donating 15,000 Raspberry Pis to UK schoolchildren, Microsoft calling for computer science to be taught from primary school, the Department for Education including computer science in the EBacc as the “fourth science” and UCAS 2013 entry statistics showing the highest increase in total applications for Computer Sciences (up 12.3%). This follows on from the launch of the CAS Network of Computer Science Teaching Excellence in September, the publication in November of the draft ICT Programme of Study for England and the announcement in January of a review of the ICT curriculum in Wales, reporting back in June.
So it appears we’ve sold the rigorous academic discipline of computer science; but not to simply increase the supply of programmers for the IT industry or to get more people to study computer science at university — the rationale has always been based upon computer science being of wider educational value to everyone, in the same way as we value physics and mathematics. But after a discussion with Pete Yeomans (@ethinking) at the CAS fringe event at Bett 2013 last week, it appears that we are now facing a more subtle and refined challenge:
We need to do more than ‘sell’ computer science as a discipline…we need to sell what it feels like to be/think like a computer scientist.
— Dr Tom Crick (@DrTomCrick) January 31, 2013
This is the real marketing challenge: to truly change the wider perception of the discipline, we now have to sell what it really means to be a computer scientist, how to think like a computer scientist and the universal potential of this mindset.
And everyone needs to understand and value this.
Programming is the start not the end: let’s develop computational thinking and problem solving skills
(N.B. This is the original unedited version of an article published online today in The Telegraph)
I wholeheartedly support the high-profile initiatives to get more children programming, especially as part of the rethinking of the ICT curriculum in UK schools. The publication of the Royal Society’s report Shut down or restart? in January highlighted the unsatisfactory state of ICT education in the UK, recommending that every child should have the opportunity to study the rigorous academic discipline of computer science. With the disapplication of the existing ICT Programmes of Study and the development of a new programme of study as part of the National Curriculum Review in England, we are at an exciting crossroads, with a real opportunity to make computing and technology a key focus of our education system. But if there’s one lesson we should take away from the problems of the past 15 years it is that we must not focus on transient and superficial technology skills. Computer science is not programming (and vice versa) and we should be wary of teaching programming just for the sake of teaching programming, without thinking about why we want to get kids to program.
When Michael Bloomberg, Mayor of New York City, tweeted in January that he was going to learn how to program, there were strong opinions expressed implying that programming is not for everyone. This is untrue. One of the reasons that programming is increasingly perceived to be a 21st century literacy in our technology-dependent society is because it is ultimately empowering, developing the ability to manipulate and control your digital world. But the key message is that learning how to program is not the endpoint, but part of the journey of equipping children with the necessary digital skills to solve problems. Our high-level aim should be to develop technology-independent skills and techniques, such as data literacy and computational thinking.
Computational thinking is a way of solving problems, designing systems and understanding human behavior that draws on concepts fundamental to computer science. Computational thinking includes a range of mental tools that reflect the breadth of the field of computer science. Computational thinking means creating and making use of different levels of abstraction, to understand and solve problems more effectively; it means thinking algorithmically and with the ability to apply mathematical concepts to develop more efficient, fair, and secure solutions; it means understanding the consequences of scale, not only for reasons of efficiency but also for economic and social reasons. And this is why it is important to teach computer science in schools: we need to embed principles and theory to develop a deeper conceptual understanding of how technology works and how it can be leveraged to solve problems. There is a quote commonly misattributed to Edsger Dijkstra: “Computer science is no more about computers than astronomy is about telescopes.” — this is where computational thinking fits in, abstracting away the technology.
Hence, there is an important balance to strike between focusing on developing practical programming skills (i.e. being able to write code for a specific task) and embedding a deeper understanding of languages and constructs: principles of programming. We know technology changes quickly, so we need to make sure that when “Technology X” appears, we have transferable knowledge and a deeper conceptual understanding of how it works and how it can be used.
But there are significant challenges ahead in changing the status quo and enthusing and engaging children in schools. Programming is a creative endeavour and offers a tangible way for children to express themselves by hacking, making and sharing. We now have the hooks to use in schools e.g. Raspberry Pi, Arduino, .NET Gadgeteer, LEGO Mindstorms, etc, offering opportunities for embedding computing across the curriculum. But we also have to recognise the importance of developing this deeper conceptual understanding, the problem solving and analytical skills, as well as knowledge of the underpinning theoretical foundations of computing.
So let’s change the focus from just writing code to developing the crucial thinking skills and the ability to solve problems. To quote Jeannette M. Wing, Professor of Computer Science at Carnegie Mellon University: “Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing and arithmetic, we should add computational thinking to every child’s analytical ability.“
Yesterday saw the publication of the Sunday Times University Guide 2013 (£), one of the many university ranking guides in the UK (in fact, we are very much in university ranking season, with the news that UK universities are slipping down the world rankings).
As with the 2012 Guide (£), as well as the Guardian University Guide 2013 published in May and The Times Good University Guide 2013 published in June, there were some familiar institutions in the top 10 for Computer Science:
|1.||↔||University of Oxford||(1st)|
|2.||↔||University of Cambridge||(2nd)|
|3.||↑||Imperial College London||(4th)|
|4.||↑||University of Birmingham||(12th)|
|5.||↓||University of Bristol||(3rd)|
|6.||↔||University of Bath||(6th)|
|7.||↑||University of Sheffield||(14th)|
|8.||↓||University of York||(7th)|
|9.||↔||University of Warwick||(9th)|
|10.||↑||University of Glasgow||(15th)|
As always, the rankings for Computer Science in Wales were of particular interest:
|63.||↓||Cardiff Metropolitan University||(50th)|
|74.||↑||University of Glamorgan||(81st)|
|94.||↓||University of Wales, Newport||(40th)|
|104.||↓||University of Wales Trinity Saint David||(88th)|
(N.B. no data was available for Swansea Metropolitan University)
The Sunday Times’ methodology differs somewhat from the Guardian’s methodology (and even The Times‘!), especially with respect to research, but with less focus on academic services and student facilities.
However, this clearly highlights the quirks of having three newspapers publishing university league tables (as well as The Complete University Guide, the Times Higher Education World University Rankings and the QS World University Rankings) with widely different metrics and weightings. It begs the question: does all of this information help prospective students make more informed choices about where to study Computer Science in the UK?