About Nathan Yeung

Currently pursuing a Bachelors of Science degree in Computers Science at Brigham Young University. Enjoys spending time with his wife, watching Chuck and eating vanilla ice cream.

Problem Solving in Computer Science

 

Learn the tools that you will need to solve the problem (i.e. data structures, algorithms, mathematics, programming languages, libraries, features, and etc.).

 

  1. Practice by exercises
  2. If there are areas that your are unfamiliar with stop and review the "tools manual" for that specific part of the tool.
  3. Repeat as needed

Learn the problem statement

  1. Write out the problem
  2. Ponder the problem
  3. Use pen or pencil and paper to help you consider various ideas and approaches by writing them down.
  4. Check whether the potential solution that you've discovered solves the problem
  5. Repeat as needed

Convert the written ideas or methods to practical implementation (apply the tools to the problem)

  1. When writing code first document the contract and the purpose for that part of the code you're writing whether it is a function or a class
  2. Create test cases to validate the behavior of the code

If you know your tools and you understand the problem, you will more clearly see how those tools will help you solve the problem at hand. For example, if you were handed a tool you did not know how to use, you would end up either a) not using it, b) using it inefficiently or c) make mistakes from which you would have to learn from. You don't have to figure it out on your own. Others in the field have documented their experiences. The key is to learn from their experiences whether it be through reading, asking them questions, listening in a lecture, a workshop or on a video. Take a step back from the project and sharpen your saw for a while and then try and see if it can "cut it" if not sharpen your saw again.

Now you want to be able to sharpen your own saw. Until you learn how to sharpen your own saw by doing all that's in your power to learn how to sharpen your saw or how to assimulate knowledge or to learn. If you learn what works well for you, you'll be successful in the field of computer science.

Ask yourself, "What works in helping you learn?"

From my experience, I found the following approaches helpful:

  • Keep a learning journal
  • Read
  • Ask questions
  • Try examples
  • Explain the idea to someone who's familiar with the topic
  • Work at it constantly
    • Think about it
    • Explore ideas or approaches in your mind
  • Write it out in your learning journal. Explain and log the process that you took, the experiments that you did, and the final result that you found. 

This will help solidfy the concepts in your mind because it focuses on the approach you took to solve the problem instead of the solution.