Dylan Carroll
Dylan Carroll

Programming

History

I began my journey with computer programming in middle-school by dabbling in self-taught python. From that point on, programming became a major hoby of mine and I often created small games and simulation toys to expereiment with new math, physics, and computing concepts that I learned.

In my sophomore year of high school, I enrolled in my first official computer-science course. The course was based in C# and introduced me to more structured programming practices and more advanced concepts. That same year, I learned BASIC for my TI-84 plus. I wrote simple games, math tools, and tech demos. In 2019 I began to teach myself C and C++ to familiarize myself with lower-level programming concepts, increase the number of languages knew, and gain access to a faster language for more compute-intensive projects.

2019 was also my first year at Western Washington University where I was accepted into the “Computer Science Distinguished Scholars Program. In winter 2020 I as admitted into the computer science major. During my undergraduate studies, I was able to formalize much of the knowledge and experience I had gained in my hobby programming expereince

In the Fall 2021, I joined Prof. Brian Hutchinson's machine learning research group where I would be working on applying deep learning techniques to problems in the automatic analysis of astronomical data.

In Spring 2024, I graduated magna cum laude with my B.S. in Computer Science with minors in Math and German. Having completed the pre-masters program during my undergraduate program, I began the Accelerated Masters program at Western in fall of 2024, which I plan to complete in Spring 2025.


Personal projects

This is a very incomplete list of my favorite projects that I have completed in my own time as a hobby. I am still working on documenting the rest of my projects.

Click on the titles for more details


3

Skeletonkey

— Python

Python

A simple, lightweight, and flexible configuration management tool that allows you to manage complex configurations for your applications using YAML files.



The Lodge Programming Language (WIP)

— Python/Lodge

Python/Lodge

Documentation describing the syntax, semantics, and implementation of the hypothetical programming language "Lodge" as well as the beginnings of a simple interpreter with plans to bootstrab into a self-hosted compiler.



Ray Tracing Engine

— Julia

Julia

Using global illumination to render scenes with materials with diffuse, emissive, reflective, and refracrive materials.



LR(1) Parse Table Generator and Parser

— Python

Python

Parse table generator that produces a parsing table from a textual description of a context-free grammar.



Class Schedule Generator

— HTML, CSS, Javascript

HTML, CSS, Javascript

Web app that algorithmically generates and visualizes optimal class schedules based on scraped WWU course data.



Mandelbrot and Julia renderers

— C and C++

C and C++

Simple fractal rendering programs.



Command Line Calculator

— Python

Python

A simple yet powerful scientific calculator that exists only in the terminal.



Neural Network Driving

— Java and Processing 3

Java and Processing 3

A simple neural network trained with a genetic algorithm to race around a track.



Markov-Chain Text Generator

— Java

Java

A trained Markov-chain model that generates new text based on a training text.



Perlin Noise Generator

— Python

Python

A Perlin noise generator written from scratch.



dylan-carroll.com

— HTML, CSS, and Javascript

HTML, CSS, and Javascript

Woah, that's the page you're on right now!.