This document provides an overview of microcontrollers and computer hardware and software. It discusses the differences between microprocessors and microcontrollers, as well as complex instruction set computers (CISC) and reduced instruction set computers (RISC). The 8051 microcontroller architecture is presented, including its Harvard architecture with separate program and data memory, as well as common addressing modes and instruction sets. Computer software is defined as a set of instructions to solve a specific task.