#Takes all commands written in text and converts into magic numbers, compiles into executable byte code which is Ruby specific; #Converts english language into byte code, executes the byte code; #The byte code is the sameo on every system (if you were running on mac or nintendo); #To make it work it has to call the operating system; #Opaerting system, library that knows how to open and close files, talk to the network, do mathemtatical stuff #When you intall operating system comes which a bunch of libraries; #Ruby talks to the operating system which talks to the libraries; #Underneath the operating system we have to BIOS (basic input output system). It knows how to talk with the hardward, what is the resolution of the screen, is a keyboard attached. The bios is read only; #Underneath the bios was have the hardware. This is the horrible stuff to do with voltage etc. #When inventing machine decide what is a 1 and what is a 0; #Operating system filled with computer science; ##ALGORITHMS #Describe the efficiency of an algorithm using bigO notation; O(N) #Here if we double n the whole process will take twice as long!; O(N^2) #Exponential, as N increases the amount of time increases by the square of that number; ##A hash is setup internally so that you can looksomething up in that straight away; ##BINARY SEARCH #If you are looking through a phone book, open it half way along and work out which half you need to continue to search through; #You can search for things in close to constant time; #Binary search needs to be in order; N = number of items in the sequence; log 2 N steps #Not double, but greater than linear; ##RECURSION #Functional Javascript; #Regular Expression; #If you push too many things onto the stack, the stack level can go too deep; #2195 times into the stack before it runs out of memory; var sayHi = function(){ #Applied recursion instead of using setInterval; ZETAFLEET; window.setTimeout(function(){ console.log('Hi') sayHi(); }, 1000); } sayHi(); def factorial_i(n) product = 1 while n > 1 product = product * n n -= 1 end product end factorial_i(7) ##FIBONACCI def fibaonacci_i(n) a = 1 fib = b = 1 while (n > 2) fib = a + b a, b = b, fib #Ruby lets you use parrallel assignment; n -= 1 end fib end fibonacci(5) def fibonacci_r(n) if n == 1 || n == 2 1 else fibonacci_r(n - 1) + fibonacci_r(n - 2) end end fibonacci(5) #FRACTAL ##JQUERY2 #Does not work in IE7, therfore you need to use 1.11 and not 2 if you need to support IE8; ##RESOURCES #The Little Schema; #yayQuery.com