/daily-cs

Solutions for computer science daily challenges

Primary LanguageC#MIT LicenseMIT

Daily Learning Report

Solutions for computer science challenges

April 2019


  1. Learned prime number sieving algorithms, binomial coefficient, modulo (%) use cases and type casting use cases
  2. Recursion is best used in certain cases but not all, some solution can be done with loops instead
  3. Using recursion for factorials and fibonacci sequence was a REALLY BAD IDEA
  4. 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
  5. Tower of Hanoi with recursion went very well
  6. Use BigInteger for extremely large numbers, or you can create your own alternative with arrays, using the concept of carrying
  7. Learned and applied basics of dynamic programming
  8. Learned and applied tail recursion

May 2019


  1. Learned various sorting algorithms, their time complexity, pros and cons and applications. Learned Big O Notation
  2. 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
  3. Learned Python list, dictionary methods and formats.
  4. 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
  5. 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

June 2019


  1. Focused on completing freecodecamp's web developer certification.

July 2019


  1. Focused on a personal social media web app project