Jude Ethan Koh's Coding Projects

My name is Ethan, and I am 12 years old. I began learning robotics with LEGO Mindstorms and block-based coding when I was in Primary 4. I enjoy designing and building different structures and robots, especially those that help automate simple daily tasks. Learning robotics taught me how to solve real-world problems and sparked my curiosity to explore beyond block-based coding. That was when I became interested in Python, a text-based programming language. I wanted to create programs that could help me solve math problems without using pen and paper. I also learned how to use Pygame, where I developed various games for my friends to play and challenge one another. Throughout this journey, I have been documenting my experiences in robotics, coding, innovation, and STEM.

Portrait of Jude Ethan Koh

Project 1: Bumper Car

Bumper Car

I learned how to use LEGO Technic parts to design and build functional mechanical systems. By applying coding concepts such as conditionals (if-else) and integrating various sensors, I programmed my creations to respond dynamically to their environment. One example was a bumper car that automatically reverses when its front touch sensor detects a collision— mimicking real-world applications of obstacle detection in autonomous vehicles and robotic systems.

Project 1: Bumper Car
Project 2: Ultrasonic Activated Tractor
Project 2: Ultrasonic Activated Tractor

Ultrasonic Activated Tractor

I used LEGO Technic parts to build a tractor with an ultrasonic sensor. When the tractor detects a load placed on it, it automatically starts moving. This is similar to autonomous track-based vehicles used to transport goods in warehouses. Once the sensor detects an object, the vehicle moves to deliver the item to a designated location, helping increase efficiency and reduce the need for manual labor.

Project 3: Motor-Controlled Jack-in-the-Box

Motor-Controlled Jack In The Box

I wanted to create a fun toy to prank my siblings, so I designed a Jack-in-the-Box mechanism using LEGO Technic parts. It is controlled by a handheld motor that activates the opening and closing of the box. By spinning the motor in a programmed sequence, the Jack pops out—showing how mechanical movements and coding can create interactive and entertaining devices like automated toys.

Project 3: Motor-Controlled Jack-in-the-Box
Project 4: Touch-Activated Automated Rabbit Head
Project 4: Touch-Activated Automated Rabbit Head

Touch-Activated Automated Rabbit Head

My younger siblings enjoyed playing with a toy rabbit head that spun when wind hit it. To make it more interactive, I built an automated version that spins on its own when the program starts. When the ultrasonic sensor detects someone nearby, the spinning stops and the head returns to its original position. This project demonstrates how sensors can bring simple toys to life.

Project 5: Touch Activated Lazy Susan

Touch Activated Lazy Susan

Since I enjoy eating at Chinese restaurants, I decided to recreate a lazy Susan using LEGO Technic parts. It uses a touch sensor and an ultrasonic sensor to determine when and how to spin. This adds convenience and reflects how real-world systems use environmental input for automation.

Project 5: Touch Activated Lazy Susan
Project 6: Touch Activated Treadmill
Project 6: Touch Activated Treadmill

Touch Activated Treadmill

As someone who enjoys exercising, I recreated a treadmill using LEGO Technic parts. This miniature version works similarly to a real treadmill—its speed changes based on user input. Using a touch sensor and coding concepts like variables and if-else statements, the treadmill increases speed with each press, just like an actual gym machine.

Simple Division (simple_division.py)

Description:

This project shows how to calculate the remainder when one number is divided by another. It’s a great way to practice using arithmetic and the modulo operator (%).

Diagram:

simple_division.png

Trinket:

Even/Odd Checker (even_odd_checker.py)

Description:

In this project, I designed a program that checks if a number is even or odd using if-else statements. This project teaches me how to make decisions in code based on conditions.

Diagram:

Diagram for Even/Odd Checker

Trinket:

Prime Number Guesser Game (prime_number_game.py)

Description:

This game challenges you to decide if a number is prime by using if-else statements. It’s a fun way to reinforce the concept of prime numbers and divisibility in code.

Diagram:

prime_number_game.png

Trinket:

Factorial Calculation(factorial_calculator.py)

Description:

I organized a math competition among my friends, and one of the challenges involved calculating the factorial of a given number. I created a Python script that took a user input and calculated the factorial of the given number.

Diagram:

Diagram for Factorial Calculation

Trinket:

Count Vowels and Consonants in a String (count_vowels_consonants.py)

Description:

In this project, I used a for loop to count the number of vowels and consonants in a given string. The loop iterates through each character in the string, checking if it is a vowel or consonant, and updates the counts accordingly.

Diagram:

Diagram for Count Vowels and Consonants

Trinket:

Number Pyramid (number_pyramid.py)

Description:

In this project, I created a number pyramid using nested for loops. The outer loop controls the number of rows, while the inner loop prints the numbers in each row. This project demonstrates how to use loops to create patterns and shapes in Python.

Diagram:

Diagram for Number Pyramid

Trinket:

Word Matrix Diagonal (word_matrix.py)

Description:

In this project, I learned how to create a program that takes in a user input for a choice of word and prints the word diagonally in a square matrix using a nested for loop concept.

Diagram:

Diagram for Word Matrix

Trinket:

Pascal Triangle (pascal_triangle.py)

Description:

In this project, I created a program that uses nested loops concept to build a classic math triangle known where each number is the sum of the two numbers above it.

Diagram:

Diagram for Pascal Triangle

Trinket:

Sum of My Even Numbers (sum_of_my_even_numbers.py)

Description:

I have created a Python script named sum_of_my_even_numbers.py. It prompts me for a positive integer, and using a while loop, it calculates and displays the sum of all even numbers from 2 to the entered integer.

Diagram:

Diagram for sum of even numbers

Trinket:

Countdown Timer (my_countdown_timer.py)

Description:

In this project, I built a countdown timer that uses a while loop to count down from a starting number until it reaches 1. This is important because it shows me how to repeat an action until a condition is met.

Diagram:

Diagram for Countdown Timer

Trinket: