As computer programming started to get popular and evolve in the 1960’s and 70’s, programmers created scripting languages so that they wouldn’t have to compile code. A script is a program that executed by another program called an interpreter, skipping the whole compilation step.

In the late 80s, the Python programming language was invented by Guido Van Rossum. It was based off another scripting language called ABC, and the name ”python” came from one of his favorite TV shoes called Monty Python. Gudio wanted the language to be simple, powerful, and easy to read.

In 1994 Python 1.0 was released. It provided support for functional programming constructs derived from the Lisp programming language. In 2000 Python 2.0 was released, and it introduced automatic memory management and contained some features. In 2008, Python 3.0 was released to fix some language design issues from Python 2.0. Python 2.7 was previously the most popular version for many years, due to many third-party libraries support. Currently Python 3 is the most popular version of python.

Python is a free and open-source language.  There is a  large community of programmers and users that participate in defining the language and creating new interpreters.  In the last few years, Python gained the most popularity among all the other languages including Java and C++. It is currently one of the most popular programming languages today.

Computer hardware

The major hardware components of a computer are:

  • Processor
  • Memory
  • Storage devices
  • Input and output devices

Processor

A processor, also called a CPU (central processing unit), runs the computer’s programs. The CPU’s main parts include the arithmetic logic unit and control unit. The CPU reads, decodes, and executes program instructions and performs operations (by reading/writing data to/from memory). When you turn your computer on, a program called the BIOS (basic input/output system) sets up the computer’s basic hardware. The processor then executes another program called the operating system (OS), which allows users to concurrently run programs that interface with the computer's hardware. The CPU performs the fetch, decode, and execute cycle operations in order to process program information.

The CPU’s control unit fetches, from main memory, the next instructions in the sequence of program instructions. The instruction is encoded in the form of a number. The control unit decodes the instruction and generates an electric signal. The signal is routed to the appropriate component of the computer (such as the ALU, a disk drive, or some other device). The signal causes the component to perform an operation.

Memory

Main Memory, also called RAM (random-access memory), contains currently running programs and data used by those programs. RAM is divided into units called bytes (8 bits of 1s and 0s). Each byte in memory is assigned a unique number called an address. RAM is volatile, so if you turn the computer off, its contents are erased. A processor spends much of its time moving data between memory and storage. A common way to make a computer faster is to increase the RAM.

Storage devices

A storage device, or disk or hard drive, is any computer hardware that is capable of storing data. It is non-volatile, meaning you can store the data for a long time on the device. Common storage devices include a disk drive, solid-state drive, USB drive, external drive, or CD/DVD.

Input and output devices

Input devices collect data from the outside world. Common input devices include a keyboard, mouse, digital camera, or scanner Output devices send data to the outside world. Common output devices include printers, monitors. Some devices such as disk drives and touchscreens perform both input and output and are called I/O devices.