Vincent Zhao 5/27/2025
Over the course of the 2nd half this year, I embarked on a mission, attempting to solve one small world problem related to quantum computing. Coming into this project with practically no experience in that field, high school math and physics knowledge, and a time constraint. I wanted this project to be an exploratory way for me to learn more about an industry which could potentially dominate technology in the future.

Project Constraints
At first, I set out to base the early stages of my project around grasping the basics of quantum computing. Initially, my thought process was to try and self-study the topics online, learn about it, then pick a topic around what I have learnt. However, I soon came to realize that due to the complex nature of the topic, it was the easiest for me to find a super specific aspect of quantum computing, and then look into corrections for that as it would be easier to understand on a micro scale.
As I discussed and researched extensively, I found a relatively simple topic regarding quantum error correction code. In an ideal scenario, the users would be the quantum computing industry in the future, who would have decided to pay me for my discoveries and contribution to analyze one of the major issues preventing implementation. However, the eventual findings of my project are on too much of a small scale to have larger implications – especially considering when I only ran my tests on simulated noise models.
For the project, I probably dedicated the most time into trying to learn the subject matter: a little during winter break, spring break, and some weekend debugging sessions. I did set agendas and plans on what to do in my notion project planner, but they were not brief and rather just milestones documenting what has happened so far. Overall, I cramped much of the learning at the end and went through more of a “do the project first, then understand it” phase. I thought about trying to use actual IBM quantum computers to run the code, but due to setup costs and complexity, I just ran it multiple times with the help of AI in drafting and debugging my code.

Project Expectations:
The scope of my project was to build a 3-4 Qubit EAQEC circuit in Qiskit, implement a simulated noise model that could randomly throw off the process or flip the signs of the wave function. It would run a grid search to check for 100+ rotation angles trying to find the optimal ones during noise (and then graph it for a visual). Think about it as trying to find a perfect setting on a thermostat to keep your room at a good temperature throughout the day, regardless of how unpredictable the weather can get.
Success would have been defined with an actual working simulation, and its ability to plot the data sets with constantly changing results under the random noise.
Design Choices
Solution: A Python script using Qiskit’s Aer simulator with noise.
Visuals:
- Circuit Diagram: 3-qubit EAQEC encoding → noise → recovery gate (rotation) → measurement.

- Flowchart Plan:
- Build circuit
- Add noise model
- Loop angles → simulate → record fidelity
- Plot/Analyze
For the sake of time, I will not be making these visuals as they are pretty easy to read and visualize in the head.
(SEE APPENDIX A for Files and example code tests I ran)
Project Planning:
The Original Plan was to spend late February to mid-march, reviewing the math topics needed to understand quantum computing basics, spend March break watching many videos and tutorials on the basics of quantum computing through the long videos on IBM, and give myself a lot of time during April to test, debug, and work my own way through the process of testing. However, I did go off plan due to an underestimation of how difficult it would be to simply understand what my project was and how the systems work together in quantum computing. Below was the actual timeline of what happened
March 18- Spring Break: Learn linear algebra, sets (Khan Academy).
Apr 1–Apr 14: Review IBM Qiskit basics.
Apr 14–Apr 25: Play around with tutorials and setup VScode environments
Apr 25–27: Run the first iterations of the code
Apr 27–May 4: Heavy analysis, debugs, and reruns of the code with AI assistant
May 7: Present findings to Uvic students with pizza for feedback
It is pretty funny how I spent the last week and a half actually running and changing the code and trying to figure out how it actually works.

Bill of Materials and Cost Analysis
I did not really need to spend any money on this project
Software Tools:
- IBM Qiskit
- Visual Studio Code
- Python 3.0, NumPy, Matplotlib
- AI code assistant
Hardware: Personal laptop
Budget: Zero dollars
Testing and Validation
It is very likely that my project closely simulated the effects of noise on changing a specific recovery parameter as Qiskit’s Aer simulator closely mirrors real-device noise behavior. I properly set up 1 data qubit (the main one that carries the quantum information) and 2 ancilla qubits (helper qubits used for the error correction code). After many tests and iterations, I was able to get the code so that it could run tests on the simulator, produce results, and sometimes even produce an image of the optimal circuits. I attempted to set up many seeded versions of the code to produce scenarios where I can run the same code iteration twice and get the same result for data collection. However, the noise model and conflicting nature of seed randomness made it so that each time I ran the code, a different result would come out. Furthermore, I tested the code with various error probabilities to see if there would be any changes or not.

Ethics
Throughout this project, I made it my priority to achieve results efficiently and at a pace under the time frame. I wanted to conduct my work transparently, especially in regards to AI usage and simulation results.
First, I relied a lot on AI (such as ChatGPT and coding assistants) to support the programming and explanation of complex quantum concepts. However, I did not blindly copy paste the first output it gave me and considered the project “finished.” I took care to review the code, results, and debug many errors that came along with formatting, plotting the data, and realistic use of settings in the program. I have to make it abundantly clear that the AI was a tool; the decisions, tests, and analysis were all interpreted by me. Furthermore, this process was not for a single run. The results and my tests differed so much throughout my own review process that I changed from my initial testing to a completely different data analysis mode. In the 2nd phase of testing and running the codes, I worked with AI to refine my code and add different settings and commands on how its run to the point where I reached a 7th version where the results became so complex and hard to understand that it couldn’t even produce a solid visual for me to look at – just university math symbols and one flat line showing one best angle for the entire process. From there, I had to rewind and break it down into the more simpler process – this time with more knowledge on how it works before reaching the final version of my code which I used to test and present with.
It was a week before I realized how many chats I had been through and the amount of different code files I had to upload. It definitely would be evidence of my “Iterative Testing and Refinement” skills.
Second, I was focused on educational and and the ethics of responsible sharing. My goal was not to fabricate results or claim any novel discoveries in the field, but rather to explore the limits of tuning a small parameter and looking into a case study of how it could be linked broader implications in the future. In the end, my project supports the use of software-based solutions that can reduce the need for expensive hardware, potentially demonstrating a gap in the current industry and its limitations.

Conclusions & Recommendations:
Through most of my tests, it’s quite apparent that the results follow a general periodic trend from 0 to 2𝞹. That is due to the general nature of the code, as I am testing recovery ANGLES and rotating a qubit before returning it back to the original state might follow a normal pattern. The sudden drops or peaks indicate the quantum noise actually in action. The parameters and test itself don’t reveal much about this specific setting, but it shows how important it is to test and optimize in quantum computing.
If I continued work, I would definitely explore other parameters, and aggregate my data and conduct more in-depth analysis of the results. Maybe someday another high school student (way smarter than me) will fly by and revolutionize the world with their findings.
APPENDIX
Pastebin For the final code
Link to google drive of my code and some testing results I have
Thanks for a fun year.
I hope someday we’ll all find our purpose and have fun with it – in this life and the next
VZ 5/27/2025 10:44 PM
“I love to sit on a mountain top and gaze. I don’t think of anything but the people I care about and the view.”
– Julian Lennon
Leave a Reply to mcrompton Cancel reply