************************************ The Digital World ************************************ The Engine Behind: Electricity ****************************** Main Inventions (Not discovery) - DC Current - Benjamin Franklin - AC Current - Nicolas Tesla The Beginning: The invention of Transistors ****************************************** - This is the greatest invention of the 20th century - You will understand why it is so in a few - https://cdn.sparkfun.com/assets/learn_tutorials/1/9/3/intro.png - Inventors - John Bardeen and Walter Brattain - Invented Transistors in 1947 - Why they invented transistors - For the purpose of current amplifications - How does it work? - Made up of semi-conductors (Mainly Silicon) - Pure Silicon is not the best conductor - Silicon has 4 electrons on its valence shell (14th element on the periodic table) - Silicons form covalent bond sharing the external electrons - Using a technique called doping, they can be changed to a better one (N-Type or P-Type dopping) - When you dope a silicon in N-P-N manner, a transitor is born - Electrons naturally migrate from the N side to the P side - Once small number of electrons flow, then further flow is ristricted because of the lack of required energy. - If we attach an external source, we can create a forward biased diod - When two diodes are connected together, aka a transistor, no matter which side we turn the external source, one will be reverse biased. Hence restricting the flow of electrons - But, if we apply a second source, just enough to start the flow of electrons, it then creates more of the other available electrons to follow. - Which leads to current amplification - Depending on the amount of voltage you apply to the transistor, it acts as an ON or OFF switch. - When expresed in binary, ON is 1 and OFF is 0. **** Hence the Silicon Valley named after this development **** How Transistors lead to the creation of computers ************************************************* First Step: Logic Gates *********************** - AND Gate - OR Gate - NOT Gate - NAND Gate - NOR Gate Second Step: Flip-Flops ************************ - Combination of logic gates, in a way that it remembers states - Led to the ability of storing 0s and 1s - Bit - 1 bit of data in the very early days https://www.reddit.com/r/pics/comments/1ak85m/my_professor_showed_us_1_byte_of_data_from_one_of/ - Byte - Registers - To put things in perspective - We said one byte is a collection of 8 bits - Therefore one byte requires eight flip-flops - One Flip-Flop is requires 3 - 4 Transistors - A modern day computer has around 250GB storage capacity - Try to express this in terms of Transistors Third Step: Information Storage ******************************* - Numbers storage - Word Storage - Image Storage - Video Storage - Sound Storage Fourth Step: Data Processing ******************************** - Basic Logic Circuits - Combination of Logic gates arranged in a certain way to perform certain tasks - Ex: Binary Adder https://www.electronics-tutorials.ws/combination/comb_7.html - A set of complex Logic Circuits is what we call a processor - Basically, a processor is an electronic chip containing millions and millions of logic gates, and is capable of interpreting instructions. *** *** *** *** *** *** *** *** *** *** *** *** The machine that can store and process data is basically what a computer is *** *** *** *** *** *** *** *** *** *** *** *** Increasing the speed of processors *********************************** - To perform computation, the processor needs inputs. - These inputs are stored in your hard-disk. - Which has a huge number of registers - Takes a while to find the requested data - RAMs - Serve as facilitators - Caches - Serve as facilitators - A typical computer would have - 250GB Hard disk - 4GB RAM - 1GB Cache - The higher the size of the RAM and Cache the faster the computer is. But it becomes more expensive at the same time - All these are interconnected on what we call a "Mother Board" The Software Part: ******************* - Any software is just a bunch of 0s and 1s arranged in a different way - Theoretically, you can write a Software entirely using just 0s and 1s - Writing a code just using 0s and 1s is called "Machine Language" - The problem with using 1s and 0s is, we are not accustomed to use them to read and write. We use alphabets. 0s and 1s are for the machines - For that reason, we needed to find a middle ground to communicate with the machines - Hence the rise of Assembly Languages - Which later led to Programing Languages - IBM first created FORTRAN in 1954 - C was then created by Bell Laboratories of AT&T - Java was developed at Sun Microsystems (Later acquired by Oracle) in early 1990s - C# Was developed at by Microsoft in 2000 - JavaScript was developed by Netscape communications is 1995 - Ex: http://people.uncw.edu/tompkinsj/242/BasicComputer/AddTwoNumbers.htm Operating Systems ******************* - As computers get better and better, streamlining development, scheduling, and execution of jobs got more complex - Which led to developing Operating Systems (OS) - The primary job of an OS is to manage the resources of the machine - Interacts with the raw hardware - Management and scheduling - Manage user processes - Provides user interface/GUI (Graphical user interface) - The OS controls what is to be sent to the processor, and it fetches and stores the data manipulated. - The processor is simply a chip which does the calculations it is ordered to do by the OS. Computer and Mobile Applications ******************************** - An Application is a computer program designed to help people perform an activity - Ex: - Calculator - Microsoft Office word, excel, power point - Chrome, Firefox - Sublime text editor - Over a billion of them are out there - Usually written using high level programing Languages - C - C++ - JAVA - C# - Etc ... - Our job is to choose the best software that is going to help us achieve what we want to get out of the computer Best Applications for a Web Developer ************************************** - Editor: - Sublimetext - Browser - Chrome - Chrome developers tool (https://www.youtube.com/watch?v=x4q86IjJFag) - Source control repository - Github - Local Server - LAMP/WAMP - Photo editing - Adobe photoshop - FTP CLient - Cyberduck Conclusion *********** - In conclusion, mastering your computer means, mastering your choice of operating system - The faster your speed is the better - Try to understand everything about your Operating System - Master your operating system: Windows: https://www.youtube.com/watch?v=1TneCqdEZuU (2hrs) https://www.youtube.com/watch?v=FZqKyhfD7-E (40 mins) Mac: https://www.youtube.com/watch?v=meb0PABGZ-8 (2hrs) https://www.youtube.com/watch?v=_7wmVxUCzs0 (45 mins) Next Class *********** ************************************ The making of the Internet ************************************