Posts tagged algorithms

The Democratic Kernel Scheduler

One of the hardest classes in BYU’s computer science program is CS 345: Operating Systems Design. When I took the class last Fall, I learned how difficult kernel development is and how complex the puzzles of operating system internals are. One of the most famous of these puzzles is that of the scheduler. Before taking the class, I had a few years of experience with High Performance Computing schedulers such as Slurm and PBS Pro. This type of scheduling software is different from that of an operating system, but helped me realize that this was a highly important and difficult puzzle to solve.

CS 345 involves a set of projects of varying difficulty. A scaffolding OS is provided, and a feature of the OS is implemented in each project. Two of the seven projects (#2 and #5) are to implement different types of schedulers: first a prioritized round-robin queue, then later a fair-share system. I enjoyed these two projects more than any others in the class, which left me with a quest to create a unique scheduling algorithm. Hence, the Democratic Kernel Scheduler (DKS)

Read more ...

Rubik’s Cube Solver

For AP Computer Science, I was required to complete a programming project of some kind. Because of my interest in Rubik’s Cubes, I decided to combine some of my passions and do something related to cubing for my project.

I first decided to write a Python program to simulate a Rubik’s Cube. A user would be able to enter moves on the command line and see a real-time display of the cube’s state. Here is an example of what this looked like in 2x2 mode:


Read more ...

Programming Religious Wars

At the end of my 2017 summer internship at Idaho National Laboratory, I performed an experiment to determine the fastest programming language. I had the opportunity to then present my findings at a poster conference.

Here are some small code snippets used in my testing:


Read more ...