Solutions for computer science challenges
- Learned prime number sieving algorithms, binomial coefficient, modulo (%) use cases and type casting use cases
- Recursion is best used in certain cases but not all, some solution can be done with loops instead
- Using recursion for factorials and fibonacci sequence was a REALLY BAD IDEA
- However, if you're using a language/implementation that guarantees tail recursion elimination and automatic memoization, quite a few cases that have obvious iterative solutions can be implemented recursively with little or no loss of efficiency or readability
- Tower of Hanoi with recursion went very well
- Use BigInteger for extremely large numbers, or you can create your own alternative with arrays, using the concept of carrying
- Learned and applied basics of dynamic programming
- Learned and applied tail recursion
- Learned various sorting algorithms, their time complexity, pros and cons and applications. Learned Big O Notation
- Algorithms done include: Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort, Counting Sort etc. More info refer https://en.wikipedia.org/wiki/Sorting_algorithm
- Learned Python list, dictionary methods and formats.
- Python does not implement tail recursion (to ensure proper tracebacks), which makes creating recursive algorithms a problem. Hence, the sorting algorithms created are more inclined towards an iterative approach
- Learned one and two's complement binary mathematical operation. The advantages of two's complement are addition does not need to consider signed bits (negative of positive), also storing a 4-bit number in an 8-bit register is a matter of repeating its most significant bit, plus, it does not represent negative zero (no need for additional considerations) therefore. no special logic needed
- Focused on completing freecodecamp's web developer certification.
- Focused on a personal social media web app project