Introduction

Hey, this is Isaac Trost (as seen in the image). As of writing this article, I am a LVL. 3 student in the Computer Programming lab. Just a week ago I competed in the SkillsUSA States level Computer Programming competition for the second time. Both this year and last year I got fourth place. So I didn’t exactly win, but now I can tell you everything that I wish I had known for the competition.

Also, before I begin, I would like to say that I strongly encourage whoever reads this to try participating in SkillsUSA. It is incredibly fun! You get to miss school, make new friends, and go on cool trips with your schoolmates. During the states trip you get to stay in nice hotels and eat delicious food (hibachi).

In this article I will cover the structure of the competitions, the tasks I had to complete, and some general tips.

Competition Structure

As a competitor, I had to complete two programs, but for some reason they called them “jobs” so I am going to refer to them as that from now on. We were given three hours to complete the two jobs. We could use any language we wanted. I used python. We were not allowed to use any libraries that weren’t included with our language of choice and we were not allowed to use the internet. You will be completely on your own, writing code based only off of your prior knowledge and experience.

To give you an idea of what the competition was like I am going to explain the two jobs I was given. This will be from memory, so hopefully it will make enough sense.

My Jobs

Job 1: Compound Interest Calculator

Requirements

Write a program that prompts the user for investment details, and then calculates the time needed to reach their goal amount or the amount of money they will have after the specified amount of time:

  1. Principle amount (starting amount)
  2. Goal amount or the amount of time to wait (in years)
  3. Interest rate
  4. Is the interest compounded annually or monthly?

And then output a summary. The summary will be different depending on if you set a goal amount or set an amount of time to wait, and if the interest is compounded annually or monthly.

Output Examples

1. Output with the goal being specified ($12,000) and annual compounding:

“If you invest $5000 right now, at an interest rate of 15% and compounded annually, it will take 7 years to reach your goal of $12000. The resulting total will be $13,294.35.”

Note it only says years and not months because it is compounded yearly.

2. Output with the goal being specified ($12,000) and monthly compounding:

“If you invest $5000 right now, at an interest rate of 15% and compounded monthly, it will take 5 years and 11 months to reach your goal of $12000. The resulting total will be $12,080.00.”

Note it says the years as well as months because it is compounded monthly.

3. Output with the amount of time specified (10 years) and annual compounding:

“If you invest $5000 right now, at an interest rate of 15% compounded annually, and wait 10 years, the resulting total will be $20,219.00.”

4. Output with the amount of time specified (3 years, 2 months) and monthly compounding:

“If you invest $5000 right now, at an interest rate of 15% compounded monthly, and wait 3 years and 2 months, the resulting total will be approximately $8,015.”

Also, please note that the totals were calculated by ChatGPT, so it might be a couple cents off, but for the most part correct.

Hopefully those examples were good enough to give you a decent understanding of the requirements. I’m pretty terrible at explaining this kind of stuff but I did my best trust me 🙏🫡. If you are planning on competing, I would try writing this program as practice.

Job 2: Basically a LeetCode

The only thing I am going to tell you about the second job is that it was basically just an easy to medium level LeetCode. So if you are a future competitor and read this, ABSOLUTELY GRIND OUT THOSE LEETCODES! This will help you level up your problem solving and critical thinking skills, which are very important during the competition.

Competition Tips

This section is a list of things you need to know for the competition. Here you go 😎:

  1. Understand exponents, logarithms, and isolating exponents (if its a variable).
  2. Be able to read and parse CSV files and files in general.
  3. Know how to iterate through lines in a file and know when you hit the EOF (end of file).
  4. Understand the compound interest function, its possible they will reuse the job from my competition or have a similar one.
  5. Be able to create a GUI in your language of choice. Understand how to implement text inputs, float inputs, buttons, and radio buttons. All the basic GUI elements.
  6. Have offline documentation for your language ready. It was a life saver during my competition! If you are planning on using python like me, you can download the offline docs here. Its also a good idea to have detailed docs for your GUI library (that is included with the language of course, outside libraries are not allowed). I used tkinter, and the official python tkinter docs pretty awful.
  7. Understand classes, constructors, inheritance, functions, lambdas, and input validation.
  8. Bring earplugs. Both the times I have competed in SkillsUSA states, my competition room was shared with mechanics, autobody repair, and construction competitions. It is very loud and very annoying. Earplugs are a must!
  9. If you are using VS Code as your IDE, make sure to get some extensions to make your life easier. I personally used the following extensions: autoDocstring, Prettier, Pylance, Python, Python Debugger, Python Indent, Python Type Hint.

That’s everything I could really thing of. Hopefully this article helped you at least a teeny tiny bit. I wish you best of luck. 🫡

Leave a Reply

Your email address will not be published. Required fields are marked *