Individual Interests, Projects, and Learnings Timeline
This is a good chance for me to clean up what I have been working on during the past years.
| Time: yyyy-mm | One-Line Summary |
|---|---|
| 2024-05 | Making my own Static Website Generator using vanilla JavaScript and Rust-Lang |
| 2024-05 | Visualizing Connect Four Game Graph using Three.js |
| 2024-05 | Making my Barnes-Hut Tree Implementation Rust-Lang Crate |
| 2024-02 | Trying to accelerate the Connect Four solving process |
| 2023-12 | Solving Connect Four |
| 2023-11 | Refactor my Graph Layout algorithm in Rust-Lang |
| 2023-09 | Redesign my website using Next.js |
| 2023-08 | Redesign my website using React.js |
| 2023-05 | Refactor my Graph Layout algorithm in C++, with knowledge from UIUC CS128, CS225 courses |
| 2023-02 | Visualizing One-Plus-One Game Graph, with Three.js |
| 2022-12 | Learning Three.js in an organized way, taking Bruno Simon's Three.js Journey course |
| 2022-10 | Making interactive maze games to learn human learning patterns using Angular.js |
| 2022-01 | Making my personal website using Angular.js and Express.js |
| 2021-12 | Learning Web Development |
| 2019-11 | Start to learn and implement Graph Layout algorithms using Python |
| 2019-09 | Teaching Recursion Drawing in Scratch |
| 2019-05 | Learning Non-line-of-sight Imaging |
| 2019-01 | Plotting movie box-offices using Python and Pandas |
| 2018-09 | Having fun and "simulating" Three-body using Python and Matplotlib |
| 2016-01 | Having fun with Scratch and recursive patterns like the Hilbert curve |
| 2013-01 | Having fun with Minecraft commands and 'red stone' circuits |
To Organize
Dec 2023 - Present: Solving Connect Four
I have reproduced and replicated the algorithm, ideas, and results of Pascal Pons' blog about solving Connect Four. I think this experience is indeed a very comprehensive summary of my previous learnings, including ideas from competitive programming and full-stack web development.
Nov 2023 - Present: Graph Layout III
Oct 2023 - Present: Learning "Competitive" Programming III
I started to learn a new programming language: Rust-lang.
Oct 2023 - May 2024: Personal Website II
After I interacted with a few course websites, textbooks, and documentations rendered from markdown, especially the rust's official "mdbook" idea, I feel that is a good way for me to build my website, considering the composing experience and customizability.
Aug 2023 - Sept 2023: Personal Website II
After I had learned Three.js and React.js and rewrote the graph layout project, I planned to build a new website to display my graph visualization results.
May 2023 - Sept 2023: Graph Layout Restart II
Finally, I had time to rethink the types and algorithms of graph layout in C++.
Feb 2023 - Apr 2023: Visualizing One Plus One Game Graph
Dec 2022 - Jan 2023: Three.js Journey
Previously, I have interacted with the Three.js library for drawing 3D graphs. This time, I took time to systematically learn how to create 3D things on the web with Three.js and Blender, along with computer graphic knowledge.
Oct 2022 - Nov 2022: Cognitive Games: Making Interactive Maze Games
Aug 2022 - Oct 2023: Learning Competitive Programming in a Non-competitive way II
After I finished CS128 in the summer semester of 2022, I decided to continuously archive interesting competitive programming problems I have studied.
Nov 2021 - 2022 Jun: Personal Website I
Aug 2021 - 2022 Jun: Coursera Period
I have completed 20-ish Coursera courses, ranging from UIUC's Accelerated Computer Science Fundamentals to web development, machine learning, and even a bit of game development.
Nov 2019 - 2021 May: Graph Layout Visualization
I started to learn Yifan Hu's Mutli-level Force-directed graph layout algorithm in the hope of plotting graphs of game states in the future. At the time, I was learning to use Python to implement the algorithm. To create visualizations, I directly inserted codes to draw and store images during the visualization process. Thinking back now, that's indeed not a good choice, but these visualizations were very rewarding.
Nov 2019 - Nov 2019: HIMCM Computational Part
Sept 2019 - Dec 2019: Teaching Sorts and Recursions in Scratch
May 2019 - Dec 2019: Yau-award competition
At that time, I was trying to replicate the results of a paper given by my instructor about non-line-of-sight imaging. While knowing nothing about matrices, I learned the idea that light reflections are somewhat similar to multiplying a matrix about the coefficients of energy loss at different angles. In the finale, as I can remember, one professor from Cal-Tech caught the problem about the potential inconsistency of the matrix. But that's still a very important experience to me regarding research and communicating with instructors and teammates. I'm glad that the professor caught the problems in our understanding.
Jan 2019-Feb 2019: Visualizing Movie Box offices with Python and Pandas
Sept 2018 - Present: Learning "Competitive" Programming Part I
Sept 2018-Jan 2019: Visualizing Three-body with Python and Matplotlib
Before 2018: Learning Recursion, Hanoi Tower, and Fractals with MIT's Scratch
I would say that I was attracted by the idea of recursion. Debugging recursive drawings is really interesting. One moment before, the lines were completely messed up, and with a change in a line, the lines were in the right position and forming beautiful geometric patterns. I still remember how a best friend pointed out that my calculation of imaginary numbers was missing a negative sign, and the whole problem was fixed with the negative sign in the correct position.
Before 2018: Minecraft Command Blocks
I guess this experience was my first exposure to computational minds. I still remember how I created a skeleton archer riding a zombie who was skilled in both close-quarter combat and ranged attacks.