Wednesday, 29 December 2010

One of the best blogs of 2010

The blog Confessions of a mediocre programmer by Alan Norton is one of the most interesting blogs I read in 2010. Including a great definition of a Mediocre Programmer:



"Mediocre programmer - A programmer who has a limited toolset. He knows the syntax of only the simplest commands, but he knows where to find the syntax for more complex commands. He doesn’t know how to write the most efficient code, but he knows how to rewrite and test the code for greater efficiency if he must. He runs into more roadblocks along his passage to success, but he views each as a challenge and is confident that he will find a path around each roadblock. He may take longer to get there, but he always reaches his goal. He doesn’t know how to create a DLL, but he knows he can if necessary. Like most programmers, he doesn’t particularly like documenting his work but does so anyway because he is a professional." Alan Norton (2010)
A definition which in their heart of hearts a lot of successful people would see themselves in.
The basic point being from the perspective of this blog is good problem-solving skills are central to being successful. Getting the basics right - understanding the requirements, good analysis and design, project management and perseverance can get an average/mediocre programmer through.
I really enjoyed this blog posting and there is a lot there professional and students alike. The posting includes the following: " Yes, I am a mediocre programmer, primarily because I never needed to be a great programmer." Alan Norton (2010)


Sunday, 19 December 2010

More computing. more interaction

One of the criticism of the robot programming part of the Junkbots project is not everyone necessarily gets a go at the programming. To address this a new feature has been added to the project. There are now two parallel activities  as well as programming a robot; there is a separate programming exercise carried out at the same time which replicates some of the same actions of the robot but this time on screen.
Figure: Robot pushing a barrel

