Showing posts with label computational thinking. Show all posts
Showing posts with label computational thinking. Show all posts

Wednesday, 6 July 2016

Review of a Problems-First Approach to Programming

Review of a Problems-First Approach to First Year Undergraduate Programming - Springer



Gary J. Hill   


Published in Software Engineering Education Going Agile Part of the series Progress in IS pp 73-80






DOI 10.1007/978-3-319-29166-6_11


This paper, predominantly discusses the teaching of programming and problem solving to undergraduate first year computing students, using robots/robot simulators and visual programming to emulate the robot tasks. The needs to focus initial programming education on problem solving, prior to the teaching of programming syntax and software design methodology is also considered. The main vehicle for this approach is a robot/robot simulation programmed in Java, followed by the programming of a visual representation/simulation to develop programming skills.



References



  1. 1.
    Beaumont, C., and Fox, C.: Learning programming: Enhancing quality through problem-based learning. In: Proceeding of 4th Annual Conference of the subject centre for Information and Computer Sciences of the Higher Education Academy (pp. 90-95). Newtownabbey, Northern Ireland: Higher Education Academy (2003).
  2. 2.
    Hill G. J., Turner S.: Chapter 7:​ Problems First. In: Software Industry-Oriented Education Practices and Curriculum Development: Experiences and Lessons, M Hussey, X Xu & B Wu (Eds.), IGI Global, USA, pp 110-126, ISBN: 978-1-60960-797-5 (2011).
  3. 3.
    Hill, G., Turner, S. J.: Problems first, second and third. In: International Journal of Quality Assurance in Engineering and Technology Education (IJQAETE). 3(3), pp. 88-109. 2155-496X (2014).
  4. 4.
    Williams, A. B.: The qualitative impact of using Lego Mindstorms robot to teach computer engineering. In: Institute of Electrical and Electronic Engineering (IEEE) Transactions on Education, 46, 206 (2003).
  5. 5.
    Štuikys, V., Burbaitė, R., Damaševičius, R.: Teaching of Computer Science Topics Using Meta-Programming-Based GLOs and LEGO Robots. In: Informatics in Education - An International Journal (Vol12_1), pp125-142 (2013).
  6. 6.
    Kariyawasam, K., A., Turner, S., Hill, G.: Is it Visual? The importance of a Problem Solving Module within a Computing course. In: Computer Education, Volume 10, Issue 166, May 2012, pp. 5-7, ISSN: 1672-5913 (2012).
  7. 7.
    HEA-ICS Development Fund: HEA-ICS Development Fund [online] Available from: http://​www.​ics.​heacademy.​ac.​uk/​projects/​development-fund/​index.​php[Accessed: February 2015] (2015).
  8. 8.
    HEA-ICS/Microsoft Innovative Teaching Fund: Developing problem-solving teaching materials based upon Microsoft Robotics Studio [online] Available from: http://​www.​ics.​heacademy.​ac.​uk/​projects/​development-fund/​fund_​details.​php?​id =​ 88 [Accessed February 2015] (2015).
  9. 9.
    Adams, J. P., & Turner, S. J.: Problem Solving and Creativity for Undergraduate Engineers: process or product? In: International Conference on Innovation, Good Practice and Research in Engineering Education July 14-16, 2008, Loughborough, England, Higher Education Academy. 9781904804659 (2008).
  10. 10.
    Adams, J., Turner, S., Kaczmarczyk, S., Picton, P., & Demian, P.: Problem solving and creativity for undergraduate engineers: Findings of an action research project involving robots. In: International Conference on Engineering Education (ICEE 2008), Budapest, Hungary (2008).
  11. 11.
    Turner S., Hill G. J.: Robots in Problem-Solving and Programming. In: 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 (2007).
  12. 12.
    Gallopoulos, E., Houstis, E., Rice, J. R.: Computer as Thinker/Doer. In: Problem-Solving Environments for Computational Science, IEEE Computational Science and Engineering pp 11-23 (1994).
  13. 13.
    Houghton, W.: How can Learning and Teaching Theory assist Engineering Academics? [online] School of Engineering - University of Exeter. Available from: https://​www.​heacademy.​ac.​uk/​sites/​default/​files/​learning-teaching-theory.​pdf [Accessed: November 2015] (2004).
  14. 14.
    Bloom, B. S. (Ed.): Taxonomy of educational objectives. In: Handbook I: Cognitive domain. White Plains, NY: Longman (1956).
  15. 15.
    JICC5: Java & the Internet in the Computing Curriculum, Higher Education Academy (HEA) – Information and Computer Sciences (ICS) Conference, South Bank University, London, 22nd Jan, [online] Available from: http://​www.​ics.​heacademy.​ac.​uk/​events/​displayevent.​php?​id=​127[Accessed: February 2015] (2001).
  16. 16.
    Computing Curricula: IEEE CS, ACM Joint Task Force on Computing Curricula, IEEE Computer Society Press and ACM Press. [online] Available from http://​www.​acm.​org/​education/​curricula.​html [Accessed: February, 2015] (2001).
  17. 17.
    Koulouri, T., Lauria, S., Macredie, R., D.: Teaching introductory programming: A quantitative evaluation of different approaches. In: ACM Trans. Comput. Educ. 14, 4, Article 26 (December 2014), 28 pages, DOI: http://​dx.​doi.​org/​10.​1145/​2662412 (2014).
  18. 18.
    Turner S., Hill G. J.: The Inclusion of Robots Within The Teaching OF Problem Solving: Preliminary Results. In: 7th Annual Conference of the ICS HE Academy, Trinity College, Dublin, 29th - 31st August 2006, Proceedings pg 241-242 ISBN 0-9552005-3-9 (2006).
  19. 19.
    Turner S., Hill G. J.: Robots within the teaching of Problem-Solving. In: ITALICS, HEA-ICS, Volume 7 Issue 1, June 2008, pp. 108-119, ISSN: 1473-7507 (2008).
  20. 20.
    Turner S., Hill G. J.: Innovative Use of Robots and Graphical Programming in Software Education. In: Computer Education, Volume 9, May 2010, pp. 54-6, ISSN: 1672-5913 (2010).
  21. 21.
    Turner S, Hill G, Adams: Robots in problem solving in programming. In: 9th 1-day Teaching of Programming Workshop, University of Bath, 6th April 2009 (2009).
  22. 22.
    Gold. N.: Motivating Students in Software Engineering Group Projects: An Experience Report. In: Innovation in Teaching and Learning in Information and Computer Sciences 9(1), 10-19. DOI: 10.11120/ital.2010.09010010 (2010).
  23. 23.
    Greenfoot: Teach and Learn Java Programming. [online] Available from http://​www.​greenfoot.​org/​ [Accessed: February 1, 2015] (2015).
  24. 24.
    Microsoft: Microsoft robotics studio [online] Available from: http://​msdn2.​microsoft.​com/​en-us/​robotics/​aa731520.​aspx [Accessed: February 2015] (2006).
  25. 25.
    Chickering, A. W., Gamson. Z. F.: Seven Principles for Good Practice in Undergraduate Education. In: AAHE Bulletin 39:3-7. ED 282 491.6 pp. MF-01; PC-01 (1987).
  26. 26.
    Savin-Baden, M. & Wilkie, K.: (eds) Challenging Research in Problem-based Learning. Maidenhead: Open University Press/SRHE (2004).


