1. Hardware Overview

Hardware are the physical parts of a computer that you can touch and feel. These are:

  • Motherboard: The main circuit board of the computer.
  • CPU (Central Processing Unit): The 🧠 of the computer.
  • Memory Modules: Temporary storage for data and instructions.
  • Storage Drives: Devices for data storage.
  • Graphics Card: Handles graphics processing for images and videos.
2. Software Overview

Software refers to the applications and data that instruct your hardware on how to perform tasks. Examples of software are: operating system, driver, utility, productivity software, and games. Software can be categorized into two categories: system software and application software. System software is: drivers, operating system, and application software is: games, applications [Discord, XboxApp, Chrome].

3. Hardware Components

In this section, we'll talk about various hardware components, their functions, and how they interact within a computer system.

3.1 Motherboard

The motherboard is the main printed circuit board [PCB] in a computer. It connects all essential components such as the CPU, RAM, and connectors.

3.2 CPU [Central Processing Unit]

The CPU is the 🧠 of the computer. It executes instructions as we talked about, and performs calculations necessary for running applications and operating the system.

3.3 RAM [Random Access Memory]

RAM, or Random Access Memory, serves as temporary storage for data and instructions required by the CPU while a computer is in operation. It provides quick access to this information, allowing the CPU to efficiently perform tasks and run programs.

3.4 Storage Drives

Storage drives, such as hard disk drives [HDDs] and solid-state drives [SSDs], are used to store data permanently. HDDs use spinning magnetic disks to store data, while SSDs use flash memory chips for faster data access.

3.5 Graphics Card [GPU]

The graphics card is responsible for rendering polygons, images, and videos on a computer monitor. It offloads graphics processing tasks from the CPU, which results in smoother performance for graphical applications, 3D rendering, and gaming

3.6 Power Supply Unit [PSU]

The power supply unit converts electricity into a form that the computer's components can use. It provides power to all the other components in the computer system.

4. I/O [Input/Output]

I/O, or input/output, refers to the methods by which data is transferred between the CPU [central processing unit] and external devices. These devices are: keyboards, mice, monitors, printers, and network adapters.

5. Analytical & Difference Engines

The Analytical Engine and the Difference Engine are seminal creations by our Charles Babbage; they're often considered the foundational designs for computers.

5.1 Analytical Engine

The Analytical Engine, conceived in the 1830s, was an ambitious mechanical general-purpose computer. It was specifically designed to perform various arithmetic and logical operations and could be programmed using punched cards. Though never fully constructed during Babbage's lifetime, its design laid the groundwork for modern computing concepts such as conditional branching, looping, and stored memory. The Analytical Engine was a groundbreaking innovation that anticipated many features of modern computers.

5.2 Difference Engine

The Difference Engine was designed earlier than the Analytical Engine and it was a specialized mechanical calculator. Its primary purpose was to automatically compute polynomial functions, a task that was error-prone and time-consuming when performed manually. The Difference Engine's innovative design utilized the method of finite differences to calculate polynomial values, making it a significant advancement in computational technology during the 19th century. While Babbage's complete designs were not fully realized during his lifetime, his contributions laid the groundwork for subsequent generations of computing machines.

6. Von Neumann's Architecture

Von Neumann architecture is named after the Hungarian-American mathematician and physicist John von Neumann. It is a design concept for modern computers that consists of three key components: the central processing unit, memory, and input/output devices.


In von Neumann architecture, both data and instructions are stored in the SAME memory unit, known as the von Neumann bottleneck. This architecture allows programs to be stored in memory and executed sequentially by the CPU, fetching instructions and data from memory when needed.


While von Neumann architecture has been fundamental to the development of modern computers, it is not without its limitations! One significant issue is the von Neumann bottleneck, where the speed of data transfer between the CPU and memory becomes a limiting factor in system performance. This bottleneck can lead to delays in processing and slower execution speeds, especially in tasks that require frequent access to memory.


Von Neumann architecture is also susceptible to security vulnerabilities such as buffer overflow attacks and code injection, where malicious code can exploit weaknesses in the system's memory management to execute unauthorized commands or gain access to sensitive data.


Even with all of these limitations, von Neumann architecture still remains the foundation of modern computing systems and has been massively improved with new innovations such as caching, pipelining, and parallel processing to mitigate the effects of the von Neumann bottleneck.

7. Architectures [x32, x64, x86, ARM]

Architectures like x32, x64, x86, and ARM are different types of blueprints that processors follow. They determine how a computer understands and executes certain instructions [AVX, AVX2, SSE,...].


x32, x64, and x86 are variations used in program counters [PC]. They handle different amounts of data at once, with x64 being the most common and powerful today.


ARM is another type of architecture commonly found in smartphones, tablets, and other portable devices. It's known for its energy efficiency and is primarily designed for mobile and low-power applications. However, it's also increasingly being adapted for use in newer PCs.

8. Difference between Hardware and Software

While hardware refers to the physical components of a computer, software refers to the programs and data that instruct the hardware on how to perform tasks. Hardware is tangible and physical, while software is intangible and stored in digital form.

9. Famous & Important People

Alan Turing was a British mathematician, logician, and computer scientist, played a pivotal role during World War II by leading efforts to decipher the German Enigma code, a task vital to the Allied victory. His contributions extended far beyond cryptography, as he is widely regarded as the father of theoretical computer science and artificial intelligence. Turing introduced groundbreaking concepts such as the Turing machine, a theoretical device that laid the foundation for modern computing. He also proposed the Turing Test, a criterion for determining a machine's ability to exhibit intelligent behavior, which remains influential in AI research to this day. For more information watch The Imitation Game.


Ada Lovelace was often recognized as the world's first computer programmer, collaborated with Charles Babbage on his mechanical general-purpose computer, the Analytical Engine. She crafted the first algorithm intended for machine processing, showcasing her visionary understanding of computers beyond mere calculation. While her contributions were underappreciated during her lifetime, Lovelace's work paved the way for modern computing. For further insights, consider watching "Conceiving Ada."


Charles Babbage was an English mathematician, philosopher, inventor, and mechanical engineer who originated the concept of a digital programmable computer. His difference engine and analytical engine designs are considered the forerunners of modern computers.


Tim Berners-Lee is a British computer scientist known for inventing the World Wide Web while working at CERN. His innovations democratized information access and transformed the way people communicate, collaborate, and access information online.


Grace Hopper was an American computer scientist and United States Navy rear admiral. She developed the first compiler for a computer programming language and popularized the idea of machine-independent programming languages, which led to the development of COBOL.


John von Neumann was a Hungarian-American mathematician, physicist, and computer scientist known for his contributions to game theory, quantum mechanics, and computing. He played a key role in the development of von Neumann architecture, a design concept used in modern computers.