Our introduction events will take place in May/June 2025 and are for entry to our courses in September 2025. Each event is designed to allow students to experience our teaching style, which is based on current best practices in the UK and US. Our teachers will observe students’ English ability and current programming level during the test lesson. Active participation from students is encouraged! This event requires a parent to accompany the child.
Register Contact usTake a look at some of our student's work - you can even play the Unity games in your browser!
Student ProjectsProgramming 3D games with Unity.
The feeling when your Minecraft code works!
It's fun to present your work to the class!
Demoing Minecraft code to the class.
Receiving group feedback on Unity code.
Adventures in our robot classroom.
Programming particle systems in Unity.
Getting ready for the APCS exam with Python.
Programming activities outside in the park!
Student project presentation day
I started Peanuts Programming in 2017 to bring my love of programming and computer science to students in Taiwan, and to create an environment where I would be confident that my daughter can acquire the skills she will need for success in the future. I believe it is essential that we help prepare all children for a future where automation will have an enormous effect on the nature of jobs, by empowering them with computational thinking skills learnt through programming.
Please use the following links to discover more:
Why is learning to program important?
When you are ready, please contact us to book a private consultation or arrange to join a demo lesson.
I hope you will join us on this journey!
Dr. David White
PhD Computer Science, University of York, UK
Seeing your ideas come to life through programming is an incredibly rewarding experience - being able to program not only enables you to be more efficient at completing tasks, but it also allows you to solve problems that would previously have been impossible.
Arguably the most significant benefit behind learning to program is that it trains the development of computational thinking, which is a set of problem solving skills applied by programmers that have application in many other scientific and engineering fields.
Computational thinking is defined by the following five skills: algorithmic thinking, evaluation, decomposition, abstraction and generalization. A programmer employs these skills to arrive at solutions when planning and developing software. However, it is clear now that these skills are highly desirable across many non-programming fields and can help us in day to day life as well.
A classic example of an algorithm is how to multiply two numbers together. Once we know the sequence of steps and can reliably perform them, it is possible to multiply any two numbers together without having to learn from the beginning. Alternatively, consider giving directions to a friend, if your instructions are unclear or ambiguous then your friend may not be able to find you.
Since a computer blindly follows instructions, it is especially important that those instructions are clear and unambiguous, otherwise the program may exhibit unexpected behaviour - i.e. bugs!
There are often many ways to solve a problem and each comes with its advantages and disadvantages. Evaluation allows one to compare solutions and select the solution that represents the best overall compromise. For example, when booking flights there is often a tradeoff between convenience (departure/arrival times and airports), comfort (journey duration) and cost.
Similarly, there exist tradeoffs in the different ways to write a piece of software - one solution may be fast, but require lots of memory, while another solution may exhibit the opposite characteristics. Programmers then evaluate which solution is the best for a particular situation.
At first glance, a problem can often appear overwhelmingly complex. Decomposition allows one to split a problem into smaller, simpler parts which are easier to solve. Once these sub-problems are solved, they can be combined to solve the original problem. A day-to-day example would be the kitchen of a busy restaurant, where the preparation of a dish is split between multiple people.
In web applications, such as online banking, the client (your computer) communicates with the bank’s server. Decomposition is applied to split the work between two teams, one developing the client side software and the other the server side. The two parts are then combined into a solution through a well-defined interface which allows the two parts to communicate.
Abstraction is one of the main reasons software can be developed so rapidly today. In the past, programmers had to consider the low-level details of a computer, such as the physical hardware and operating system. Today, however, abstractions hide all those details thus allowing a programmer to concentrate purely on their software rather than worrying about the system that will execute it.
Imagine we had an existing solution for sending the messages “Hello” and “Goodbye” to a friend’s cell phone, but now we wish to add the message “Let’s meet up”. To accomplish this we can generalize from our two existing solutions to arrive at a solution where we can send a message with any text to our friend’s cell phone. We can now use this generalized solution to easily solve the original problem.
We know that automation is changing the type of jobs that will be available in the future, yet those requiring the skills of computational thinking will likely be very difficult to automate. Thus training students to acquire these skills can help to protect them against a future defined by automation.
Many countries are now integrating programming into their national curriculums, and the UK has gone further than most by making programming and computer science mandatory from the age of five. It is clear that the logic behind these decisions is not that all children are expected to have programming as a part of their future job, but it is that they wish to train computational thinking to protect a future workforce against automation.
Our teaching methods promote active engagement from students which leads to an exciting and dynamic atmosphere in the classroom. To achieve this result, all our teachers come from educational backgrounds where this style of learning is the norm.
Our carefully curated curriculum provides a continuous path from programming novice to expert, and employs proven teaching material from the UK and USA. Applied modules in our curriculum are always in motion as we adapt to the latest topics and trends in the industry.
We develop programming ability that is transferable to other programming languages, which is essential for both the evolving nature of programming languages and participation in our applied modules.
We deeply care about our learning environment and keep our class size small. This is to ensure that a teacher has enough time to help students work out solutions by themselves. It is only through independent problem solving that computational thinking can truly be learnt.
Students participate in creative programming activities to engage with the content. They learn to define their own problems and then apply computational thinking to solve them.
Through extensive final projects, students gain experience in the complete software development process, and give a presentation showcasing their work at the course conclusion.
By delivering programming teaching in English, we combine two of the most important skills for our children in a modern interconnected world.
Our curriculum defines a clear and well-structured series of modules that take students from novice to advanced programmers. Along the way students are exposed to computational thinking and build up proficiency through repeated application of those skills in solving self-defined problems.
Each stage of our curriculum comprises one or more core concept modules followed by multiple applied modules that reinforce and extend core skills. This structure is essential to developing good programming skills, as we believe that racing through different programming languages just to get to the next thing is not a productive way to learn programming.
In contrast our curriculum ensures:
Stable Programming Environment - Many advanced concepts can be acquired in languages that are often assumed simple, such as Scratch, and the existing student familiarity with the language speeds up acquisition of new concepts. Moreover, it allows students to tackle challenging problems that would otherwise be too complex to pursue when combined with the additional overhead of a new programming environment.
Apply Skills to Real-world Problems - Rather than practicing new skills and concepts in toy problems, both our core concept modules, and to a greater extent our applied modules allow students to use their skills in solving interesting real-world problems. These range from building and programming wireless networks of IoT devices to advanced image recognition using deep learning frameworks.
Age Appropriateness - Learning programming can be a challenge and students do not need additional impediments during the process. For example, while textual programming delivers a degree of flexibility not present in block-based interfaces, to learn efficiently students must have sufficient typing speed and the resilience to overcome syntax related errors.
In this core module young students learn the fundamentals of programming and computational thinking through fun activities using the state-of-the-art robots Dash and Dot.
Design your own computer game by importing Pixelart that you create in the real-world. Make your own game assets including levels and characters complete with custom animations!
Enhance the Dash and Dot robots with accessories and Lego to solve classroom problems. Make Dash into an artist that can sketch and a basketball player that can shoot hoops!
Create games and animations in this simplified version of Scratch designed for mobile devices. Build a maze game or tell your favourite story!
Learn how to control electronic circuits through the BBC Microbit programmable controller. Make wearable electronics and an intruder detection system!
In this core module students learn programming skills and train computational thinking through the design and implementation of creative projects such as stories, animations and games in Scratch.
Use deep learning to recognize patterns in text, images and sound. Make a smart assistant like Siri or a voice translator for an alien language!
Build and program embedded systems and develop an Internet of Things (IoT) using wireless networking. Chat with your friends using emoticons or create a temperature monitoring network.
Learn game modification and practice programming by modifying your Minecraft world. Program helpful AI "agents" that automatically build complex structures and mine resources for you!
In this core module students will expand their programming ability and computational thinking by learning to design and implement Android apps with MIT’s AppInventor. Projects will employ many of the sensors and features available in modern smartphones such as the camera, accelerometer and positioning systems.
Use deep learning to recognize patterns in text, images and sound. Make a smart assistant like Siri or a voice translator for an alien language!
Build and program embedded systems and develop an Internet of Things (IoT) using wireless networking. Chat with your friends using emoticons or create a temperature monitoring network.
Learn game modification and practice programming by modifying your Minecraft world. Program helpful AI "agents" that automatically build complex structures and mine resources for you!
In this core module students will expand their programming ability and computational thinking by learning Python, which is one of the world’s most popular programming languages. Due to its clean syntax Python is a great starting point for moving from block languages, such as Scratch, into the more powerful world of textual programming languages.
Students will learn how to design and build websites using the core technologies powering the world wide web, starting with HTML to structure content, then CSS to style the content and finally employing JavaScript to add behaviour to websites.
Students will learn how to design and build dynamic websites that are generated on demand by ever changing content stored in a database, such as an online shop or a blog. This dynamic behaviour will be realized through the Python-based web framework Django.
Unity is cool, and you want to learn it because:
At the end of this camp, you will have learned how to:
The most popular game for children can teach programming!
Microsoft's Makecode - a reliable and powerful programming interface for modifying minecraft
CSTA K-12 Computer Science Standards
Exciting, educational and fun activities in the camp:
Lesson format:
Please contact us to: