Presentation on theme: "Copyright : Futuretext Ltd, London 12 techniques to radically accelerate the learning of Computer."— Presentation transcript:
Copyright : Futuretext Ltd, London 0 Ajit.jaokar@futuretext,com @AjitJaokar www.feynlabs.com 12 techniques to radically accelerate the learning of Computer Science in Schools
Copyright : Futuretext Ltd, London 1 Ajit Jaokar Mobile Data Scientist – forthcoming book -World Economic Forum - future of the Internet UK based - Hands on Publisher (futuretext) - Author (Mobile Web 2.0, Social Media Marketing, Open Mobile) - Chair: Oxford University's Next Gen Mobile Applications panel - PhD student UCL/UK - Consulting – Operators, Governments EU, Startups Recent and forthcoming talks include Mobile world congress (2007,2008,2009, 2011), CEBIT, Stanford University - MIT Sloan - Web 2.0 expo - Ajaxworld Supernova - CNN money - BBC - Oxford University European parliament Smart cities: Advisory board – World Smart Capital(Amsterdam), Connected Liverpool Global top 20 wireless blogger According to fierce wireless www.opengardensblog.futuretext.com Phd research on resilience of sensor networks in Advisory board World Smart Capital startup - @feynlabs
Copyright : Futuretext Ltd, London 2 What’s in it for you? We are all facing times of great change in short time frames The techniques we describe here can be used by you to rapidly learn CS techniques – including algorithms, programming etc Its an ongoing conversation – we open source and are a foundation. We will share even more (at CAS and beyond)
Copyright : Futuretext Ltd, London 3 Image source - http://gardenofeaden.blogspot.co.uk/2011/10/cheetah.html feynlabs is developing a set of unique techniques to accelerate the learning of computer science, programming and computational thinking among young people. Set up as a non profit foundation/ Open source initiative We are developing this based on live trials in schools We use devices like the Raspberry Pi which lead to learning more about computing
Copyright : Futuretext Ltd, London 4 Image source - http://gardenofeaden.blogspot.co.uk/2011/10/cheetah.html Address three unique challenges, which we believe are not being currently addressed 1)We are creating a set of techniques to accelerate the early stages of learning for computer science for young people. 2) We focus on computer science (and not programming alone). 3)We focus on Computational thinking i.e. the use of Computing to solve problems – often in other scientific and technical domains.
Copyright : Futuretext Ltd, London 5 Some people who like our work..
Copyright : Futuretext Ltd, London 11 From an education standpoint, here are seven goals we pursue when teaching programming within the context of Computer Science 1.To achieve a rapid rate of learning programming in early stages 2.To be inclusive -- especially in the introduction of women to computing 3.To achieve a smooth on-ramp for learning, e.g. maintaining interest for longer so as to reduce early drop-off 4.To encourage hacking, or modification of existing software (and hardware) to foster innovation 5.To understand the concept of "mastery" in a discipline, recognizing that even if mastery is not achieved, there is still value in learning programming 6.To co-relate programming with other math and science disciplines at an early stage, e.g. not teaching programming in isolation 7.To encourage systems thinking, the ability to see connections between the parts that interact to form a whole
Copyright : Futuretext Ltd, London 12 1)Co-Relating the Teaching of Programming Languages to Real-Life Examples in Other Scientific Domains 2) Preparing for the Next Wave of Computing 3) Clarify for Kids the Economic Value of Learning Programming 4) Delaying Coding 5) Discussing the Big Picture and Introducing Systems Thinking 6) Use Hacking and Debugging as a Fundamental Teaching Tool
Copyright : Futuretext Ltd, London 13 7) Start with One Programming Language But Don’t Limit Yourself to specific languages 8)Use Multimedia for Learning and for Content Creation 9) Separate the Exceptions from the Rules 10) Discuss learning about learning 11) Concepts of Programming Languages vs. a Specific programming language 12) Mini languages in the age of the Web?
Copyright : Futuretext Ltd, London 14 1.Co-Relate the Teaching of Programming Languages to Real- Life Examples in Other Scientific Domains Mathematician and technologist Conrad Wolfram - math as taught in schools looks very different from math as used in practice. In the real world, math is not necessarily done by mathematicians, but rather by other scientists like geologists, etc.
Copyright : Futuretext Ltd, London 15 Radioactive Fluorescent DNA Sequence Credit:Wikimedia CommonsWikimedia Commons The same ideas of pattern matching algorithms are used in DNA sequencing, since that process also requires us to find a specific pattern in a larger pool. This example of DNA sequencing, although complex for kids, is a good way to make the teaching of algorithms more real. Same also works for noise cancellation algorithms
Copyright : Futuretext Ltd, London 17 2. Prepare Kids for the Next Wave of Computing with an emphasis on Algorithms.. There is a fundamental shift in computing itself. Value will shift to a unique combination of open source hardware, open source software, proprietary software, algorithms and IPR. Making kids aware of these real-life changes in computing cycles helps them to think of becoming computing entrepreneurs. So, this makes algorithms very important..
Copyright : Futuretext Ltd, London 18 3. Clarify for Kids the Economic Value of Learning Programming We want kids to learn programming. But we all see that the best-paid jobs are in investment banking. Add to this the practices of offshoring and outsourcing, many employers' emphasis on very narrow technical skillsets, companies' lack of desire to invest in training, the choice of management as a preferred career path (as opposed to technology skills), ageism and discrimination against women in IT -- and suddenly the economic value of learning programming is less clear. It is thus even more important to outline the raison d'être for learning programming and to discuss the many counter-arguments that provide a reason why young people should learn programming. For instance, computing will be an integral part of everything from manufacturing (3D printing) and medicine (genomics) to the arts. Almost all interesting jobs will involve computing skills, and many will often be in technology start-ups involving some form of computing at their core. In other words, kids will be the digital cathedral-builders of the future.
Copyright : Futuretext Ltd, London 19 4. View programming in context of Computer Science Here, I am being a bit controversial. I believe that we place too much emphasis on coding at an early stage. This gives a false sense of achievement. For example, merely running simple programs is good, but it is only a first step which does not involve much thinking. Placing too much early emphasis on coding simple programs and environment setup also mixes the activities of thought and action. For example, the need to download software, compile code, perform initial setup and so forth breaks up the thinking process. Finally, these activities can often lead to an early drop-off in interest – for instance, if the setup is too complex or if the examples are too easy.
Copyright : Futuretext Ltd, London 20 5. Discuss the Big Picture and Introduce Systems Thinking In "Learning to Connect the Dots: Developing Children's Systems Literacy" 6, Linda Booth Sweeney emphasises the value of systems thinking, which is broadly the ability to see the connections between the parts that interact to form a whole. This ability makes a big difference to all learning but is not applied much in the learning of programming languages. http://www.stoimen.com/blog/wp-content/uploads/2012/06/1.-Search-over-Linked-Lists-and- Arrays.png
Copyright : Futuretext Ltd, London 21 6. Use Hacking as a Fundamental Teaching Tool We often start teaching new students about code by writing new programs. However, we don't emphasize modifying existing programs. Yet, in many real-life instances, we often spend large amounts of time modifying existing programs. The ability to make small, incremental changes to an existing program is a valuable tool to learn programming, especially because it provides a quicker payoff.
Copyright : Futuretext Ltd, London 22 w3schools Code for Shutdown Alert
Copyright : Futuretext Ltd, London 25 8. Use Multimedia for Learning and for Content Creation Most people would agree that multimedia plays a major part in education today. On almost any given topic, you can find some great video on the Web for free (on YouTube, for example). However, multimedia -- and especially video -- can be used as a content creation tool. We are using this approach in a trial where we create video with ScreenChomp 10. The advantage here is that in creating video, participants learn programming concepts and techniques in a much more dynamic way. This reduces drop-off rates.YouTube
Copyright : Futuretext Ltd, London 26 9. Separate the Exceptions from the Rules Programming is taught linearly, topic by topic. But it could be easier to teach in two passes or stages -- first the core idea and then the exceptions. This makes it easier to get the basic idea first and then build upon it subsequently. For example, explaining passing parameters by reference vs. by value 11 to a function can quickly get complex. Hence, it is easier to first explain parameters and functions and then come back to more complex topics like passing parameters by reference.
Copyright : Futuretext Ltd, London 27 10. Discuss Learning About Learning There are three phases of learning. 1)The aptitude/interest stage 2)The second stage is the apprenticeship stage, where the apprentice engages in extensive training under an expert. In Star Wars, the apprentice is the "padawan," and this three-stage process is enshrined in Jedi training.
Copyright : Futuretext Ltd, London 28 3)The third stage is the mastery stage, where the participant is able to see the complete picture and recognize interconnections between components such that she can extend her existing body of knowledge. For example, Charles Darwin embarked on a voyage to South America. In doing so, he collected so many specimens that a theory began to form in his mind where he was able to see connections between specimens which others could not see. This is the "mastery" stage.
Copyright : Futuretext Ltd, London 29 In teaching computing and programming, here are some observations: 1.Not everyone will want to master programming. Many will want to take their interest to the next level. This would be useful, considering that computing will be a central element to many jobs. 2.The ability to "hack" or change many physical objects in future will require the ability to understand some programming. In that sense, knowledge of programming will be useful even if mastery in programming is not attained. 3.The Internet allows us to accelerate the path towards mastery. Howard Rheingold, in his book NetSmart 12, sees the ability to engage with cyberculture as a core skill, much like driving a car for the current generation. This ability will be an asset to acquiring mastery.
Copyright : Futuretext Ltd, London 35 Inspirations – Ian Stewart books
Copyright : Futuretext Ltd, London 36 Inspirations – In theoretical physics, Feynman diagrams are pictorial representations of the mathematical expressions governing the behaviour ofsubatomic particles.
Copyright : Futuretext Ltd, London 37 Inspirations – Conrad Wolfram – we use mathematica as part of our methodology.
Copyright : Futuretext Ltd, London 38 Inspirations – Tim Ferris – http://lifehacker.com/5962945/use- tim-ferriss-four+step-process-to-master-new-skillshttp://lifehacker.com/5962945/use- tim-ferriss-four+step-process-to-master-new-skills DiSSS Deconstruct "What are the minimum learnable units, the LEGO blocks, I should be starting with? Selection "Which 20% of the blocks should I focus on for 80% or more of the outcome I want? Sequencing "In what order should I learn the blocks?" Stakes "How do I set up stakes to create real consequences and guarantee I follow the program?"
Copyright : Futuretext Ltd, London 39 Inspirations – linguist Pimsleur developed his system using four principles he regarded as important to forming memory associations and language recall Anticipation Graduated-interval recall Core vocabulary and Organic learning
Copyright : Futuretext Ltd, London 40 http://www.wikihow.com/Think-Like- Leonardo-Da-Vinci Connessione. Connessione is "a recognition of and appreciation for the interconnectedness of all things and phenomena". This, in other words, is systems thinking. One main source of Leonardo's creativity is his ability to form new patterns through connections and combinations of different elements.
Copyright : Futuretext Ltd, London 41 Ajit.jaokar@futuretext,com @AjitJaokar www.feynlabs.com Lets continue the conversation.. Please contact us if you want to be a part of early research