To read more go to: Review of a Problems-First Approach to First Year Undergraduate Programming - Springer


'via Blog this'

Posting on the site does not imply endorsement in any way, by the blog owner or any organisations the blog owner is associated with.


If you'd like to find out more about Computing at the University of Northampton go to: www.computing.northampton.ac.uk. All views and opinions are the author's and do not necessarily reflected those of any organisation they are associated withAll views are those of the author and should not be seen as the views of any organisation the author is associated with.

Wednesday, 30 December 2015

playing with Sonic Pi

If you haven't played with it SonicPi (http://sonic-pi.net/) is well worth a go, it combines programming, computational thinking and  music (or trying to create music in my case). Raspbian on the Raspberry Pi has it as standard, but  is great that SonicPi is available on the Mac and PC as well. 






Here is an simple (if I am honest, because of a lack of musical ability) piece I have been play with. You can end up playing for hours trying out different sounds, synths, effects etc.

in_thread do
  loop do
    sample  :ambi_choir, rate: 0.1, attack: 4, release: 4
    sleep 10
  end
end
2. times do
  sample :bass_trance_c, amp: 0.75, release: 3
  sleep 2
  sample :bass_trance_c, rate: 0.5, amp: 0.5, release: 5
  sleep 4
  sample :bass_trance_c, rate: 0.3, amp: 0.25, release: 9
  sleep 10
end

Here is the sneaky bit, even in the code above there a mixture of threads, loops, sequences as well designing of the 'shape' of the sounds. 

There is also a community producing material/examples. For example at https://gist.github.com/rbnpi/7713ac59ed553d3f336e you can find code for the Star Wars theme. It is very hard to resist playing with the theme and adding drums, etc.

There are some great tutorials available on The MagPi magazine site https://www.raspberrypi.org/magpi/issues/

All views are those of the author and should not be seen as the views of any organisation the author is associated with.

Friday, 3 July 2015

Robots from junk and Computational Thinking

