Derrick Lockwood

WORK IN PROGRESS

Welcome

This is my portfolio website for my highschool and college career. It includes an about me page, projects page, and documents page.

It is still a work in progress please forgive the bugs and other problems...

Contact information

Email: lockwood.derrick@gmail.com

Highschool Projects

Blue Twilight Robot 2012

Unstable Version: 1.0.0 (release)

Description: This is Team's 2220 FRC Robot src code for the challenge of 2012

Download Version 1.0.0 Src

Blue Twilight Robot 2013

Latest Stable Version: 1.0.0 (release)

Description: This is Team's 2220 FRC Robot src code for the challenge of 2013

Download Version 1.0.0 Src

Blue Twilight Robot 2014

Latest Stable Version: 1.1.6 (release)

Description: This is Team's 2220 FRC Robot src code for the challenge of 2014. This project is continuing in development

Download Version 1.1.6 Src

Punnet Square Calculator

Latest Stable Version: 1.0.0 (release)

Description: This program does DNA calculations for the punnet square. It currently runs off of the console input. I plan later to port it over to a program with a graphical interface

Download Version 1.0.0 Src

College Projects

Senior Design

Prototype Stage

Description: To help Iowa State Parking be a better experience for the public and members of Iowa State.

Design process can be found on website

The tools we have used is gitlab for issue tracking and source control / management, tensorflow for the machine learning API for the post processing machine, react-native for Android and iOS application, and raspberry pi development.

Project Website

Rogue Like Game

Class Completed

Description: Developed in COM S 327 where we learned C and C++ programming developing a rogue like game where you play as a character who defeats monsters and collects items and explores tunnels.

Download Compiled Game (Linux)

Answer To Life Game

3.0

Description: Developed a two dimensional video game that looks like a mario video game. You can collect coins and traverse levels. This was developed in COM S 309 where we learned structures of project design and the agile process.

We designed the application based on a library called libGDX which is a library on top of the Lightweight Java Gaming Library which is what Minecraft is developed on.

Download Compiled Game

College Presentations

Eventlang

Description: Event based programming presentation in COM S 342 development of language.

Download Presentation

Tools

I used Intellij for my main Java Integrated Development Environment. Other tools I have used are mainly from jetbrains. I have experience in database and web development tools such as XAMPP. I have also used Neo4j graph database.

About Me

Introduction

Hello my name is Derrick Lockwood. I am currently an undergraduate in Software Engineering at Iowa State University.

I have been a software developer for 5 years. I started my programming adventure in kshell and bash. Then in freshman year at my high school, I saw a cocurricular activity called FIRST robotics. I then proceeded to join the Eagan Robotics Team. Our team name is Blue Twilight and our team number is 2220. The first year I joined Eagan Robotics I knew I wanted to go into the programming sub-team to program the software that is on the robot. The first year in robotics was a difficult one. I was just getting used to the high school environment and none of the programming leads "taught" me how Java (one of the programming languages FIRST uses as software on the robot) works and what functionality it had on the robot. The first year I was partnered with a Senor and we worked on a mini deployable robot from the main one. I can say with all honesty that I didn't learn much my freshman year in robotics but it was fun to got to the competitions. :)

My Sophomore year was much better, I learned Java (object orientated programming language) and practiced it all that year even when the robotics season ended. Being in robotics that year was also difficult because I wanted to take a class called AP Computer Science. This class taught students a basic level of programming but more importantly how good coding and designing works. Though to take this class you needed to have taken algebra two which I had not my Sophomore year, so I doubled up on math and took geometry and algebra two in the same year. What a pain... When I finally reached AP Computer Science I was prepared to ace this class. In this class having that extra experience with Java helped me to always be a couple of steps ahead of the class. I usually know how each project worked and each concept worked before the units start. Though I can't say I didn't learn anything because actually I learned quite a bit. I learned how to design the answer to the problem before coding it, I learned some cool "tricks of the trade" with Java. All in all I think that class excelled my compassion for software development.

My Junior year was one of my favorite in terms of software development. I was in my 3rd year of robotics and I became a programming sub-team lead. It was fun and educating to lead a group of students towards a goal of building software for that year's robot. I think that in that year I learned even more quarks of programming in Java and how to structure group coding. A challenge that was brought to me that year was getting kids who didn't know how to program in Java to join in and learn. I think that the way we did it that year didn't work.

I then come to my final year in robotics, my Senior year. It was a blast to work with all the great students at Eagan High School. I grew into a leader of a programming team. In the end my strategy for getting programmers to work conducively with one another worked out. It built me up as a leader and I continue to work on better ways to improve my collaborative ability.

Career Path

I plan on, after I get my Master's in Computer Science with a focus in Machine learning and artificial intelligence, working for a company who does research in applications of current machine learning technologies or big data applications. I would like to work in a city location.

General Education

  • Music 102

    This course impacted my college education by explaining to me the concepts around music and its development throughout history. Specifically, in my engineering education it impacted me by allowing me to develop musical applications with a small knowledge of music education. I apply it to when I am working with sound and music in technology.

  • HD FS 240

    This course explained literary development in the childhood to the teenage years. This class however hasn’t really affected my engineering education but did give a better understanding of my personal life’s values in literary development.

  • Econ 101

    This course gave technical specifications for economics through explaining how macroeconomics works. From an engineering aspect it used some math to do analysis on the economic context. However the main point of the class is to understand the personal aspects of how economics affects us.

  • Pysch 101

    This course impacted my engineering education by helping me to understand how the human mind works and how to apply it to machine learning. This class talked about the makeup of the human mind, how the human mind develops, and how to use psychology to understand and work with others which includes soft skills and problem solving.

  • HD FS 102

    We learned about the process of human development from inception to adulthood and how at each stage in development explains where our minds are at. This course I plan on using in my personal life for understanding of my own children’s development. However I don’t think that this class has helped me better in my field.

