www.webstackacademy.com Problem Solving JavaScript
www.webstackacademy.comwww.webstackacademy.com Problem Solving
www.webstackacademy.com Problem Solving – What? • An approach which could be taken to reach to a solution • The approach could be ad hoc or generic with a proper order • Sometimes it requires a creative and out of the box thinking to reach to perfect solution
www.webstackacademy.com BCD Problem Solving A  Introduction to SDLC  Polya’s Rules  Algorithm Design methods
www.webstackacademy.com BCD Problem Solving A  A Quick introduction to SDLC  Never jump into implementation – Why? o You might not have the clarity of the application o You might have some loose ends in the requirements o Complete picture of the application could be missing and many more...
www.webstackacademy.com Test Code Design Requirement • Understand requirements properly • Consider all possible I/P and O/P • Know boundary conditions • Get it verified • Implement code based on the design • Try to have maximum modularity • Coding practices like – Indentation, Commenting, Variable naming convention, Neat file and function headers • Have a proper design plan • Use some algorithm • Use pen and paper method • Use flow chart (if required) • Make sure all cases are covered • Test the implementation thoroughly • Capture all possible cases • Have neat output presentation • Requirements -> Output trace SDLC - Phases
www.webstackacademy.com BCD Problem Solving – How? A  Polya’s rule: o Understand the problem o Devise a plan o Carry out the plan o Look back
www.webstackacademy.com BCD Problem Solving – Algorithm – What? A  A procedure or formula for solving a problem  A sequence of unambiguous instructions for solving a problem. This means obtaining a required output for any legitimate input in a finite amount of time  Algorithms is needed to generate correct output in finite time in a given constrained environment: o Correctness of output o Finite time o Better Prediction  Steps to take: o Natural language (Step-by-step) o Pseudo codes o Flowcharts
www.webstackacademy.com BCD Problem Solving – Daily life example A  Let's consider a problem of reaching this room  The different possible approach could be thought of  Take a Walk  Take a Bus  Take a Car  Let's Pool  Lets discuss the above approaches in bit detail
www.webstackacademy.com BCD Algorithm – Reaching this room – Take a walk A  The steps could be like o Start a 8 AM o Walk through street X for 500 Mts o Take a left on main road and walk for 2 KM o Take a left again and walk 200 Mts to reach  Pros o You might say walking is a good exercise :) o Might have good time prediction o Save some penny  Cons o Depends on where you stay (you would choose if you stay closer) o Should start early o Would get tired o Freshness would have gone
www.webstackacademy.com BCD Algorithm – Reaching this room – Take a bus A  The steps could be like o Start a 8.30 AM o Walk through street X for 500 Mts o Take a left on main road and walk for 100 Mts to bus stop o Take Bus No 111 and get down at stop X and walk for 100 Mts o Take a left again and walk 200 Mts to reach  Pros o You might save some time o Less tiredness comparatively  Cons o Have to walk to the bus stop o Have to wait for the right bus (No prediction of time) o Might not be comfortable on rush hours
www.webstackacademy.com BCD Algorithm – Reaching the room – Take a car A  The steps could be like o Start a 9 AM o Drive through street X for 500 Mts o Take a left on main road and drive 2 KM o Take a left again and drive 200 Mts to reach+  Pros o Proper control of time and most comfortable o Less tiresome  Cons o Could have issues on traffic congestions o Will be costly
www.webstackacademy.com BCD Algorithm – Reaching the room – Let’s pool A  The steps could be like o Start a 8.45 AM o Walk through street X for 500 Mts o Reach the main road wait for you partner o Drive for 2 KM on the main road o Take a left again and drive 200 Mts to reach  Pros o You might save some time o Less costly comparatively  Cons o Have to wait for partner to reach o Could have issues on traffic congestions
www.webstackacademy.com BCD Algorithm – Reaching the room – Conclusion A  All the above solution eventually will lead you to this room  Every approach some pros and cons  It would be our duty as a designer to take the best approach for the given problem
www.webstackacademy.com BCD Algorithm – A computer example A  Let's consider a problem of adding two numbers  The steps involved : o Start o Read the value of A and B o Add A and B and store in SUM o Display SUM o Stop  The above 5 steps would eventually will give us the expected result
www.webstackacademy.com BCD Algorithm – Pseudo code A  Let's consider a problem of adding two numbers  The steps involved : BEGIN Read A, B SUM = A + B Print SUM END  The above 5 steps would eventually will give us the expected result
www.webstackacademy.com BCD Algorithm – Flowcharts A
www.webstackacademy.com BCD Algorithm – DIY - Pattern A  Write an algorithm to print the below pattern
www.webstackacademy.com BCD Algorithm – DIY - Pattern A  Write an algorithm to print the below number pyramid
www.webstackacademy.com BCD Algorithm – DIY - Pattern A  Write an algorithm to print the below number pyramid
www.webstackacademy.com BCD Algorithm – DIY – Try the following A  Finding largest of 2 numbers  Find the largest member of an array  Count the number of vowels  Count the number of occurrences of each vowel  To find the sum of n – natural numbers  Convert a number from base 10 to base N
www.webstackacademy.com BCD Algorithm – DIY – Try the following A  Finding largest of 2 numbers  Find the largest member of an array  Count the number of vowels  Count the number of occurrences of each vowel  To find the sum of n – natural numbers  Convert a number from base 10 to base N
www.webstackacademy.com BCD Algorithm – DIY – Try the following A Sand Timers: You have two sand timers, which can show 4 minutes and 7 minutes respectively. Use both the sand timers (at a time or one after other or any other combination) and measure a time of 9 minutes.
www.webstackacademy.com BCD Algorithm – DIY – Try the following A Mad men in a circle: N persons (given as the input by the user) are standing in a circle. They are labeled from 1 to N in clockwise order. The first person is holding a gun, will shoot a person on his right and pass the gun to the next person who is alive. • Assuming N = 100, what is the index of the last person who will be alive? • Can you write a generic algorithm which can handle N value up-to 1000? • Can you validate your output by writing a JavaScript program?
www.webstackacademy.com WebStack Academy #83, Farah Towers, 1st Floor, MG Road, Bangalore – 560001 M: +91-809 555 7332 E: training@webstackacademy.com WSA in Social Media:

