Solving problems is the core of computer science. Programmers must first understand how a human solves a problem, then understand how to translate this "algorithm" into something a computer can do, and finally how to write the specific code to implement the solution. At its core, problem-solving focuses on the study, understanding, and usage of data structures and algorithms.
This competency area includes usage of HashMaps, stacks, queues, heaps, and analyzing run-time complexities and space complexities, among others.
- Data Structures - Use Data Structures such as HashMaps, stacks, queues, heaps. Manipulate single or double linked lists
- Algorithms - Use Optimal Solutions to solve problems. Analyze run-time complexities and space complexities. Create simple dynamic programming-based algorithms.