The best class that applied to my engineering education was Psychology 101 which explained how the mind develops and how the mind interacts with the outside world and processes information. This helped me evaluate engineering solutions in problem solving by understanding the human brain. This class also helped me with my focus in machine learning by explaining how we could apply current technology and software to a human brain and how a human brain interacts with the world. This has lead me to a better understanding of synapses and memory development in technology and how a person develops and learns. General education classes have helped me to broaden my understanding of the outside world and my focus area that I want after my undergraduate but beyond that, most of the classes I don’t use on a daily basis since they don’t apply very much to my major.

I think what I gathered most from general education courses was the personal development and how I can apply that to my personal future. The courses have a main impact in societal context due to most of them being about development of the human condition whether through literature, child development, and/or psychology. Included in the social context is the Music 102 explaining how music relates to us on a daily basis and the history that is around music.

Work Experience

Worked at Eagan High School as videographer over the summer of my Senior year of high school. Then my freshman year of college during the summer I worked at NISC (National Information Solutions Cooperative) as a Software developer intern. I worked on the companies iOS mobile application and learned about the agile process in practice while learning about how to program in objective-c and work the iOS development platform. The following summer I went back to NISC and worked on the Android side of development which I learned event programming and the patterns in Android development. This past summer I worked at Leidos as an Software developer intern where I worked on a project that allows private pilots to submit flight plans and flight briefs. It was written in Java and I progressed my understanding of the agile development process with everyday meetings called standups and with issue planning events. I got really good evaluations from both companies I worked for. At Leidos I gave a presentation at the end of my internship about my progress of the project I worked on.

Senior Design

The project is going to be used to help the general public find parking spots on ISU campus. My role is Team lead so I am in charge of people getting their work done and making sure our schedule is on track. I also do all the reviews for the code base and make sure that the code that is committed isn't broken. I handle the repository actions. I have contributed to the post-processing machine by helping to create the machine learning model and created the data collection for the model's training. This project tries to solve overcrowding of parking lots and the use of gas to determine which parking lot to go too by keeping track of the cars that are in the parking lot and relaying this information to the public.

Project Plan

Ethics Understanding (VW Emissions)

What I might have done.

If the securities were in place where the software engineers made a conscious choice to neglect ethics then this is where they went wrong. I would have not installed this hack to detect when the car was being tested for emissions and would have reported anyone who wanted to add a piece of code to our software that violated the code of ethics. This is because I believe that failure to protect the public should not go without repercussions. If I was being pressured my management to add this piece of functionality into our system I would probably bring it up to Human Resources about my concern over the ethical repercussions of the feature they want me to add.

Why did they do what they did?

It's hard to judge what to do differently based on what the software engineers did in this project. This is because we don’t know the situation around what made the software engineers overlook and neglect their responsibilities in the code of ethics. On any system, as software engineers, it's important to not only understand what each step of your code does but how it works and what it creates as an output. So if the intended use was to break the code of ethics then the software engineers are at fault for this. I think they did what they did because upper management told them that this would be ok and the software engineers did it without understanding the repercussions or ethics around the code that they were writing. It’s possible they didn’t have the education beforehand to understand what they were doing but negligence is still their wrong doing. I think they were pressured into it by upper management and they neglected their own intuition because of diffusion of responsibility to management.

Reflection

Iowa State University has taught me the different ways to go about designing a programming solution. The agile process was the most prevalent in my college career because it had a produce, review, and revise cycle. ISU has given me the opportunity to look in depth as to how people understand the computer science view point and how to apply this major to real world problems. ISU specifically has had me work in groups to prepare for a team environment out of college. They have also provided modern tools that companies will be using and an understanding of the languages used by companies. I also learned the ethical responsibilities as a software engineer and what we need to be aware of in business.

My short term goals are to get into Graduate school for a Masters in Computer Science. I would like to focus my discipline into the field of machine learning and artificial intelligence. Over my undergraduate degree I developed several projects that included theories around machine learning such as genetic algorithms and image recognition. In the long term I would like to work for a company leading in machine learning or at least has application for some artificial intelligence need.

As a kid I always had a passion for programming and problem solving. I believe ISU has helped me to develop this passion and continues to drive me towards advancing and continueing my education into graduate school. To help me complete my school work I have used other friends and students as a very collaborative environment. Also the internet has helped with specific details in programming that would be unclear since most classes don't teach you all the nouances of programming languages.

I used ISU's career services (such as the Career Fair) to find internships for my Freshman and Junior years. It was a very smooth way to gain outreach and connections with people in the professional workplace. I was able to see what I would be doing in the workplace and understand how my passion effects others.

Since software engineering is my passion and continues to come up in every day life, I continue to reach for new goals in what I am developing and with new understandings. I create my own personal projects when I have free time. I continue to stay on top of the latest technologies and how they effect me and how I can be apart of them. I seek out and search for answers to programming questions when I run into problems which can lead to me finding cool new things that I will implement in the future.

If I was to do my undergraduate degree over again, I would get better counselors here at ISU. I had troubles with being thrown around to different departments due to changes so I never knew who my current academic advisors were. I would also try to get a better time management plan down as to not be overwhelmed with work. The part that I had the most trouble with was General Education courses since it wasn't something I was passionate about it was hard to focus in.

Links

Senior Design Project

Senior Design Website

Documents

Resume

Download Resume