A recent presentation as part of the Department of Computing and Immersive Technologies, University of Northampton Research Seminar series, looking a on going project within the Department.

Junkbots has been a ongoing and ever evolving project since 2009 around the use of 'junk' as part of activities to developing skills in STEM subjects. In particular in the presentation (below) shows the links between these activities and Computational Thinking were discussed.







All views are those of the author and should not be seen as the views of any organisation the author is associated with.

Monday, 30 March 2015

Code Combat - fun way to learn Python

Site: http://codecombat.com/



This is another addictive website where to play you must code; in this case a combat game with varying levels. 


The right-hand side of the screen has a place to write some code. From the start the problems/levels are engaging activities such as  navigating a maze,  defending a village (as above), choosing different response to different enemies. It is difficult to not play with this for ages.






All views are those of the author and should not be seen as the views of any organisation the author is associated with.

Tuesday, 3 March 2015

Problem-solving publications

Examples of work on problem-solving as part of computational thinking.

    • Problems first second and third (Gary Hill, Scott J Turner), In International Journal of Quality Assurance in Engineering and Technology Education (IJQAETE), volume 3, pp. 88--109, 2014. [university repository]
    • Greenfoot in problem solving and artificial intelligence (Scott J Turner), In 10th China-Europe International Symposium on Software Engineering Education (CEISEE), 2014. [university repository]
    • Junkbots (Scott J Turner), In Higher Education Academy Science Technology Engineering and Mathematics (HEA STEM) Annual Learning and Teaching Conference 2013: Where Practice and Pedagogy Meet, 2013. [university repository]
    • Is it visual? The importance of a problem solving module within a computing course (K A Kariyawasam, Scott J Turner, Gary Hill), In Computer Education, volume 10, pp. 9--11, 2012. [university repository]
    • Problems first (Gary Hill, Scott J Turner), In Software Industry-Oriented Education Practices and Curriculum Development: Experiences and Lessons, Matthew Hussey, Bing Wu, Xu Xiaofei (eds.), IGI Global, Hershey Pa., pp. 110--126, 2011. [university repository]
    • Is it visual? Problem solving evaluation (K Kariyawasam, Scott J Turner), In Learning Global - Fourth Learning \& Teaching Conference, 2011. [university repository]
    • Innovative use of robots and graphical programming in software education (Scott J Turner, Gary Hill), In 6th China-Europe International Symposium on Software Industry Oriented Education (CEISIE2010), 2010. [university repository]
    • Robots in problem solving in programming (Scott J Turner, Gary Hill, Jonathan P Adams), In Higher Education Academy Subject Centre for Information and Computer Sciences 9th 1-day Teaching of Programming Workshop, 2009. [university repository] 
    • Problem solving and creativity for undergraduate computing and engineering students: the use of robots as a developmental tool (Jonathan P Adams, Scott J Turner), In Creating Contemporary Student Learning Environments, 2008.[university repository]
    • Robots and problem solving (Scott J Turner, Jonathan P Adams), In 9th Annual Conference of the Subject Centre for Information and Computer Sciences, Higher Education Academy Subject Centre for Information and Computer Sciences, Newtownabbey, pp. 16, 2008. [university repository]
    • Problem solving and creativity for undergraduate engineers: process or product? (Jonathan P Adams, Scott J Turner), InEE2008 - the International Conference on Innovation Good Practice and Research in Engineering Education Conference Proceedings, Higher Education Academy, Loughborough, 2008. [university repository]
    • Problem solving and creativity for undergraduate engineers: findings of an action research project involving robots(Jonathan P Adams, Scott J Turner, Stefan Kaczmarczyk, Philip Picton, P Demian), In International Conference on Engineering Education (ICEE 2008) - New Challenges in Engineering Education and Research in the 21st Century, International Network for Engineering Education \& Research (iNEER), 2008. [university repository]
    • Robotics within the teaching of problem-solving (Scott J Turner, Gary Hill), In ITALICS, volume 7, pp. 108--119, 2008.[university repository]
    • Developing problem-solving teaching materials based upon Microsoft Robotics Studio (Scott J Turner), In Innovative Teaching Development Fund Dissemination Day, 2007. [university repository]
    • Developing problem-solving teaching material based upon Microsoft Robotics Studio (Scott J Turner), In Proceedings of 8th Annual Conference of the Subject Centre for Information and Computer Sciences, Information and Computer Sciences (ICS) Subject Centre, Ulster, pp. 151, 2007. [university repository]
    • Innovative Teaching Development Fund project 2007 progress report. (Scott J Turner), In missing booktitle, 2007. [university repository]
    • Development Fund project 2006-2007 progress report. (Scott J Turner), In missing booktitle, 2007. [university repository]
    • Robots in problem-solving and programming (Scott J Turner, Gary Hill), In Proceedings of 8th Annual Conference of the Subject Centre for Information and Computer Sciences, Higher Education Academy Information and Computer Sciences Centre, Ulster, pp. 82--85, 2007. [university repository]
    • Improving problem solving and encouraging creativity in engineering undergraduates (Jonathan P Adams, Stefan Kaczmarczyk, Philip Picton, P Demian), In Proceedings of the International Conference on Engineering Education, Springer, New York, 2007. [university repository]
    • The inclusion of robots within the teaching of problem solving - preliminary results (Scott J Turner, Gary Hill), In 7th Annual Conference of the Subject Centre for Information and Computer Sciences, Hazel Steede (eds.), Higher Education Academy Subject Network for Information and Computer Sciences, Dublin, pp. 241--242, 2006. [university repository]


    All views are those of the author and should not be seen as the views of any organisation the author is associated with.

    Saturday, 31 January 2015

    Computational thinking is a life skill. Here's why... › Merton Park Code ClubMerton Park Code Club

    Taken from:Computational thinking is a life skill. Here's why... › Merton Park Code ClubMerton Park 

    Code Club:


    To read more on this go to http://mppcodeclub.primaryblogger.co.uk/new-curriculum/computational-thinking-is-a-life-skill-heres-why/ 



    "Running is a great way to keep fit – lots of fresh air and things to look at. And it’s free – you should try it. Try Park Run.

    But I hate running. I really do – it’s a difficult sport to take up in your fifties! However, I realised today that computational thinking skills are what has enabled me to get my running up to 15k/week. And maybe I hate it less. Maybe I’ll love it one day. I’ll let you know.

    Can you think of non-computing areas of your life where you have used computational thinking skills to improve on something, or to solve a problem? Please comment below – tell us which skills you have used, which problem you have overcome, and why you think these skills helped you. Here’s my experience:

    Decomposition – I break my run into chunks. There are difficult bits (uphills) and easy bits (downhills). I give myself permission to stop at various points if I’m tired. But I generally don’t. As I get through each chunk I give myself a pat on the back and carry on. Chunking it up gives me the motivation both to get started and to carry on til it’s finished.

    Logical reasoning – I predict what I need to wear (kit, hat, gloves – weather dependent) & I work out my route in advance to decide which music I will need and how long the run will take me.

    Resilience – sometimes the weather’s bad, or I’m tired. But I keep on going, knowing that the end result will be worth the cold, or the pain.

    Perseverance – I’m still doing it, aren’t I?! And I have built up my runs gradually from a much smaller distance

    Creativity – If I walk uphill, I change my music track to a marching sort of song, to ensure that I walk at a good pace. (My favourite – “Men of Harlech” ). If I’m really tired I swap to interval training.  I tinker with my schedule depending on my mood and level of ambition!

    Patterns – I group similar bits of the walk together eg flats, uphills, downhills, and change my rhythm, music & approach appropriate to each type of section.

    Evaluating & Debugging - Throughout my run I am evaluating my technique and relative fitness and changing things about my run accordingly, to help me improve."



    'via Blog this'

    Saturday, 24 January 2015

    Waste as a tool for computational thinking













    A modified version of the blog post in: 

    An article in the Northampton Herald and Post " How a university is using waste as tool to inspire students" by Lawrence John discusses the Junkbots project. 
    "FUNNY looking robots called junkbots could be the key to encouraging more children across the county to become engineers, computer programmers or scientists.
     
    One force which is driving this idea forward is the University of Northampton.
     
    For the past few years, staff from its science and technology department have been going out to primary and secondary schools to spread the word that science is fun.

    By working with schools, the university hopes to show pupils a different side to computing and hopefully raise their interest in what they can achieveLawrence John

    For the whole article click here.

    For more on the junkbots project work go to: http://junkbots.blogspot.co.uk/


    All views are those of the author and should not be seen as the views of any organisation the author is associated with.

    Tuesday, 20 January 2015

    TYNKER - a fun set of games.

    I have been playing with (and so has my son) the Tynker app (available at http://www.tynker.com/mobile/ ). It has a mixture of features, several games and activities to play with concepts of programming and computational thinking.

    It has a Scratch/Alice look, with graphical blocks. The coding puzzles gradually build up in complexity. 

    App also comes with a games creation option.


    All views are those of the author and should not be seen as the views of any organisation the author is associated with.

    Thursday, 8 January 2015

    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.




    All views are those of the author and should not be seen as the views of any organisation the author is associated with.

    Answers not on the Screen

      2.  The answers not on the screen Hill, G. ,  Turner, S. J.  and  Childs, K.  (2017)  Abstract:  Reflection from two areas on the issues...