JavaScript - Chapter 1 - Problem Solving

  • 1.
  • 2.
  • 3.
    www.webstackacademy.com Problem Solving –What? • An approach which could be taken to reach to a solution • The approach could be ad hoc or generic with a proper order • Sometimes it requires a creative and out of the box thinking to reach to perfect solution
  • 4.
    www.webstackacademy.com BCD Problem Solving A  Introductionto SDLC  Polya’s Rules  Algorithm Design methods
  • 5.
    www.webstackacademy.com BCD Problem Solving A  AQuick introduction to SDLC  Never jump into implementation – Why? o You might not have the clarity of the application o You might have some loose ends in the requirements o Complete picture of the application could be missing and many more...
  • 6.
    www.webstackacademy.com Test Code Design Requirement • Understand requirementsproperly • Consider all possible I/P and O/P • Know boundary conditions • Get it verified • Implement code based on the design • Try to have maximum modularity • Coding practices like – Indentation, Commenting, Variable naming convention, Neat file and function headers • Have a proper design plan • Use some algorithm • Use pen and paper method • Use flow chart (if required) • Make sure all cases are covered • Test the implementation thoroughly • Capture all possible cases • Have neat output presentation • Requirements -> Output trace SDLC - Phases
  • 7.
    www.webstackacademy.com BCD Problem Solving –How? A  Polya’s rule: o Understand the problem o Devise a plan o Carry out the plan o Look back
  • 8.
    www.webstackacademy.com BCD Problem Solving –Algorithm – What? A  A procedure or formula for solving a problem  A sequence of unambiguous instructions for solving a problem. This means obtaining a required output for any legitimate input in a finite amount of time  Algorithms is needed to generate correct output in finite time in a given constrained environment: o Correctness of output o Finite time o Better Prediction  Steps to take: o Natural language (Step-by-step) o Pseudo codes o Flowcharts
  • 9.
    www.webstackacademy.com BCD Problem Solving –Daily life example A  Let's consider a problem of reaching this room  The different possible approach could be thought of  Take a Walk  Take a Bus  Take a Car  Let's Pool  Lets discuss the above approaches in bit detail
  • 10.
    www.webstackacademy.com BCD Algorithm – Reachingthis room – Take a walk A  The steps could be like o Start a 8 AM o Walk through street X for 500 Mts o Take a left on main road and walk for 2 KM o Take a left again and walk 200 Mts to reach  Pros o You might say walking is a good exercise :) o Might have good time prediction o Save some penny  Cons o Depends on where you stay (you would choose if you stay closer) o Should start early o Would get tired o Freshness would have gone
  • 11.
    www.webstackacademy.com BCD Algorithm – Reachingthis room – Take a bus A  The steps could be like o Start a 8.30 AM o Walk through street X for 500 Mts o Take a left on main road and walk for 100 Mts to bus stop o Take Bus No 111 and get down at stop X and walk for 100 Mts o Take a left again and walk 200 Mts to reach  Pros o You might save some time o Less tiredness comparatively  Cons o Have to walk to the bus stop o Have to wait for the right bus (No prediction of time) o Might not be comfortable on rush hours
  • 12.
    www.webstackacademy.com BCD Algorithm – Reachingthe room – Take a car A  The steps could be like o Start a 9 AM o Drive through street X for 500 Mts o Take a left on main road and drive 2 KM o Take a left again and drive 200 Mts to reach+  Pros o Proper control of time and most comfortable o Less tiresome  Cons o Could have issues on traffic congestions o Will be costly
  • 13.
    www.webstackacademy.com BCD Algorithm – Reachingthe room – Let’s pool A  The steps could be like o Start a 8.45 AM o Walk through street X for 500 Mts o Reach the main road wait for you partner o Drive for 2 KM on the main road o Take a left again and drive 200 Mts to reach  Pros o You might save some time o Less costly comparatively  Cons o Have to wait for partner to reach o Could have issues on traffic congestions
  • 14.
    www.webstackacademy.com BCD Algorithm – Reachingthe room – Conclusion A  All the above solution eventually will lead you to this room  Every approach some pros and cons  It would be our duty as a designer to take the best approach for the given problem
  • 15.
    www.webstackacademy.com BCD Algorithm – Acomputer example A  Let's consider a problem of adding two numbers  The steps involved : o Start o Read the value of A and B o Add A and B and store in SUM o Display SUM o Stop  The above 5 steps would eventually will give us the expected result
  • 16.
    www.webstackacademy.com BCD Algorithm – Pseudocode A  Let's consider a problem of adding two numbers  The steps involved : BEGIN Read A, B SUM = A + B Print SUM END  The above 5 steps would eventually will give us the expected result
  • 17.
  • 18.
    www.webstackacademy.com BCD Algorithm – DIY- Pattern A  Write an algorithm to print the below pattern
  • 19.
    www.webstackacademy.com BCD Algorithm – DIY- Pattern A  Write an algorithm to print the below number pyramid
  • 20.
    www.webstackacademy.com BCD Algorithm – DIY- Pattern A  Write an algorithm to print the below number pyramid
  • 21.
    www.webstackacademy.com BCD Algorithm – DIY– Try the following A  Finding largest of 2 numbers  Find the largest member of an array  Count the number of vowels  Count the number of occurrences of each vowel  To find the sum of n – natural numbers  Convert a number from base 10 to base N
  • 22.
    www.webstackacademy.com BCD Algorithm – DIY– Try the following A  Finding largest of 2 numbers  Find the largest member of an array  Count the number of vowels  Count the number of occurrences of each vowel  To find the sum of n – natural numbers  Convert a number from base 10 to base N
  • 23.
    www.webstackacademy.com BCD Algorithm – DIY– Try the following A Sand Timers: You have two sand timers, which can show 4 minutes and 7 minutes respectively. Use both the sand timers (at a time or one after other or any other combination) and measure a time of 9 minutes.
  • 24.
    www.webstackacademy.com BCD Algorithm – DIY– Try the following A Mad men in a circle: N persons (given as the input by the user) are standing in a circle. They are labeled from 1 to N in clockwise order. The first person is holding a gun, will shoot a person on his right and pass the gun to the next person who is alive. • Assuming N = 100, what is the index of the last person who will be alive? • Can you write a generic algorithm which can handle N value up-to 1000? • Can you validate your output by writing a JavaScript program?
  • 25.
    www.webstackacademy.com WebStack Academy #83, FarahTowers, 1st Floor, MG Road, Bangalore – 560001 M: +91-809 555 7332 E: training@webstackacademy.com WSA in Social Media: