Welcome to my personal site, click on the speech bubbles above each section to display more information.
Hello, my name is Nick Aberle. I am in my 5th and final year pursuing concurrent Master's and Bachelor's degrees in Computer Science at the University of Colorado at Boulder. I have lived in Colorado all 23 years of my life, and attended high school close by in the town of Louisville, Colorado. Computer Science and technology have always been my passion and I am extremely excited to explore the field in depth while here at CU and after I graduate. I am currently employed at the Laboratory for Atmospheric and Space Physics at the research park on CU's East Campus. At LASP, I work full time on developing software for many active programs, including a solar radiation sensor that will be put on the upcoming NOAA weather satellite, Geostationary Operational Environmental Satellite - R Series (GOES-R).
In my free time I like to cook, bike, play sports with my friends, both play and create video games and music, go hiking and camping, and teach myself electronics.
Click on the name of a project to see a detailed description.
This is a satellite entirely designed and built by students at the University of Colorado, funded through a grant from the National Science Foundation. It is in the CubeSat class of satellites, first developed by Cal Poly in 1999. This project has been ongoing since 2009, but I first started working on the project in the Fall of 2010. My role in the project was developing software that runs on the satellite while it is in-flight as well as software that resides on the ground that commands the spacecraft and downlinks the science data payload. The satellite has been successfully orbiting Earth and taking valuable science data, measuring electrons trapped in Earth's magnetosphere, since its launch in September 2012. More information on CSSWE is available here.
An application for browsing and searching questions on the Stack Overflow programming help site. This application was developed for Android using object oriented programming principles. Because of its object oriented nature, the application was easily extended to allow users to browse the Server Fault, Super User, and Meta Stack Overflow sites as well. Written in Java.
EXIS stands for Extreme Ultra Violet and X-Ray Irradiance Sensors. EXIS is an instrument on the newest upcoming NASA/NOAA satellite, the Geostationary Operational Environmental Satellite R-Series, or GOES-R. When the satellite, developed by Lockheed Martin, is launched sometime in 2015, the EXIS instrument will be constantly pointed toward the sun, measuring very specific wavelengths of light being emitted in order to help better understand space weather patterns. My role in the project has been in developing ground support equipment (GSE) software. My software is a test suite that is utilized by engineers developing both software that will run on the instrument while it is in flight as well as the software that will be on the ground controlling the instrument.
MAVEN stands for the Mars Atmosphere and Volatile EvolutioN orbiter. MAVEN is an upcoming NASA probe that will travel to Mars to study its atmosphere in detail. There are three total scientific instruments on board that will collect data with regard to the contents of the martian atmosphere as well as how it is impacted by solar wind. I have been involved with two of these instruments, the Particles and Field Package and the Remote Sensing Package. For Particles and Fields, I have been developing software testing utilities to verify the integrity of some electronics boards before they are integrated into the instrument. For Remote Sensing, I have extended my EXIS GSE software to assist the Flight Software Engineers developing in-flight software for that instrument. More information on the MAVEN program is available here.
A compiler for a programming language loosely based on C, called CU (named for the University of Colorado). This language was developed for Michael Main's Principles of Programming languages class. This compiler includes a lexer to break the code into individual symbols, a parser that stores data about each symbol in a parse tree, and a code generator that interprets the semantics of the code and generates machine instructions so that the code may be executed on an x86 machine. Written in C++.
A UNIX shell that utilizes job control for processes initiated within the shell. The application allows multiple jobs to be running in the background as well as one job running in the foreground. The standard Ctrl+C and Ctrl+Z keyboard commands are also available to the user for manipulating foreground processes. Written in C.
A memory allocation suite with "mark and sweep" garbage collection. The allocator removes inaccessible objects in memory by maintaining pointers to "slabs" of memory space each consisting of multiple pages. When a collection phase is initiated, the slabs are scanned and reachable objects are recursively copied into a secondary set of memory slabs and are marked to prevent duplication of data. The original set of memory slabs is completely unallocated, preserving the active memory in the secondary slab set. Written in C.
MINIX is an operating system based on UNIX developed by Andrew Tanenbaum for teaching Operating Sytem concepts to students. By default, MINIX utilizes "first fit" memory allocation, meaning the first available section in memory is used when an allocation request is made by a user or starting process. I modified MINIX to also utilize both the "best fit" and "worst fit" strategies, which involve picking the tightest fitting memory section and largest available memory section for new allocations, respectively. A system call was also added to MINIX to allow the user to switch between the allocation strategies. Written in C.
The CS Student Ambassador program began in the Spring semester of 2011 to aid incoming Computer Science students in their transition from high school to college. The ambassadors are available as a resource to admitted students, providing answers to any sort of question they may have as well as giving various information about the Computer Science department at CU. I began volunteering for the program closely following its inception and continue to be involved.
A simulation of John Conway's Game of Life using dynamic 2-dimensional arrays to store cell information and the Borland Graphics package to display the output. Written in C++.
A desktop Facebook application that allows a user to view various types of information regarding their Facebook account, including basic information as well as their recent statuses. The program also looks at every photo the user is tagged in and compiles a list of who has the most photos of the user. Also allows the query of a friend's name which in turn prints their most recent status. Uses the PyFacebook client library to add Python bindings to the Facebook API. Written in Python.
A Windows application that stores and reads phone book entries from a file and displays them for the user. Uses Microsoft Foundation Classes to implement the user interface and a linked list data structure to store the data during runtime. Written in C/C++.
A multi-directional arcade style shooter, similar to the popular Geometry Wars. I submitted the game as my final project for an Xbox Game Design class in the Spring 2010 semester. Features all custom sprites, coding, and free-use sounds. Both Windows and Xbox versions of the game exist. The project is officially complete, but I continue to work on it in my spare time. Written in C# using the XNA Framework.