Projects
![](https://www.ryanlearns.com/content/images/2023/12/acl_diagram.png)
Automatic Curriculum Learning with Gradient Reward Signals
Collaborated with Junsang Yoon on a research project looking into using student gradients as a reward signal for teachers in the context of automatic curriculum learning; utilized gymnasium environments (PointMaze, AntMaze, and AdroitHandRelocate) along with soft actor-critic and policy gradient algorithms to conduct experiments
![](https://www.ryanlearns.com/content/images/2023/12/2023-12-10_16-03-25-1.png)
Can Transformers Learn Sequential Function Classes In Context?
Collaborated with Emma Guo, Evan Hu, Reya Vir, and Ethan Hsiao on an investigation into the ability of transformers to in-context learn sequential function classes (recursive linear transformations, recursive randomly-initialized neural networks, etc.) as well as their robustness to label randomization during inference time
![](https://www.ryanlearns.com/content/images/2023/07/coup.jpeg)
Coup Reinforcement Learning Agent
Implemented the deep Q-Learning reinforcement learning algorithm to train an agent to play the board game Coup; Utilized PyTorch to train the Q-Network and Matplotlib to visualize the results
![](https://www.ryanlearns.com/content/images/2023/06/2023-06-18_23-00-55.png)
WhereToEat Chatbot
AI Chatbot created by team of 4 in the Cal Hacks AI Hackathon designed to assist with the restaurant selection process; the frontend was created with Next.js and deployed through Vercel; the backend was created with Python, utilizing the OpenAI and GoogleMaps APIs
![](https://www.ryanlearns.com/content/images/2023/06/2023-06-03_00-16-03.png)
Algorithm(s) and Complexity for Condorcet Consistent Voting
Collaborated with Amar Shah on a literature review of complexities for various Condorcet Consistent voting systems such as Dodgson, Kemeny, and Ranked Pairs; potential applications to simple stable voting
![](https://www.ryanlearns.com/content/images/2023/08/2023-08-04_18-52-48.png)
NP Hard Team Assignment
Researched solutions to the max k cut NP hard problem to design an algorithm to approximate a solution to a modified graph NP hard problem given hundreds of student inputs
![](https://www.ryanlearns.com/content/images/2022/11/2022-11-15_14-29-52.png)
CS61CPU
Designed and pipelined a CPU capable of running RISC-V Assembly instructions
![](https://www.ryanlearns.com/content/images/2023/08/minimax_tree.jpg)
Mancala AI
Implemented the Mancala board game in Java with multiple game modes, utilized the minimax algorithm with alpha-beta pruning to program an AI with an adjustable depth
![](https://www.ryanlearns.com/content/images/2022/07/2022-07-02_00-25-35.png)
Gitlet
Implemented a version control system using Java with functionality for commits, branches, merges, and checkouts
![](https://www.ryanlearns.com/content/images/2022/07/800px-Greek_lc_lamda.svg.png)
Scheme Interpreter
Programmed a Python interpreter for the Scheme programming language, with functionality for arithmetic operations, conditional logic, lambda procedures, and tail call optimization
![](https://www.ryanlearns.com/content/images/2024/05/Gauss.jpg)
History of the Normal Distribution and Central Limit Theorem
Researched the history of the normal distribution and central limit theorem; Authored a paper explaining the historical context behind the development of key results in probability theory