At just 21 years old, Zhang Guangxuan is a competitive programmer who has represented Singapore in the International Olympiad in Informatics, attained 2nd Place as a Gold Medallist in the National Olympiad in Informatics (NOI), and guided many others down the same path as Singapore’s National Coach.
Get to know one of Coding Lab’s youngest but most accomplished educators.
Hi Guangxuan, how did you get started on coding?
My journey began in the primary school robotics lab, where I tinkered with drag-and-drop “programming”. I took on the job of lead programmer, creating combinations of basic operations to accomplish missions. The joy of discovering new functions and alternative methods of programming the robot helped us to clinch top prize in programming at the National Junior Robotics Competition. Little did I know that these experiences would form my passion for artificial intelligence.
Fast forward to high school, I kept pursuing my passion by attending programming electives. These courses expanded my arsenal of programming languages, which included Python, C++ and Java, forming the foundations of computation. Learning about Artificial Intelligence (AI) has taught me much about what I truly enjoy. I am fascinated by the endless potential of AI in problem-solving and I enjoy discovering novel ideas used in AI to model problems. I will continue discovering more about AI, for as long as my passion takes me, and I hope that I can contribute to AI in the future for the good of mankind!
“In my opinion, everyone who wants to code should at least try their hand at competitive coding.”
How did you start to teach coding?
In 2015, I joined my NOI teammate in teaching the December NOI training course. Initially, I was concerned by my teaching capabilities as I have never been a trainer. However, the trainer community was welcoming and I picked up teaching skills along the way. I learnt to explain concepts in an easily digestible way to newcomers, challenge assumptions and to teach from first principles.
Tell us about how a typical coding class would look like. If I walked into your classroom during a lesson, what would I see and hear?
Students discuss while solving problems on the interactive whiteboards located in each classroom. Students collaborate while solving problems, sometimes even helping each other debug.
In your opinion, what is the most important takeaway for kids from coding class?
Students learn Computational Thinking while solving problems. Computational Thinking can generalise and transfer the problem-solving process to a wide variety of situations, such as confidence in dealing with complexity, persistence in working with difficult problems, the potential to deal with open-ended problems, and the ability to communicate and work with others to achieve a common goal or solution.
“Build a strong foundation, and you shall be able to conquer the Olympiad.”
What are you up to these days?
In my free time, I enjoy keeping up with developments in technology. After exploring various computational fields such as web development and security, I realised that I enjoyed machine learning the most as it involves both the rigour of Mathematical theory and the creativity of practical application.
Just as AI must train to improve their performance, I must train myself to get better at AI. As such AI courses were not offered in high school, I have enrolled in structured online machine learning courses from Stanford University. The courses constantly challenge my thinking and helps me to gain new perspectives about coding and how to teach it to students. Currently, I’ve been learning about Machine Vision (the ability of a computer to see) by following the Stanford CS231n course.
“I will continue discovering more about AI, for as long as my passion takes me, and I hope that I can contribute to AI in the future for the good of mankind!”
How is competitive programming different?
Competitive programming is a mind sport. A lot of people are engrossed in competitive coding for the sheer thrill of it — the adrenaline rush and the satisfaction of getting your solution accepted. In my opinion, everyone who wants to code should at least try their hand at competitive coding. It has a very large and diverse online community including school and college students and even people working in big tech companies. The skills picked up can be applied directly to technical interviews for big tech companies!
What advice do you have for children/teenagers who want to participate in the NOI?
Build a strong foundation, and you shall be able to conquer the Olympiad. The course is difficult, and you will be challenged. Long-term commitment to the competitive programming sport will lead to great rewards.
Guangxuan is our educator with a passion for AI and teaching future leaders in technology.