<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Aka Abdulfatai Olalekan on Medium]]></title>
        <description><![CDATA[Stories by Aka Abdulfatai Olalekan on Medium]]></description>
        <link>https://medium.com/@abdulfataiaka?source=rss-98d6ac6761fb------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Stories by Aka Abdulfatai Olalekan on Medium</title>
            <link>https://medium.com/@abdulfataiaka?source=rss-98d6ac6761fb------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 18 May 2026 11:46:18 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@abdulfataiaka/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Pseudocode]]></title>
            <link>https://medium.com/@abdulfataiaka/pseudocode-6f024b0a2a6?source=rss-98d6ac6761fb------2</link>
            <guid isPermaLink="false">https://medium.com/p/6f024b0a2a6</guid>
            <category><![CDATA[algorithms]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[pseudocode]]></category>
            <dc:creator><![CDATA[Aka Abdulfatai Olalekan]]></dc:creator>
            <pubDate>Sun, 22 Sep 2019 15:48:09 GMT</pubDate>
            <atom:updated>2019-09-22T15:48:09.598Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*F_GIcCWkFgYgMTUs5yb_hA.jpeg" /></figure><p>Pseudocode is a high-level informal way of describing the instructions of a program. The result of writing these instructions for a program using pseudocode is called an Algorithm.</p><p>Just to give you a taste, the example below is a program that adds up three numbers 45, 67 and 90.</p><pre>// prints the sum of 45, 67 and 90</pre><pre>sum &lt;- 45 + 67 + 90<br>PRINT sum</pre><p>While the above example is very simple, in practice, we will be involved with more complex algorithms, writing them based on requirements before venturing into analyzing them.</p><p>This article will be focused on explaining how we can write algorithms based on what the input and output will be and the task we want performed using the knowledge of pseudocode we will be acquiring from below.</p><p>The following are constructs we need to know how to use for us to be able to write algorithms that are correct, readable, easy to understand and analyze.</p><p>Note that pseudocode uses a symbolic coding language which can be different for different people. So the syntax that will be defined below is just a variant of the syntax we can have.</p><ul><li>Reserved Keywords</li><li>Operators</li><li>Variables</li><li>Data Types</li><li>Data Structures</li><li>Conditionals</li><li>Iterations or Loops</li><li>Functions</li></ul><h3>Reserved Keywords</h3><p>There are some operations we can perform in how program, without having to write some other algorithms. These operations are accessible in our program using <strong>Reserved Keywords. </strong>Such as for getting input from users, printing output to users, making a function return a value etc.</p><p>Below are few common reserved keywords you will be seeing as you go through this article.</p><pre>READ // Get an input from the user</pre><pre>PRINT // Output data to the user</pre><pre>RETURN // make a function return a value</pre><pre>INCREMENT // Increment a number by 1</pre><pre>DECREMENT // Decrement a number by 1</pre><p>Note the use of “//” in the above, it is used to start <strong>comments, </strong>which<strong> </strong>do not have any effect on the program, they are majorly used for code documentation and explanation for easy understanding.</p><h3>Operators</h3><p>There are different types of operator we can use in our programs, which includes the following</p><p>Arithmetic Operators</p><pre>+  : Addition<br>-  : Subtraction<br>×  : Multiplication<br>/  : Division<br>mod  : Modulo</pre><p>Comparison Operators</p><pre>== : Test for equality <br>&lt;  : Less than<br>&gt;  : Greater than<br>&lt;= : Less than or equal to<br>&gt;= : Greater than or equal to</pre><p>Other operators</p><pre>&lt;-  : Assignment operator<br>and : Logical and<br>or  : Logical or</pre><h3>Variables</h3><p>These are used to hold data temporarily while a program is running. Suppose we create some data at some point in our program, how do we store the data such that we can reference it at another point in our program? Yes !!! We use variables.</p><p>Variables have names, but below are things we need to note when naming variables.</p><ul><li>Variable names can only start with an underscore or alphabet</li><li>Variables can only contain underscores, integers and alphabets</li></ul><p>Examples of variable names are</p><pre>name , name123 , _age , gender_field etc.</pre><p>In pseudocode, we assign data to variables using the assignment operator</p><pre>name &lt;- &quot;Joe&quot;</pre><pre>gender &lt;- &quot;male&quot;</pre><pre>_age &lt;- 56</pre><pre>prices &lt;- [&quot;$45&quot;, &quot;$123&quot;, &quot;$900&quot;]</pre><h3>Data Types</h3><p>Most of the time, basic tasks of a program is usually in data manipulation, where the program takes in some data and spit out another version of the data after been worked on.</p><p>However, for us to be able to handle these data properly in our programs, we need a way to represent them. So for this reason, we have the notion of data types which are used to identify the type of a data and give us an understanding of how to deal or relate with the data without causing our program to crash.</p><p>Below are primitive data types we will be dealing with…</p><p>Numeric Data Types</p><ul><li>Integers : 1, 3485, 100, etc</li><li>Floating point numbers: 1.1, 45.0, 43.35, etc</li></ul><p>Other Data Types</p><ul><li>Strings : “hello”, “1233”, “hell12345”, etc.</li><li>Boolean : true , false</li></ul><p>Note that what make strings is simply the quotes that wraps the actual content, which can be either single or double.</p><h3>Data Structures</h3><p>As we can see from above, these data types are used to describe a single data, but what if we want a collection of these data of different types, how do we do that? This is where the concept of data structures comes in.</p><p>Data structures are collection of homogeneous(same) or heterogeneous(different) primitive data types in order to have a single representation of these data.</p><p>For instance, a human can have the following properties</p><ul><li>age : Integer</li><li>name : String</li><li>is_baby : Boolean</li></ul><p>Having these properties in one place to describe a human will be awesome, say something like</p><pre>human &lt;- {&quot;age&quot;: 50, &quot;name&quot;: &quot;John Doe&quot;, &quot;is_baby&quot;: false}</pre><p>In the above, the human attributes has been collated in what we call a <strong>Data Structure (</strong>A structure holding multiple data of different or same data type<strong>)</strong>,</p><p>The two data structures we will be talking about here are <strong>Array</strong> and <strong>HashMap.</strong></p><p>Note that data structures are simply collections of data and hence they are data themselves. Which means that we can assign them to variables as we do other kinds data.</p><p><strong>Basic properties of an array</strong></p><p>Create an array using the literal []. Below is an array containing four data(elements) of different data types.</p><pre>array &lt;- [23, &quot;hello&quot;, false, 7.8]</pre><p>Array items are accessed using their position number called indexes which starts from 0.</p><pre>PRINT array[0] // gives 23</pre><pre>PRINT array[3] // gives 7.8</pre><pre>PRINT array[4] // raises error</pre><p>Trying an index outside the range of the size of an array will raise a program error, so we want to be careful when using indexes.</p><p>We can as well update the items in an array using the indexes.</p><pre>array[0] &lt;- 90 // changes 7.8 to 90</pre><pre>array[1] &lt;- false // changes &quot;hello&quot; to false</pre><pre>array[4] &lt;- 80 // raises error</pre><p><strong>Basic properties of a hash map</strong></p><p>An important difference between an array and a hash map, is that arrays uses <strong>indexes</strong> to identify elements, while hash map uses <strong>keys </strong>to identify elements.</p><p>Create a hash map using the literal {}. Below is a hash map containing two key-value pairs of data.</p><pre>hash &lt;- { &quot;age&quot;: 50, &quot;name&quot;: &quot;human&quot; }</pre><p>Note that the keys are of string data types, so for this article, we will always use string keys as hash map keys. However, the values assigned to these keys can be of any data type.</p><p>Similar to an array, elements are accessed using their keys, as in below</p><pre>PRINT hash[&quot;age&quot;] // gives 50</pre><pre>PRINT array[&quot;name&quot;] // gives &quot;human&quot;</pre><pre>PRINT array[&quot;undefined&quot;] // raises error</pre><p>Also, trying to use a key not in the hash map raises a program error.</p><p>We can as well update the elements in a hash map using the keys,</p><pre>hash[&quot;name&quot;] &lt;- &quot;Jane Doe&quot; // changes &quot;human&quot; to &quot;Jane Doe&quot;</pre><pre>hash[&quot;age&quot;] &lt;- 45// changes 50 to 45</pre><pre>array[&quot;undefined&quot;] &lt;- 80 // raises error</pre><h3>Conditionals</h3><p>Conditionals are constructs used in making the decision of when a single or group of instructions should execute.</p><p>We use the IF/ELSEIF/ELSE/ENDIF construct for this. Below are examples of how to use this construct.</p><pre>array &lt;- [1,2,3]</pre><pre>IF 5 in array THEN<br>   PRINT &quot;Five is in the array&quot;<br>ELSE<br>   PRINT &quot;Five is not in the array&quot;<br>ENDIF</pre><p>Note that</p><ul><li>Both ELSEIF and ELSE part of the construct are optional</li><li>ELSE must always occur once and last if it is to be present</li><li>We can have multiple ELSEIF, but must come after IF and before ELSE.</li></ul><pre>age &lt;- 90</pre><pre>IF age &gt;= 50 THEN<br>   PRINT &quot;Old&quot;<br>ELSEIF age &gt;= 20 THEN<br>   PRINT &quot;Adult&quot;<br>ELSE<br>   PRINT &quot;Child&quot;<br>ENDIF</pre><h3>Iterations or Loops</h3><p>Loops are constructs used in making instructions execute in a repetitively.</p><p>We use the FOR/ENDFOR construct for this. Below are examples of how to use this construct.</p><p>Looping over a range of numbers</p><pre>FOR number &lt;- 1 to 10<br>   PRINT &quot;Executing 10 times&quot;<br>ENDFOR</pre><p>Looping over items in an array, where <strong>n</strong> represent the size of the array</p><pre>array &lt;- [45, 67, 89, 12, 34]</pre><pre>FOR index &lt;- 0 to n-1   // Here, n = 5<br>   PRINT array[index]<br>ENDFOR</pre><h3>Functions</h3><p>These are used for grouping instructions together to make a program accomplish a particular task.</p><p>Defining a function <strong>PrintR</strong> that prints out numbers from 1 to 20</p><pre><strong>PrintR()<br>   </strong>FOR number &lt;- 1 to 20<br>      PRINT number<br>   ENDFOR</pre><p>Sometimes, we want to create a function that takes inputs as parameters in order to do some work on them.</p><p>Define a function <strong>PrintAR</strong> that takes an array(<strong>arr</strong>) and length(<strong>n</strong>) as parameters, loops through its items and print them out</p><pre><strong>PrintAR(arr, n)<br>   </strong>FOR index &lt;- 0 to n-1<br>      PRINT arr[index]<br>   ENDFOR</pre><p>Other times, we don’t want to just print out data to the screen for users, we want the function to have a return value which we can store in a variable and use later.</p><p>Define a function <strong>RetArrSum</strong> that takes an array(<strong>arr</strong>) and length(<strong>n</strong>) as parameters, loops through its items, sums them up and return the sum.</p><pre><strong>RetArrSum(arr, n)<br>   </strong>sum &lt;- 0<br>   <br>   FOR index &lt;- 0 to n-1<br>      sum &lt;- sum + arr[index]<br>   ENDFOR<br>   <br>   RETURN sum</pre><p>Ok, this is awesome !!!</p><p>Now, the question is, how do we use these defined functions in our program? Say for instance we have in our program an array with 5 numbers whose sum we need. The program below demonstrates how we can call a function previously defined.</p><pre>array &lt;- [45, 67, 12, 90, 34]</pre><pre>sum &lt;- RetArrSum(array, 5)</pre><pre>PRINT sum</pre><p>Note that it make sense for us to assign the <strong>RetArrSum </strong>function call to sum, because it returns a value. Unlike the <strong>PrintAR </strong>function<strong> </strong>which does not return any value but just prints out array items.</p><h3>Conclusion</h3><p>These concepts and constructs defined above are used in writing algorithms to be analyzed using the different algorithm analysis techniques.</p><p>However, the first step before even trying to analyze any algorithm is to first write it down using pseudocode (Not always true for experts), hence the necessity of this article.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6f024b0a2a6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introduction to Algorithm analysis]]></title>
            <link>https://medium.com/@abdulfataiaka/introduction-to-algorithm-analysis-6792123766db?source=rss-98d6ac6761fb------2</link>
            <guid isPermaLink="false">https://medium.com/p/6792123766db</guid>
            <category><![CDATA[algorithms]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Aka Abdulfatai Olalekan]]></dc:creator>
            <pubDate>Sun, 01 Sep 2019 17:46:49 GMT</pubDate>
            <atom:updated>2019-09-08T10:35:30.681Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/750/1*sao6K3zslMVdUzn_rfrD5w.png" /></figure><p>Prerequisite :</p><p><a href="https://medium.com/@abdulfataiaka/understanding-big-o-notation-18424089437d">https://medium.com/@abdulfataiaka/understanding-big-o-notation-18424089437d</a></p><p>Inexperienced programmers believe that a working program is a good program. However as they become more experienced, they start becoming less concerned about whether the program works or not and become more concerned about the quality of the algorithms that make up the program.</p><p>The objective of this article is to present the idea of algorithm analysis in a more granular and less complex and complicated form, understandable by total beginners and inexperienced programmers.</p><h3>Definition of terms</h3><p><em>Algorithm analysis</em> simply has to do deal with getting or computing the complexity of an algorithm</p><p><em>The complexity of an algorithm</em> is simply defined by the amount of resources required for such algorithm to execute completely.</p><p>Analyzing the complexity of algorithms is always done with respect to the <em>size or length of the input</em> passed to such algorithms, as what determines the rate at which complexity changes is the input size.</p><p>So we can say, the rate of growth complexity is a measure of how the input size changes.</p><h3><strong>Efficiency of an algorithm</strong></h3><p>An algorithm is said to be efficient if the rate at which its complexity grows is lesser than the rate at which the input size grows.</p><p>When some algorithms executes when passed input of small size, the execute very fast and use minimal amount of resources. However if the input size is increased, the complexity of these algorithm grows, which means that we cannot conclude that an algorithm is efficient just because it behaves best when the input size is small.</p><p>So for this reason we introduce the three different cases we can have when analyzing algorithms so we can get reliable and satisfying result about the behaviour of algorithms.</p><p>A case of an algorithm describes the scenarios where the amount of resources consumed is at its</p><ul><li><em>Minimum : Best case</em></li><li><em>Maximum : Worst Case</em></li><li><em>Average : Average Case</em></li></ul><p>The most important one of these cases is the “Worst case scenario”, as this is usually a safe way of deciding if an algorithm is efficient or not when compared to other algorithms, with the constraint that the same input is passed to all algorithms been compared.</p><p>There are different tools and approaches we can use to compute the complexity of an algorithm. However, the commonly used one is the Big O Notation.</p><p>An algorithm that has a worst case complexity of O(n²) is said to be less efficient when compared to that another algorithm of complexity O(n), with the same input passed to both algorithms.</p><p>Similarly, an algorithm that has a best case complexity of O(log n) is better in efficiency than that with best case complexity of O(n).</p><p>So moving forwards, we will be using the Big O Notation in expressing our complexities.</p><h3>Complexities</h3><p><em>The complexities of algorithms is can be categorized by the </em>kind of consumable resource we want to consider, such as time and space, hence the terms “Time Complexity” and “Space Complexity”.</p><p><em>In summary, the time complexity (Also called Running Time) is a measure of the amount of computation steps It takes an algorithm to execute with respect to its input size, while the Space complexity is a measure of the amount of memory space it takes for an algorithm to execute also with respect to its input size.</em></p><p><strong>A little bit on time complexity</strong></p><p>We can classify time complexity into the following based on the type of expression we pass to Big O, while using Big O Notation to express complexity.</p><ul><li><em>Constant : O(1)</em></li><li><em>Linear : O(n)</em></li><li><em>Quadratic : O(n²)</em></li><li><em>Cubic : O(n³)</em></li><li><em>Logarithmic : O(</em><strong><em>log</em></strong><em> n)</em></li><li><em>Quasilinear : O(n </em><strong><em>log</em></strong><em> n)</em></li><li><em>Exponential : O(2^n)</em></li></ul><p>So, when we say the time complexity of an algorithm is Logrithmic, we mean that the rate of growth of the amount of computation steps required with respect to the rate of growth of the input size is O(<strong>log</strong> n).</p><p>If we pay attention, we will noticed that in order to be able to express the complexity of an algorithm using the Big O Notation, we will first need to express it as a mathematical function, so we can extract the highest ordered term which we will pass to Big O.</p><p>Below are upcoming articles that talks more on these complexities in details</p><ul><li>Running time function T(x) of an algorithm</li><li>Time complexity of an algorithm</li><li>Space complexity of an algorithm</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6792123766db" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Understanding Big O Notation]]></title>
            <link>https://medium.com/@abdulfataiaka/understanding-big-o-notation-18424089437d?source=rss-98d6ac6761fb------2</link>
            <guid isPermaLink="false">https://medium.com/p/18424089437d</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[algorithms]]></category>
            <dc:creator><![CDATA[Aka Abdulfatai Olalekan]]></dc:creator>
            <pubDate>Sun, 01 Sep 2019 17:39:49 GMT</pubDate>
            <atom:updated>2019-09-08T10:36:16.702Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*83pmpWYG2drQacgCGzpeUA.png" /></figure><p>The purpose of this article is to introduce some basic Mathematics concepts that will aid the understanding of Big O Notation and make it easy to grasp the concept introduced in my next article about complexity of algorithms, see link at the bottom.</p><p>My target viewers are beginners or inexperienced programmers probably with no background of Mathematics but wishes to understand the concept of complexity in algorithm analysis.</p><p>Some of the topics I will cover in this article includes</p><ul><li>Polynomials</li><li>Logarithms</li><li>Exponentials</li><li>Equations</li><li>Functions</li><li>Growth of functions</li><li>Big O Notation</li></ul><h3>Polynomials</h3><p>These are mathematical expressions that usually have just one unknown variable (usually represented by symbols or alphabets), with a particular degree or order.</p><p>The degree or order of a polynomial expression is the highest power with which the unknown variable is raised.</p><p>Examples</p><ul><li>3x² + 4x + 1</li><li>4y - 1</li></ul><p>The first example is an polynomial expression of degree 2 with the unknown variable been “x”, while the second is a polynomial expression of degree 1 with the unknown been “y”.</p><p>Summary Note</p><ul><li>Expressions can be seen as combination of other expressions, as in example one above. 3x² and 4x are also expressions on their own. However, when they are brought together to form a compound expression, we refer to them individually as terms of the expression.</li><li>The number directly in front of a term is called the coefficient of the term. So for example, 3 is the coefficient of term 3x². Note that only terms with an unknown variable will have coefficient.</li><li>Any number standing alone in an expression is referred to as the constant of the expression.</li><li>An unknown without a power is seen to have power 1, that is why 4y - 1 is of degree 1.</li></ul><p>Using the degree of a polynomial expression, we can categorize these expressions into the following</p><ul><li>Linear : Degree 1</li><li>Quadratic : Degree 2</li><li>Cubic : Degree 3</li><li>And so on…</li></ul><p>There are different operations we can perform on polynomial expressions, which includes but not limited to addition, subtraction, multiplication, etc.</p><p>However, addition and subtraction operations are carried out similar-term wise. That is, performing the operation 4x + 1 will not yield any result as the terms “4x” and “1” are not similar.</p><p>Terms are said to be similar if and only if they have the same unknown variable of same power. e.g “4x” is not similar to “4x²”, while “5x²” is similar to “9x²”.</p><p>For example,</p><p>Lets add 4x + 1 and 5x + 2, then we do (4x +5x) and then (1 +2) as these are terms that are similar, so we get 9x + 3.</p><p>I won’t further on explaining these operations in this article so as to not go out of scope. So, endeavour to check out examples of these other operations.</p><h3>Logarithms</h3><p>The logarithm of a number is <strong>that</strong> which describes the power to which a fixed number will be raised to produce a given number.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/362/1*5GJ4T61WTapIsJo16CSiTw.png" /></figure><p>The above is simply a mathematical way of expressing the definition above. So combining the two, we say</p><ul><li>The number we want to get/produce is “x”</li><li>The fixed number to be raised to some power is “b”</li><li>The power that “b” will be raised to is “y”</li></ul><p>Logarithm depends on the different number systems. What differentiates these systems is the maximum number allowed in the system and the way operations are carried out in them.</p><p>These number systems all have base value that ranges from 2 upwards. A number system with base value of two is called base 2 number system or binary number system, and that with base value of 3 is called base 3 number system and so on.</p><p>The maximum number allowed in number system is one less than its base value. Hence the binary number system will only allow numbers 0 and 1, while base 10 number system allows numbers 0 through 9.</p><p>So, what will be the range of numbers allowed by the base 16 number system?</p><h3>Exponentials</h3><p>An exponent is simply an expression or a term (when in other expressions) which is a combination of a <strong>base</strong> and a <strong>power</strong>. i.e</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/94/1*L2ylMQH-rm3kOhzNcNjp_A.png" /></figure><p>In the above, the unknown at the bottom “b” is the base of the exponent, while the one at the top “x” is called the power of the exponent. Usually, “b” is set to a fixed value(or number).</p><p>Suppose we equate the above expression to a value, what do we call it then? Exponential equation? Correct!</p><p>Note that what you call an equation depends on the type of expression you are equating to some value.</p><h3>Equations</h3><p>Simply put, equations are expressions equated to some value or some other expression. Hence, if we equate “x⁵ + 1” to 56, then we have “x⁵ + 1 = 56”, which is a polynomial equation of order 5.</p><p>Hence when a linear expression is equated to some value, we get a linear equation and so on for other types of expressions.</p><h3>Functions</h3><p>In a layman term, a function is some variable to which an expression is assigned. We usually represent a function using either an unknown or variable (e.g “y”) or an unknown with the unknown of the expression it is equated to passed to it. e.g “f(x)”</p><p>Example</p><ul><li>y = x² + x + 1</li><li>f(x) = x — 1</li><li>g(y) = y³ +8</li></ul><p>Note in the above examples, y, f(x) and g(y) are the representation of functions. Since the functions are unknowns, then we now have two unknowns making up the equation of these functions.</p><p>However, you would notice that for us to be able to get the value of y, f(x) or g(y) we need to first know the value of the unknowns in the expressions assigned to them, meaning that y, f(x) and g(y) are dependent on the unknowns in their respective assigned expressions.</p><p>So because of this, we refer to y, f(x) and g(y) as dependent variables while the unknowns in expressions they are assigned to are referred to as independent variables.</p><h3>Growth of functions</h3><p>Understanding how to analyse functions in terms of growth makes it easy to understand the complexity of algorithms using the big O notation.</p><p>The growth of an expression is determined only by the order or degree of the highest ordered term in an expression.</p><p>The highest ordered term of the below expressions are x² and x⁴ respectively</p><ul><li>x² +1</li><li>9- x⁴ + x²</li></ul><p>We do not consider the other terms as they will always grow slower when compared to the highest ordered term.</p><p>Also, how does the coefficient of that highest ordered term affect its growth?The coefficient of “x²” in example one above is 1, does it mean that if we change such coefficient to some big value, the rate of growth will be affected? No. The rate at which “x²” grows will also be approximately the same as the rate at which “100x²” grows.</p><p>Now considering the function function “y = x² + x + 1”, how do we measure its growth? Simple…</p><p>As we can see that the expression to the right has its highest ordered term to be “x²”, so the equation interprets into the below</p><p>The rate at which the function “y” grows will always be lesser or approximately equal to the rate at which “x²” grows, that is “y” can never grow at a rate greater than “x²”.</p><p>So in short, we say the rate of growth of “y” is the rate of growth of “x²”.</p><h3>Big O Notation</h3><p>The Big O Notation is simply a mathematical statement used in expressing the rate of growth of an expression in terms of the highest ordered term as explained above.</p><p>So with consideration to the function “y = x² + x + 1”, we can simply say the expression “x² + x + 1” is O(x²). Nice!</p><p>But if the rate of growth of function “y” is the rate of growth of “x² + x + 1” as explained above, which is in turn O(x²), then the rate if growth of “y” is also O(x²). Hence “y” is O(x²).</p><p>So we say the function “y” cannot grow at a rate faster than O(x²).</p><p>Continue studying about algorithms by following the link below, which introduces you to algorithm analysis using the knowledge acquired in this article.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=18424089437d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Importance of the topic “Adaptability”]]></title>
            <link>https://medium.com/@abdulfataiaka/importance-of-the-topic-adaptability-23b5aad1b073?source=rss-98d6ac6761fb------2</link>
            <guid isPermaLink="false">https://medium.com/p/23b5aad1b073</guid>
            <category><![CDATA[adaptability]]></category>
            <category><![CDATA[andela]]></category>
            <dc:creator><![CDATA[Aka Abdulfatai Olalekan]]></dc:creator>
            <pubDate>Tue, 03 Oct 2017 15:09:42 GMT</pubDate>
            <atom:updated>2017-10-03T15:09:42.160Z</atom:updated>
            <content:encoded><![CDATA[<p>We pursue excellence in every activities of life we are involved in, be it working with teams in building a product, pursuing knowledge and experiences in what we hope to become better at, etc. But achieving these, requires quite a number of skill set of which one of them is “Adaptability”.</p><p>After minutes of watching the video provided for us on the topic “Adaptability” at Andela bootcamp, I came to understand some important facts about having such as part of one’s skill set.</p><p><strong>So what is Adaptability ?</strong></p><p>Adaptability is the ability of adjusting to new conditions in order to achieve set objectives. People always have the choice of adjusting to new changes or pushing back on these changes. But it will be worth it to mention few importance of adaptability in one’s day to day activities, some of them include …</p><p><em>Easily integrates with teams</em></p><p>Adaptability enables someone to easily work with other members in his team and also make him welcome new members to the team without having the slightest thinking of how to cope and collaborate with these new members. This enables the team to progress and achieve their set goal in a short period.</p><p><em>Acquiring new experiences</em></p><p>For someone that is used to a particular way of doing some things, and he is introduced to a new way that might be more efficient than the approach he knows, provided this individual is ready to accept the new changes that might come by, definitely new experiences will be acquired and such a person would have gotten a step closer to been an expert in doing such things. This is one of the key benefit of adaptability as no knowledge gained is a waste, that in turns add more to the person in question and make him a better person at what he is into.</p><p><em>Becoming a driver of changes</em></p><p>Adaptability enables a person to understand and know when changes are required and to initiate changes when they are needed, in a situation where other members of a team are not seeing the need for change or are afraid to push for changes due to their lack of adaptability, the one with such attribute will not be swayed by the complexity of the changes that might come up, and because he knows the benefits of accepting changes, he will definitely push for it in order for the set goals to be achievable.</p><p><strong>So what are the behaviors one must possess in other to be seen as someone that adapts to changes?</strong></p><p>Firstly, one should have open mind towards challenges and feedback, be it positive or negative ones that might come from other people.</p><p>Becoming emotionally agile is another, as been bias is a factor that can come into decision making at some point, and someone that is emotionally agile will not be bias in making decision even if its going to affect him as he knows that the progress of the project been worked on is far above him.</p><p>Lastly the person will be able to identify changes and take the necessary steps to ensure the change is implement and the project is moved some step to completion.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=23b5aad1b073" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[My most recent challenging learning experience]]></title>
            <link>https://medium.com/aka-abdulfatai-olalekan/my-most-recent-challenging-learning-experience-481291d7c333?source=rss-98d6ac6761fb------2</link>
            <guid isPermaLink="false">https://medium.com/p/481291d7c333</guid>
            <category><![CDATA[andela-bootcamp-nigeria]]></category>
            <category><![CDATA[learning]]></category>
            <category><![CDATA[software]]></category>
            <category><![CDATA[education]]></category>
            <dc:creator><![CDATA[Aka Abdulfatai Olalekan]]></dc:creator>
            <pubDate>Wed, 20 Sep 2017 06:01:14 GMT</pubDate>
            <atom:updated>2017-09-28T13:58:34.324Z</atom:updated>
            <content:encoded><![CDATA[<p>To me, learning has always been an important factor needed in order to progress in whatever position one might be. I try to seek knowledge every time, be it general knowledge about life or knowledge relating to software development or even knowledge from any other academic field whatsoever. But recently, I have been having a challenge of <strong>focusing</strong> while learning and I think this has been due to different commitments I have involved myself in. But nevertheless avoiding this challenge is definitely feasible, either by dedicating time for those commitments and ensuring I conclude them before going back to learning or I place them on hold for a while. Learning is something that always requires commitment also and too much other commitments will bring about loss of focus and this result in inefficiency and not obtaining the set objectives.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=481291d7c333" width="1" height="1" alt=""><hr><p><a href="https://medium.com/aka-abdulfatai-olalekan/my-most-recent-challenging-learning-experience-481291d7c333">My most recent challenging learning experience</a> was originally published in <a href="https://medium.com/aka-abdulfatai-olalekan">Aka Abdulfatai Olalekan</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>