PERSONAL CODING PROJECTS
As I've gained coding experience, I have been able to explore the real-world
applications of computer science through various projects I've designed.
Read more about each project below!
A Stochastic Monte Carlo Simulation to Minimize Vehicular Delay by Optimizing Traffic Lights
After hearing my father complain of long delays at red lights, I designed a Monte Carlo simulation to optimize traffic light timings. To understand current traffic systems, I worked with the City of Plano Department of Traffic and Transportation, and I later presented my findings to them. READ MORE BELOW!
Designing an Automated Sensor-Based Irrigation System Using an Arduino
I once killed a cactus because I overwatered it, not the first time a plant had died at my hands. Eventually, I sought to create a system that would accurately irrigate plants based on soil moisture levels and solar radiation. I was able to integrate software and hardware by utilizing an Arduino board. READ MORE BELOW!
A STOCHASTIC MONTE CARLO SIMULATION TO MINIMIZE VEHICULAR DELAY BY OPTIMIZING TRAFFIC LIGHTS
Upon hearing my father’s daily complaints of endless waiting at the red lights in our city, I began to ponder what the source of the problem was. I eventually sought to investigate how the current traffic system around me worked, where I discovered that the primary driver of vehicular delay was logically signal timings. Further research led me to well-regarded mathematical models for optimization of these timings, but I strove to validate these models in a different way -- using the Monte Carlo method, I could provide an original and innovative approach.
I first met with the City of Plano’s Traffic and Transportation Department to gain insight into current systems and received comprehensive traffic study data for every major signal in Plano. They also took me to the traffic control room where they managed traffic intersections, and seeing the synergistic nature of the system was enlightening! I then took the latest research and multivariable equations modeling traffic flow patterns, combined it with iterative probabilistic Monte Carlo simulation techniques, and used Java’s multithreaded object-oriented constructs to build a Java-based Predictive Traffic System (PTS). By inputting a set of unique traffic parameters, PTS could predict the optimal signal timings for any intersection under any traffic pattern. It was gratifying to see the predictive time from PTS line up perfectly with outputs of theoretical models and the multi-million dollar system the city had purchased. I was beyond overjoyed when the head of the Traffic Department offered me an internship. I later took my project to the science fair, where I achieved medal placements at the school and district level and an Honoroble Mention at the regional level.
Using computer science to innovate and solve a real-world problem excited me, and a whole world of possibilities opened up. I enjoyed being able to go through the entire process of developing a ground-up solution, from idea generation to testing and presentation. Since then, I’ve delved deeper into computer science, completing school courses, an MIT Introduction to Python course, and projects on my own time. I hope to combine my passion for computer science with business in order to explore areas such as social entrepreneurship, product management, or financial technology.
DESIGNING AN AUTOMATED SENSOR-BASED IRRIGATION SYSTEM USING AN ARDUINO
I've never been consistent with watering plants, causing many to die at my hands. Eventually, I decided that something needed to be done. While considering how I could make sure my plants were watered on a regular basis, I came across the possibility of an automated irrigation system. I realized that integrating hardware and software components would allow me to construct a complete system from scratch.
I soon began the process of research in order to ensure my system would be most effective. I conducted extensive inquiry into the most impactful factors for plant growth, which I found to be soil moisture level and light intensity. I further discovered the optimal values for each of these factors, which I would later use to determine watering conditions. With a bit of experience in Arduino programming, I chose to use a physical breadboard for the hardware component, as I would be able to directly utilize sensors and display values. I gathered my materials -- the breadboard, transistors, resistors, wires, soil moisture sensor, photosensor, OLED display, and other circuit components. After assembling the components on the breadboard, I used Fritzing software to create a visual diagram of the circuit. The next step was to write the code itself. Using Arduino Programming Language, a scripting language loosely based on C++, I wrote a program to give the plant certain amounts of water conditionally based on the output values of the soil moisture sensor and photosensor twice a day. The program also displayed sensor values on an OLED display, so that I could verify the data and subsequent water given. I created a flow chart for the program logic and uploaded the code to the Arduino. I then connected the breadboard to a plant and water pump that would be able to physically run and provide the plant with the determined amount of water. Over multiple days, I noted sensor values and the health of the plant. I was ultimately able to physically see the health of the plant improve, which was very gratifying to me!