## Basic things for Motivation/ First Essential talk **Importance of Small Difference** - Example 1 : - Ask about Breaking Bad - discuss the importance of extra 3% clear crystals that walter white made - Example 2 : - show Pictures of fastest man in India , Asia , World - discuss the impact of small millisec difference in timings - Depict it with the equation - ``` (1.01)^365 = 37.78 ``` **Qualities Essential to be the Best** - Ask about some essential qualities needed - Discuss the importance of few - - Consistency - Persistance - Hardwork in right direction - The will power **Performace Equation** - Discuss about the Performace Equation - ``` Performance = Potential - interference ``` - why the potential should be increased and interference should be decreased - How can the performance be enhanced - Attend All Classes - Be Mindful - **Learning is important** ## Many technologies, Where to start from? - discuss about multiple technologies available , maybe ask students about some names - frontend - js,react , angular , vue etc - backend - java , python , ruby etc - Machine Learning - introduce Data structures and Algorithms - define and differentiate - Data Structure - Something we need to organise data / keep data / Store data = Algorithms - the process / the steps - give an example of toothbrush being placed in kitchen - discuss about the importance of Data structures and Algorithms - Eventually reach to the conclusion that Data structure and Algorithms are important ## Building a site more important than learning about Data Structures and Algorithms ?** - Ask the question and then discuss the result with examples - Example 1 : **E-Commerce** - Dicuss the flow from searching a product to buying it - Discuss why we need Data structures and Algorithms in following functionalities - Searching a Product - need to be fast - Sorting - basis of price , category , reviews etc - Search typeahead - throw the name of **trie** just to introduce a wow-factor - Concurrency problem - 1 product , 2 buyers - Eventually convince that DSA is more important than just building a site - Example 2 : **Food Delivery** - Finding nearest restaurant - Sorting the list of restaurant - basis of name , reviews , location - **Utilisation of resources** (Explain with the help of diagram) - Shortest path of delivery - Shortest time is another factor to consider - more factors which finally helps in better utilisation of resources - Ask if it's now clear that DSA is the basic building block ## How Problem Solving works? - Dicuss about the computer and decision making - How the computer doesn't have mind of its own - How every step needed to be told to computer based on several decisions - Example 1 : **ATM Machine** - Discuss the process outline - Discuss the process in detail using decision tree (Don't introduce the name yet) - after drawing a basic decision tree - introduce with the name "Decision Tree" - Keep on focusing on the importance of decisions in problem solving ![ATM-MACHINE-DECISION_TREE](https://github.com/sofdev-ms/Lecture_Notes/blob/Intro_to_Programming/imperfect_notes/attachments/IMG_0016.jpg) - Example 2 : **Super Mario** - Engage students by asking about the game - Discuss what decision making happend when you press ```->``` arrow ![SUPER-MARIO-DECISION-TREE](https://github.com/sofdev-ms/Lecture_Notes/blob/Intro_to_Programming/imperfect_notes/attachments/IMG_0015.jpg) - Example 3 : **Pubg Game** - Engage students by asking about the game - Discuss what decision making happens while a person shoots in pubg - How does energy/health reduction happens , what are different variables involved to make one decision - Aim - Distance - Type of Gun - Body Armor ## "Observation" - The key to solve Problems - Discuss about Guass - Ask students if they know about him, what they know - state the problem - tell them his teacher gave him the problem - Problem : Find the sum of numbers from 1 -> 100 - discuss that He didn't jump on problem directly, **made observation** (focus on observation) ![SUM-OF-NUMBERS](https://github.com/sofdev-ms/Lecture_Notes/blob/Intro_to_Programming/imperfect_notes/attachments/IMG_0014.jpg) - **Prime Numbers** - What are prime Numbers - why 1 and 0 are not prime - Given a number check if it's prime or not - ask students for the solution - Approach 1 : Iterate from 1 -> N and check if it is divisble or not - Approach 2 : Sqaure root approach - traverse only till square root - Intution - factors always occurs in pairs - focus on presenting it as an observation - give proof by examples - Time analysis between O(N) and O(squareRoot(N)) - Considering one % (mod operation - ask if they know) takes 1 msec N | Approach 1 - N steps | Approach 2 - sqaureRoot(N) steps -- | -------------------- | -------------------------------- 11 | 11 msec | 3 msec 101 | 101 msec | 10 msec 100000 | 16.6 min | 1 sec 10^18 | 116 days | 1.66 min - Ask them if they appreciate the improvement in timings - put more focus - **Find sqaure root of a given Number** - Explain the problem - have to find the integer part - Approach - 1 : - iterate i from 1 to N and check if square of i is <= N - if square <= N - it is current ans - else stop the process - **WHY?** - Explain - Ask if the Approach 1 is fast enough to increase the curiosity - Approach - 2 : - start by stating an observation - pick some random element and check if it's square is <= or > than N - based on previous checks decide to ignore one part - properly explain this with example - now rather than picking random , pick middle element - reason for picking middle element - it always removes atleast half of the prospect solution ![LOG-N](https://github.com/sofdev-ms/Lecture_Notes/blob/Intro_to_Programming/imperfect_notes/attachments/IMG_0013.jpg) - Discuss the time Analysis ## How Data Structures helps in Problem Solving? - Discuss how just the way of organising the data can optimise the solution - Give example of toothBrush , how toothbrush stored in kitchen would result in ineffeciency - **Dictionary Word Search** - Discuss the process of searching a word in dictionary - Relation with the sqaure root problem - Name of the Algorithm - Binary Search - How are we able to apply the Binary Search - Order matters (Main situation) - Arrangement of Data Matters / Organisation of Data Matters - **HC Verma** Example - searching a word in HC verma - Why Binary search won't work - No particular organisation of data - Can sort all the words - But is it effecient ? NO! - Discuss Index / Appendix - How data is stored in a different way which improves efficency word | page nos. ---- | --------- velocity | 100 101 167 - Data Structure used - **Inverted Index** - All search engines use this to optumise the search ## Conclusion - Importance of Observation - Importance of Data structures and Algorithms - Importance of 3 essential qualities - Further work