Intro to Toy Problems
Intro to Toy Problems
Intro to Toy Problems
What is a toy problem?
• An exercise in logic and coding skills
• Usually deals with algorithms and data structures
• Short - usually ~1 hour to complete
• Multiple solutions
• Ranging from naive to canonical
• Solution may have constraints imposed upon it
• Time/space complexity
Intro to Toy Problems
Why do toy problems?
• Makes you a better general problem solver
• Familiarizes you with aspects of the target language
• Helps you approach and deconstruct complex problems
• Lets you consider different, possibly more efficient ways of accomplishing a given task
• Prepares you for tackling real-world software engineering issues
• Prepares you for technical interviews
Intro to Toy Problems
Strategies for Toy Problems
• Carefully read the description of the problem
• Exactly what are you expected to accomplish?
• Don't start coding immediately
• Visualize the problem using pen/paper or whiteboard
• This is especially helpful for complex problems
• Don't panic!
• Don't start aiming for a perfect solution
• A naive solution is a great starting point
Intro to Toy Problems
Toy Problems at Moringa School
• Starting tomorrow, you will have a Toy Problem in the morning four days a week every week for the first half of the course.
• You will find each day's toy problem on Github. There will be a central repository that contains all the problems. Make a fork of that repository and then add the central repo as a remote named 'upstream'. When you want the day's new problem, execute: '$ git pull upstream master'
• The day after you do a toy problem (or the following Tuesday), you will have a solution lecture during which one of you will be chosen to present your solution. The class will discuss your solution and look at a canonical solution as well.
Intro to Toy Problems
Let's try one out!
Prompt: "Using Java, write a function that takes a String and returns the reverse of that String. Do not use the StringBuffer or StringBuilder classes."
Note: as in many Toy Problems, you will not be able to use any external libraries to achieve your solution, only the language's native features
Intro to Toy Problems
By moringaschool
Intro to Toy Problems
- 586