My College Essay

Fri Mar 16 2018

Students hate writing essays. It is easy to get wrapped up in the traditional 5 paragraph essay which is dull and boring. When writing a college essay, you have more freedom since you are telling a personal narrative. Since you are writing a story, you want to make it interesting. You should not rephrase the prompt which you are responding to, and you should not write about anything that the admissions office already knows. Your application already mentions all the clubs, classes, sports, and volunteer service you do– so don’t mention them.

I don’t want to go off on a huge tangent about how to write the perfect college essay, I’m not an expert. However, I would like to share my personal college essay which got me accepted into RIT and Clarkson last year. As a computer science applicant, it is a great idea to write your college essay based on the programming experience you had outside of school.

/**
 * Title: HTTP ERROR 500
 *
 * Prompt: Describe a problem you’ve solved
 *
 * @author Jeffery Russell
 *
 * September 13, 2016
 */

#include <stdio.h>

main()  
{  
printf("

        On a dim screen in the corner of my room flashed the dreadful message- HTTP
    ERROR 500. That simple warning taunted, probed, and questioned my mind for
    hours on end. As I pivoted my binocular gaze from the computer to out the
    window, I saw the front yard dimly lit by the drowsy moon. Time for a second
    stood still as the crickets chirped and the trees swayed in the cool summer
    breeze. Closing my eyes for that second of silence made me realize how tired
    I really was. A beeping, piercing, and dinging sound focused my gaze back to
    the computer. Still flashing was that error reminding me that I had a long
    night ahead.
    
        For the past two weeks I had been working on an employee management system
    for a store. This web based system was to keep track of employee hours for
    payroll. The project was near complete; however, there was a few bugs left
    to fix. The most annoying of which was password verification for the
    webform. Now nearing the end of the development cycle, the project was
    suppose to go live tomorrow.
    
        Debugging a project is often a daunting task for programmers. Simply finding
    an error is like finding a misspelled word in the dictionary. Correcting the
    misspelling may be easy but finding that word is another story. What I love
    about programming is that the program does exactly what I tell it to do. If
    it makes a mistake it’s because I told it to, not because it feels tired, or
    doesn't like me. Every bug, error, and glitch I unintentionally create.
    These bugs eventually come out to the surface like a fish gasping for air.
    An error is never just a mistake. It represents something much larger- an
    error in my way of thinking. Debugging is a process that enables me to
    further understand the program and crush the bug like the parasite it is.
    
        Sitting back in my chair in deep thought I resumed the process of scanning,
    poking, and probing my code for any source of the error. For the past hour I
    narrowed the source of the error to ten lines of dubious code. Pondering
    these lines of code I added an echo statement which allows me to see the
    inner workings of the code. The error became as clear as day, the password
    was not getting hashed: a feature that adds security to password storage.
    Excitedly I typed a few lines of code to fix this problem. Then swiftly I
    pressed execute, only to my disappointment to receive a different error
    code. Eyes glazed over, I realized my mistake. In the process of debugging I
    left a block of code commented out.
    
        On a dim screen in the corner of my room beamed the message- Currently
    Working.

");  
}



Musical Floppy Drive Build Log

Tue Mar 13 2018

It is fun to find an interesting use for old technology. Being someone who has tons of old floppy drives and loves music, I decided to turn my old floppy drives into an orchestra. I’m not sure where I first learned about musical floppy drives, however, there are thousands of videos on YouTube.

This project first started over a year ago when I connected two floppy drives to a Raspberry Pi to play the Star Wars theme.



Deepfakes

Fri Feb 23 2018

What are Deepfakes

We all know that you can do silly face swaps with snap chat and other apps. Previously face swapping faces on videos was terrible because you simply sequentially swapped all the faces frame by frame. As a result, the quality was very poor and did not handle head movements well. A Reddit user by the name of Deepfake created a recurrent neural net which accurately face swaps videos. Deepfake(the user) initially gathered a following by swapping celebrity faces onto porn videos.

Reddit has banned Deepfake and Pornhub has banned deepfakes from their platforms. Despite the attempts to remove fake deepfake videos, they are currently all over the internet.

How Can You Make Deepfakes



University vs Teaching Yourself Programming

Tue Feb 13 2018

Many people on the internet furiously debate whether it is better to learn how to program in college vs teaching yourself. This is not necessarily a one-sided debate, there are merits of both teaching yourself how to program and taking computer science in college.

University

The main advantage of taking Computer Science in college is that you are also taking a lot of math and science courses. When talking to a professor from Clarkson University he said that they were not teaching students simply how to get jobs, but how to pioneer and shape the field. It is possible to buy a book and teach yourself how to program Python or attend a coding boot camp. However, the tech field is changing at a rapid pace, and what you learn now may be irrelevant in five years. The combination of programming courses and other math and science related courses allows students to create the tech of the future. Think about all the advancements in artificial intelligence we have made in the past year, all that requires higher level statistics and calculus.



Using English Conventions To Write Clean Code

Thu Feb 08 2018

Is that English?

private boolean canCompressBlock(Coordinate start, int size){
   return size == (int)Arrays.stream(this.rawImage, start.getRow(), start.getRow() + size)
           .filter(r-> size == (int)Arrays.stream(r, start.getCol(), start.getCol() + size)
                   .filter(c-> c == this.rawImage[start.getRow()][start.getCol()])
                   .count()).count();
}                   

After 30 minutes of brain boiling work, I finally finished crafting the most beautiful lambda statement in Java. What could have simply been done in two nested for loops, I decided to tackle the problem with the infamous lambda statement– feared by most programmers. Lambda statements by no stretch makes code any easier to read since the same tasks can be accomplished through using simpler and more recognizable syntax. Yet I decided to utilize this excessive lambda statement. After much contemplation, I realized that I was only using lambda statements due to the fact that people inside of a field typically try to write to impress their peers. This code chunk is clearly a sophisticated use of functional programming and will likely impress people inside the computer science community; however, 95% of my computer science class would not understand a single word of this statement. This poses a dilemma to newer programmers which may have difficulty reading this “sophisticated code”. After years of helping students learn to program in my high school, I know that students struggle with making their own code legible. Their code often lacks sophistication and clarity. However, at the same time many of my college professors which are embedded in the field of computer science often write code that is too sophisticated and obscure for anybody to easily understand. This got me thinking, how can we teach students to programming in a way that yields legible code for everybody in the computer science field? I turned towards English. It turns out that programming can take a few pointers from English to improve its clarity. The same skills used to teach writing can be applied when teaching students to program because excellent code and writing contains thought through structure, clear phrasing and readability.