These exercises are based around the increasngily popular Greenfoot software (http://www.greenfoot.org/download/) which is free to download and use. This can be put on as many machines as are need enabling more people to have a go at programming.

The exercises initially gets participants to set-up the world, place a robot within it and get the robot to move across the screen. Building on the each previous exercise, the complexity increases and includes challenges (such as in the figure) where the robot pushes a piece of rubbish (in this case a barrel) off the screen.

Some of the material can be found at: http://www.computing.northampton.ac.uk/~scott/greenfoot_ex/sco1/default.htm


G3HF3RB39CJM 



Problem-Solving and Creativity in Engineering

Jonathan Adams, Phil Picton and Stefan Kaczmarczyk from the School of Science and Technology, University of Northampton in collaboration with Peter Demian from Loughborough University have recently published a paper in the Journal  Enhancing the Learner Experience in Higher Education entitled "Problem solving and creativity in Engineering: turning novices into professionals".


Abstract:

Recent UK and European benchmarks for both undergraduate and professional engineers highlight the importance of problem solving skills. They additionally identify creativity as an important capacity alongside problem solving for both novices and professionals. But, how can we develop and encourage these important skills in undergraduate engineers?

For many years researchers have explored how the differences between novices and experts might show educators techniques for improving the problem solving abilities of their students. Whilst it is often appreciated that knowledge and experience have a large influence on problem solving ability, it is not feasible to develop these fully in a three or four year degree course. There are, however, a number of other capacities relating to problem solving process skills that can be usefully developed, such as strategy, attitude and motivation.

A number of semi-structured interviews have been undertaken with engineering undergraduates at The University of Northampton, Loughborough University and Birmingham University in order to explore these issues. Analysis has been in the form of a phenomenographic study. The interviews extend their questioning and comparison beyond problem solving skills into creative thinking. This paper provides a brief summary of previous published research alongside interesting findings from the interviews. Early findings have been used to inform an action research project to develop a problem-based learning (PBL) module to improve creative problem solving skills in undergraduate engineers. Emerging themes that have been identified include: identification of problem solving processes in the case of professionals as opposed to simply identifying skills required in the case of students, confusion with the concept of ‘creativity’ in the context of engineering; issues with motivation and ownership with regard to academic problems and significance being placed on real life activities involving groupwork as an effective way of teaching and learning creative problem solving.



More details can be at this link including downloadable resusable learning objects. 

Two of the authors are part of STRiPe research group based on the School of Science and Technology, University of Northampton, UK.

Reference

Adams J, Picton P, Kaczmarczyk S, Demian P (2009) "Problem solving and creativity in Engineering: turning novices into professionals" Enhancing the Learner Experience in Higher Education pp. 4-8 Volume 1, Number 1,  ISSN 1234-1234

Saturday, 11 December 2010

Computational thinking is for everyone


Problem solving is not trivial (Beaumont and Fox, 2003).  In fact, if we think about Bloom’s Taxonomy’s (Bloom 1956) and the Cognitive Domain, problem-solving involves the high-level skills of synthesis, evaluation, analysis and applications, so perhaps it is not surprising that student’s often struggle in this area and with subjects based around problem-solving (such as programming). A much discussed and related area of Computational Thinking (Wing, 2006) has raised the profile of areas such as problem-solving, by highlighting the importance of “thinking like a computer scientist” (Wing 2006). The thought processes involved in being a computer scientist are more complicated than just being able to program, “Computational thinking is reformulating a seemingly difficult problem into one we know how to solve, perhaps by reduction, embedding, transformation, or simulation.” (Wing, 2006). The skills of computer scientists are applicable to a much wider range of areas or as Wing states:One can major in computer science and go on to a career in medicine, law, business, politics, any type of science or engineering, and even the arts.” (Wing, 2006).

Characteristics of Computational Thinking (Wing 2006):
“Conceptualizing, not programming. Computer science is not computer programming. Thinking like a computer scientist means more than being able to program a computer. It requires thinking at multiple levels of abstraction;
Fundamental, not rote skill. A fundamental skill is something every human being must know to function in modern society. Rote means a mechanical routine. Ironically, not until computer science solves the AI Grand Challenge of making computers think like humans will thinking be rote;
A way that humans, not computers, think. Computational thinking is a way humans solve problems; it is not trying to get humans to think like computers. Computers are dull and boring; humans are clever and imaginative. We humans make computers exciting. Equipped with computing devices, we use our cleverness to tackle problems we would not dare take on before the age of computing and build systems with functionality limited only by our imaginations;
Complements and combines mathematical and engineering thinking. Computer science inherently draws on mathematical thinking, given that, like all sciences, its formal foundations rest on mathematics. Computer science inherently draws on engineering thinking, given that we build systems that interact with the real world. The constraints of the underlying computing device force co puter scientists to think computationally, not just mathematically. Being free to build virtual worlds enables us to engineer systems beyond the physical world;
Ideas, not artifacts. It’s not just the software and hardware artifacts we produce that will be physically present everywhere and touch our lives all the time, it will be the computational concepts we use to approach and solve problems, manage our daily lives, and communicate and interact with other people; and
For everyone, everywhere. Computational thinking will be a reality when it is so integral to human endeavors it disappears as an explicit philosophy.”(Wing 2006)

Carnegie Mellon now has a Centre of Computational Thinking 


Beaumont, C., & Fox, C. (2003). Learning Programming: Enhancing Quality Through Problem-Based Learning (pp. 90-95) 4th Annual Conference of the ICS HE Academy Galway: ICS.
Bloom, B., S. (ed.) (1956). Taxonomy of Educational Objectives, the classification of educational goals – Handbook I: Cognitive Domain New York: McKay.




Monday, 6 December 2010

INTRODUCTORY PROBLEM SOLVING AND PROGRAMMING: ROBOTICS VERSUS TRADITIONAL APPROACHES

A recent paper by Oddie et al (2010) from the Liverpool Hope University, UK look at the use of robotics can facilitate the students’ understanding and application of problem solving and programming. It provides an interesting discussion on the use of robots for teaching programming and some of the issues around teaching problem-solving skills.


They looked at using the Flowcode Buggies and software from Matrix Multimedia   which are relatively inexpensive buggies and their graphical nature allows the students to focus more on the problem-solving side, before worrying about the grammar and syntax of a programming language (in their case C).


Oddie O, Hazelwood P , Blakeway S, Whitfield A (2010) "INTRODUCTORY PROBLEM SOLVING AND PROGRAMMING: ROBOTICS VERSUS TRADITIONAL APPROACHES" ITALICS Volume 9 Issue 2


Other sources that might be of interest:


Alice, (2010), Alice Project, http://www.alice.org.
Beaumont C, and Fox C, (2003), Learning Programming: Enhancing Quality through Problem-based Learning LTSN-ICS conference paper, August.
Gandy E G, (2010), The use of LEGO Mindstorms NXT Robots in the Teaching of Introductory Java Programming to Undergraduate Students, ITALICS Volume 9 Issue 1 February 2010.
Lawhead P B, Bland C G, Barnes D J, Duncan M E, Goldweber M, Hollingsworth R G, Schep M, (2003), A Road Map for Teaching Introductory Programming Using LEGO Mindstorms Robots, SIGCSE Bulletin, 35(2): pp 191-200.
Turner S, Hill G, (2007), Robots in Problem-Solving and Programming 8th Annual Conference of the Subject Centre for Information and Computer Sciences, University of Southampton, 28th – 30th August 2007, pp 82-85.
Turner S and Hill G(2008) "Robots within the Teaching of Problem-Solving" ITALICS vol. 7 No. 1 June 2008 pp 108-119 ISSN 1473-7507
Whitfield A K, Blakeway S, Herterich G E, Beaumont C. (2007), Programming, disciplines and methods adopted at Liverpool Hope University, Italics Vol 6, issue 4, 2007.


Monday, 29 November 2010

Robots and Graphical Programming in Software Education

Two members of the computing division  presented a paper "Innovative use of Robots and Graphical Programming in Software Education " at  6th China Europe International Symposium on Software Industry Oriented Education (CEISIE2010) Northwestern Polytechnical University, Xi'an China.

Abstract: Problem solving is an important skill for a computer scientist. Mindstorm based robots have been used previously, for teaching programming to computing and engineering students here we look at problem solving. These approaches focus upon the development of problem solving skills and not on learning a new programming language from the outset. Therefore, initially, any programming is kept simple with the minimum of commands, with „objects‟ unknowingly used, as these are later introduced/learnt during the programming stage of the computing module. This work suggests that using LEGO robots within the teaching of problem solving and the resulting java GUI emulation has some benefits for the students when learning to program. 


Further details can be found in the following article:









      Wednesday, 17 November 2010

      Junkbots




      The School of Science and Technology at the University of Northampton have been working with local schools to create robots made from junk. This is an initiative by the University to introduce environmental sustainability, engineering and computing to students and has been been funded by Northampton Enterprise Limited and east midlands development agency (emda).


      This project sets out to engage pupils with a set of activities over four three-hour sessions that provides an insight into STEM subjects. The workshops will be structured in the following way:

      (a)Session 1: Introduction to waste management, its impact, recycling and reuse. An introduction to the idea of making robots from rubbish.
      (b)Two sessions involving guided exercises.
      · Session 2: Involves some problem-solving exercises (approx. ½ hour), then in groups investigate adding ‘junk’ with a new electrical components such as batteries and motors to use vibrations to move the robots.
      · Session 3: To apply some of the ideas on problem solving and use of materials developed previously to build a little junk-clearing robot.
      · Lego based robots are provided with two light sensors;
      · a play area (containing borders and area for the junk to be placed);
      The facilitators will help with programming the robots and the instructions to be used.
      (c) The final session will involve the students, with the help of the facilitators, demonstrating and presenting their group’s solutions.
      a. Each group will present their work to the other groups in a way they feel is most appropriate- with facilitators help if needed.
      b. An hour 'tinkering time' before the presentation will be given to solve any last minute problems.
      The project aims to provide an opportunity for year 7 to 10 pupils to meet a range of people working or training in STEM subjects; the selection of the facilitators aims to have diverse mix of ethnicity to attempt to dispel stereotypes of scientists and engineers.

      Details can be found at the project site including some example exercises.

      For further details please contact: Scott.turner@northampton.ac.uk or +44 1604 893028

      Recent interest:

      Tuesday, 16 November 2010

      Problem Solving with Robots in Computing

      Scott Turner and Gary Hill from the Division of Computing of the University of Northampton UK,have been investigating teaching and developing problem solving skills as a first step developing programming skills through the use of LEGO-based robots and graphics based programming.


      Work on problem-solving has been on-going in the School of Science and Technology (was School of Applied Sciences) for the last four years looking at the concept of teaching and developing problem-solving first, then programming. The main vehicle for developing the problem-solving skills has been LEGO Mindstorms robotics kits and series of gradually more challenging robot-based tasks.






      Lawhead et al (2003) stated that robots “…provide entry level programming students with a physical model to visually demonstrate concepts” and “the most important benefit of using robots in teaching introductory courses is the focus provided on learning language independent, persistent truths about programming and programming techniques. Robots readily illustrate the idea of computation as interaction”. Synergies can be made with our work and those one on pre-object programming and simulation of robots for teaching programming as a visual approach to the teaching of the widely used programming language  Java.

      The main benefits that the students stated of this approach was they  believe robots provide a method to visually and physically see the outcome of a problem. The approach taken the module has been visually-orientated. The appropriateness of this seems to be borne out by the student comments. Student satisfaction  for a module based around this approach is over 92%. One of the comments made was that the linking of the problem-solving robot task and the programming assignment was liked. This feedback is similar to that reported by other authors when teaching programming using robots (Williams et al, 2003).  There is enough scope in this approach to have different levels of complexity/functionality within an assignment task offering a basic ‘pass’ level for a particular task, but also the scope for those students that desire more of a challenge.


      Reference
      Lawhead PB, Bland CG, Barnes DJ, Duncan ME, Goldweber M, Hollingsworth RG,
      Schep M (2003), A Road Map for Teaching Introductory Programming Using
      LEGO Mindstorms Robots SIGCSE Bulletin, 35(2): 191-201.
      Williams AB (2003) The Qualitative Impact of Using LEGO MINDSTORMS Robot
      to Teach Computer Engineering IEEE Trans. EducVol. 46 pp 206.


      Publications

      • Turner S and Hill G (2010) "Innovative use of Robots and Graphical Programming in Software Education" Computer Education Ser. 117 No. 9 pp 54-57 ISSN: 1672-5913
      • Turner S, Hill G, Adams J (2009) "Robots in problem solving in programming" 9th 1-day Teaching of Programming Workshop, University of Bath, 6th April 2009.  
      • Turner S and Hill G(2008) "Robots within the Teaching of Problem-Solving" ITALICS vol. 7 No. 1 June 2008 pp 108-119 ISSN 1473-7507 
      • Turner S and Adams J (2008) "Robots and Problem Solving" 9th Higher Education Academy-ICS Annual Conference, Liverpool Hope University, 26th August - 28th August 2008. pp. 14 ISBN 978-0-9559676-0-3. 
      • Adams, J. and Turner, S., (2008) Problem Solving and Creativity for Undergraduate Computing and Engineering students: the use of robots as a development tool Creating Contemporary Student Learning Environments 2008, Northampton, UK. 
      • Adams, J. and Turner, S., (2008) Problem Solving and Creativity for Undergraduate Engineers: process or product? International Conference on Innovation, Good Practice and Research in Engineering Education 2008, Loughborough, UK. 
      • Adams, J., Turner, S., Kaczmarczyk, S., Picton, P. and Demian, P.,(2008). Problem Solving and Creativity for Undergraduate Engineers: findings of an action research project involving robots International Conference on Engineering Education ICEE 2008, Budapest, Hungary. 
      • Turner S and Hill G(2007) Robots in Problem-Solving and Programming 8th Annual Conference of the Subject Centre for Information and Computer Sciences, University of Southampton, 28th - 30th August 2007, pp 82-85 ISBN 0-978-0-9552005-7-1 
      • Turner S (2007) Developing problem-solving teaching material based upon Microsoft Robotics Studio. 8th Annual Conference of the Subject Centre for Information and Computer Sciences, University of Southampton, 28th - 30th August 2007 pp 151 ISBN 0-978-0-9552005-7-1 
      • Turner S (2007) Developing problem-solving teaching materials based upon Microsoft Robotics Studio. Innovative Teaching Development Fund Dissemination Day 1st March 2007 Microsoft:London 
      • Turner S and Hill G (2006) The Inclusion Of Robots Within The Teaching Of Problemsolving: Preliminary Results Proceedings of 7th Annual Conference of the ICS HE Academy Trinity College, Dublin, 29th - 31st August 2006 Proceedings pg 241-242 ISBN 0-9552005-3-9