Learning Your Arsenal: Problem Solving

Battle Tactics: Plan before you program!

When the programming battle begins, you’ll need a plan of attack before you actually start programming your solution. Here are some tips to help you plan your program.

1.    Read the problem at least three times (or however many makes you feel comfortable)

You can’t solve a problem you don’t understand. There is a difference between the problem and the problem you think you are solving. Your challenges will be based on real-world problems. It’s easy to start reading the first few lines in a problem and assume the rest of it because it’s similar to something you’ve seen in the past. DON’T! To make sure you understand the challenge:

  • Write down the keywords that identify the problem
  • Try to explain it to your teammates.

The better you understand the challenge, the easier it will be to create a solution.

2.    Decide what you are going to make

Once you fully understand the challenge, decided what you want to make and its features.  These are some useful tips to decide what you’ll make:

  1. Look at the keywords in the problem again.
  2. Think of the end user.
    1. Who will be the users of the app?
    2. What are the end users problems?
    3. What do the end users needto be able to do?
    4. Optional: What would be useful for the end users to be able to do?
  3. Write a general description of your solution/app
  4. Write step by step what should happen from the user’s perspective. (Depending on your project, you may want to sketch what happens at each step)

3.    Decide how your will implement you solution

Great! You have an idea of what you’re going to make and its features. How will you implement it? Think about your tools.

  1. Decide on what tool best suites your solution e.g. Scratch, CodePen.io, HTML, CSS, or JavaScript, etc.
  2. Write pseudo-code.This applies when you’re using a high-level code like JavaScript. Basically, write the whole program in plain English text inside a comment, and then slowly turning that into actual code.

4.    Create a Timeline

Remember, you have a limited number of time to develop your solution. Try to plan your work over the period of time. What will you do first? Start on the basic features. After you’ve planned your timeline, determine if you have time to develop all the features you’ve come decided on. If not, leave out nonessential features.