Meet Dylan, 11, who is already programming in Python. An avid learner, he has already written solutions to problems that students typically encounter at the Pre-U level. Our team speaks with him to find out what motivates him:
Coding Lab: Hi Dylan! Tell us about yourself. How did you get started with Coding?
Dylan: My mum noticed my interest in solving maths problems and suggested that I learn coding as it is similar in nature as it uses logic to solve problems. She also bought some books for me to read for a start, to see if I have interest to learn coding.
Dylan’s parents: As parents, we always want the best for our children. Programming/coding seems to be an area of growth & career opportunity for the future; hence we want Dylan to be well-equipped with the right skill set to succeed in his life/career. Of course, he needs to have an interest in order to be able to do well. Fortunately, his interest in Math since young has helped him pick up coding quickly, and he liked it from the onset.
Coding Lab: How is your experience learning Coding so far?
Dylan: I enjoy Coding Lab lessons a lot. The small class size allows me to ask questions freely and interact with the teacher. This is especially useful because I am able to tackle the mental obstacles quickly when I am coding.
Coding Lab: What do you like most about coding?
Dylan: I find coding very systematic in approach and very challenging to the mind. In a way, it is similar to solving math problems. I find that it does in some ways help me in solving math problems at school.
Dylan’s Parents: It could be too early to tell if coding helps in his daily life, but it definitely helps train his mind to be more systematic in thinking. This mental training does help him in solving difficult Maths problems.
The process of building the code is fun because it makes me think & approach the problem systemically & to apply logic to the process.
Coding Lab: Tell us about a favourite program you have written.
Dylan: I wrote a “Coins-sum” program. When I input a figure into the program, it will generate the number of ways that the figure can be divided by, based on our Singapore dollar denomination. I like it because it is useful. Creating the program requires me to put an if-loop within a while-loop. The process of building the code is fun because it makes me think & approach the problem systemically & to apply logic to the process.
Coding Lab: Do you think that learning to Code has helped you at school?
Dylan: My favourite subject at school is Maths. I find that Coding helps train the mind to be logical & systematic, both traits are useful in the application of Maths.
Coding Lab: What else do you do in your spare time (apart from coding!)?
Dylan: My hobbies are playing computer games & reading books on history & war. I also like to play Badminton & Carom.
Dylan’s Parents: Dylan likes to play computer games. But besides just playing the games as a mental outlet from academic work, we noticed that he is also starting to think how to improve the computer game, and thinking maybe he can learn more about coding to someday be able to do it himself. Dylan also likes music a lot. Besides playing the piano, he has recently started composing his own music with the “garageband” app.
Dylan, 11, is currently studying at River Valley Primary School. He started off with our Python 1 (S101) course in late 2018 and has completed Python 2 S111.
Surya Nayar, 14, is no ordinary student. At his young age, he can count Python and C++ programming skills under his belt. This savvy student wrote his own stock rating algorithm after attending a Masterclass on Data Analytics with us. Here, he shares with us his journey in programming:
Q: What gave you the idea for this program?
I got the idea a few years back when a friend of my parents was showing me the software he used to trade stocks. That got me thinking about whether the software could eventually replace human traders and deliver profits. So I started researching algorithmic trading (the process whereby the computer executes trades on its own) and familiarizing myself with stock markets in general. I also read up about Fintech (financial technology) to explore was already commercially available.
In December 2018, I signed up for the Data Analytics workshop at Coding Lab, knowing its relevance in the real world. At the workshop, I saw how sentiment analysis of tweets and newspaper headlines could give me a good overview of what people, or the market, felt about a particular company’s stock prices, thus giving me a new idea about how to go about the program, albeit at a rudimentary level.
I signed up for the Data Analytics workshop at Coding Lab, knowing its relevance in the real world.
Q: What were some considerations you had to factor in when making this program?
Firstly, and perhaps most importantly, was my experience (or rather, lack of it). I had used Python in the past to develop programs, but I had never developed anything in this vein. This really affected what I was able to do with my code – I could not, for example, execute real transactions or forecast whether the stock price is going to go up or down. All I could do was analyze the sentiment about a company’s stocks at one point of time and try to advise the program’s user accordingly – but even this was not perfected. Knowing that I was inexperienced made me avoid making things too complicated, and also allowed me to be realistic with myself regarding my program’s abilities.
Another consideration was the time frame. The workshop only lasted for five days, and I had to complete the program within that time frame. This was quite a tight timeframe, so I practiced during and outside of the workshop, manipulating characters in the code we were given to see what effect it would have on the overall program, and writing more code to complete the program. With the time limit hovering over me, I really couldn’t do much else, or else I would risk having an incomplete program. This time constraint put things into perspective in terms of what I could and could not do.
Q: What were some challenges you faced when developing the program?
I didn’t face many challenges when developing the program, except for some parts of the debugging process. Debugging is the process of locating errors in and rectifying your code after the program fails to execute what it is supposed to. When I was writing my own code, I frequently encountered errors with the for loops I was using, but after debugging, these were minor imperfections which I got rid of efficiently – so I wasn’t too frustrated.
As a coder, I submit to debugging as a compulsory ritual one must perform, in order for the code to be truly perfect.
Q: How did your Coding Lab mentors guide you for this project?
For this project, my mentor was Ms. Mona Tan. She helped in almost every way possible. She taught me how to use sentiment analysis on tweets and news articles, which was indispensable for my project. A lot of the code that I ended up using in my program was partially borrowed from what she wrote, including the names of the variables. She was always ready and willing to help whenever I faced a problem, such as debugging long-winded or inefficient code, my occasionally-shaky understanding of the material covered in the workshop – I deeply appreciate her constant support. Lastly, since I was unable to get approval as a Twitter developer in time for the workshop, I ended up using her authorization keys in order to access developer features in Twitter – a pre-requisite for the project, without which I wouldn’t be here answering these questions.
My vision is to be as complete as possible, with a graphical user interface (GUI) and full forecasting. I also want to draw on real-life market data and use machine learning to predict stock price behavior.
Q: Are you working on any other projects/programs in the meantime?
For a start, I’m working to evolve the project that I developed in the workshop – My vision is to be as complete as possible, with a graphical user interface (GUI) and full forecasting. I also want to draw on real-life market data and use machine learning to predict stock price behavior. Additionally, I want to implement a feature where the program could scrape the web and build a database of events which may cause stock prices to rise or fall – for example, when Apple announces a new iPhone in September, the program should know that stock prices are likely to rise and use that information to better advise users.
For general programming, – to be honest – I haven’t done as much as I had hoped to this year. I got into competitive programming relatively recently and I go for classes at Coding Lab for the National Olympiad in Informatics (NOI). During the classes, I solve as many problems as I can, but as the problems get harder, it takes a longer time for me to solve them, so I end up doing much less than I intended to. Outside of class, I don’t code much, but I plan to finish reading my book on data structures and algorithms, during my upcoming holiday in India. I have created accounts on multiple competitive programming websites such as TopCoder, CodeForces, CodeChef and dunjudge.me. In 2019, I am really hoping to up my programming game.
Q: What advice would you give to young coders who are new to coding?
#1: Start off simple and aim small. You don’t have to know how to make an entire game, full of spaceships and complex 3D objects right at the start. My first ever program was in Scratch, and it was quite simply a game where you pressed the right arrow multiple times to move a car up a mountain – That was it! A lot of young coders are ambitious, which is good, but it also means that they tend to set unrealistic expectations of themselves and what they can achieve. If you start off simple and work step by step, you’re much less likely to be disheartened earlier on. This doesn’t, however, mean that you shouldn’t challenge yourself – just don’t bite off more than you can chew. One of the biggest shocks for me as a beginning ‘coder’ was in 2017, when I was unable to code a simple program that identified prime numbers and non-prime numbers despite me having ‘coded’ for the last few years. Later on, I realized it was because I was aiming so high initially, that I never got around to solving simpler, more real problems.
There is no such thing as perfection in coding – your code can always be made cleaner, more efficient, or just better – but as you code more and more, you’ll eventually realize how the same problem can be solved in an even better manner, and you can get as near to perfection as possible.
#2: Practice as much as you can. Coding is built on practice and repetition. It’s a muscle, and like all other muscles, it must be trained for it to grow. Nobody can become Mark Zuckerberg without coding dozens of horrible websites first and then eventually coding Facebook. It doesn’t matter if you’re wrong, but you should correct yourself quickly and make a note to yourself not to repeat the same mistakes. There is no such thing as perfection in coding – your code can always be made cleaner, more efficient, or just better – but as you code more and more, you’ll eventually realize how the same problem can be solved in an even better manner, and you can get as near to perfection as possible. As an example: When one learns sorting, one usually starts with the easy-to-understand bubble sort (which, however, is a rather slow and inefficient algorithm that sorts numbers) – as your understanding evolves, you understand more complex and efficient sorting algorithms, such as merge sort.
Surya, 14, is a student at Raffles Institution. He started off with our basic Python (S101) course in 2017 and has since progressed to S121 and C++ programming.
Coding Lab was privileged to be a part the Parents’ Learning Festival 2018. Our founder, Mr Foo Yong Ning was an invited panelist where he addressed issues on S.T.E.A.M. Learning in this digital Age.
Key issues debated included the way learning has changed in the 21st Century (where students are now taught to think and apply what they have learned, rather than rote memorisation of notes), as well as the implications of this in countries all over the world, comparing the technology adoption rate of Singapore with other countries such as China and India (Eg. Cashless Payment and mobile apps).
Our co-founder, Candice also gave a talk on Coding: The Language of the Future, where she shared more on how coding is not a separate subject, but rather, a language or a skill that can be applied to all disciplines, including Math and Science.
Whilst the parents were busy with their talks, students also had lots fun with their first foray into coding at our class conducted during the festival.
Innovfest unbound: The anchor event of Smart Nation Innovations; a week-long series of events that showcase Asia’s most innovative developments. It is a platform for entrepreneurs, brands, corporates, investors and tech start-ups from all around the world to meet and share ideas, build partnerships and celebrate digital disruption.
Our intern had the opportunity to gain first-class insights into innovfest unbound, and here she lists 5 things that you absolutely have to know if you missed the highlight event:
Number 1: Tencent may take over the world (literally)
We all know what WeChat is but fewer of us know that WeChat’s parent company is actually Tencent. WeChat is but Tencent’s latest success. Steven Chang, the CVP of Tencent introduced the concept of building an ecosystem that targets at what a consumer does daily in order to meet their needs. This requires intensive studying of the consumer. This is also how WeChat, which started off as just a social media platform, is now an app that people cannot live without in China. Steven also revealed the next big thing for Tencent is ABC. A for AI, B for Big Data and C for Cloud. They have already started their initiatives such as the building of smart cities, revamping retail to be smarter and AI in the medical field. Learn the fundamentals of Artificial Intelligence right here and now!
Number 2: It’s all about the Consumer, the Customers, and the Market
The common theme that keeps coming up in the talks by successful businesses is their focal point on their consumers or customers. LINE music talked about understanding of the Japanese consumers to discover what they like and implement that function. Netflix talked about the importance of listening to the market in order to adapt to changes. Consumer power is rapidly growing in our digital era and they hold great importance to how businesses dictate their direction today. It is about crafting that experience for customers in order to grow and sustain the business.
Number 3: Optimization. Automation. Machine Learning. What now?
The venture capitalist judges of the Unilever Pitch Challenge pose a critical question for the pitcher and the floor. “Yes, you have optimized and automated this process. So what differentiates you from the rest of the pitchers who have said similar things?” In a few years’ time, I reckon that automation and optimisation are going to be the next must-haves for businesses and that they will no longer be unique selling points. So how do businesses differentiate themselves from their competitors and be different? This brings us to our next point:
Number 4: Brand Storytelling
Coca Cola, Intel and Circles.Life shared about the essential point of storytelling and that is what brands are built upon. Every brand has its own story and building it requires 3 ‘C’s: Context, Content, and Creativity. It is to showcase your point-of-view but more importantly, for consumers to interact and resonate with. This intangible aspect may be hard to quantify in a business. However, decisions are made with emotions, no matter how much logic we put into them. Hence, businesses need to create timely and creative content to deliver to their customers.
Number 5: Don’t be a Doctor, Be a Computer Scientist
The world has grown to become one that cannot function without technology. Lai Chang Wen, founder of Ninja Van joked about future careers for Asian parents to nag their children about; instead of being a doctor, be a computer scientist instead. This shows the equivalence in prestige and demand that a computer scientist has with a doctor, in the Asian context. Kickstart your journey to be a Computer Scientist with the versatile Python language.
Final Takeaway: We need to rise up as a generation that utilises technology to aid our daily lives and solve world problems. The importance of programming and coding is irrefutable. We must aim to be at the forefront of this technological era.
• NEW! Coding with Pororo! (Ages 4-8)
– – – – – – – – – – – – – – – – – – – – – – – – – – – –
Founded by an MIT Alumnus who worked in Silicon Valley, our MIT-inspired curriculum challenges your child to develop computational thinking and problem-solving skills, with a strong emphasis on inquiry-based learning and the application of key mathematical concepts.
We are honoured to have been voted the Best Coding Curriculum (16/17) by Parents, as awarded by Parents World Magazine, Singapore.
Coding Lab offers programming classes for ages 4-16 in Japan, Perth and Singapore.