COMP101: Introduction to Computing Exhaustive Study Notes
Course Overview and Institutional Framework
Fundamentals and Scope of Computing
Definitions of Computing:
Computing is the process of using computer technology to complete a given goal-oriented task.
It encompasses the design and development of software and hardware systems for a broad range of purposes, often structuring, processing, and managing any kind of information.
It serves to aid in the pursuit of scientific studies, the creation of intelligent systems, and the production and utilization of different media for entertainment and communication.
From an engineering science perspective, computing is defined as the systematic study of algorithmic processes used to describe and transform information.
Contextual Domains and Sub-Fields:
Computing possesses specific meanings depending on the context and specialized field in which it is applied.
Major specialized applications falling under the general umbrella of computing include:
Cloud computing
Social computing
Ubiquitous computing
Parallel computing
Grid computing
Conceptual Definition of a Computer
Core Technical Definitions:
Computer is defined as a programmable electronic device that stores, retrieves, and processes data. It is a device or machine used for making calculations or controlling operations that are expressible in numerical or logical terms.
Historical Evolution of Computing Devices
The Abacus:
Etymology and Origin: Greek word abax, meaning "tabular form." Invented in ancient Babylon between and .
Significance: Recognized as the first counting machine.
Geographic Reach: Historically utilized across Europe, China, and Russia.
Physical Architecture:
Constructed as an instrument to calculate or count by using sliding counters along vertical rods.
A horizontal crossbar running perpendicular to the vertical rods divides them into unequal sections.
Heaven Beads: The beads positioned above the horizontal crossbar.
Earth Beads: The beads positioned below the horizontal crossbar.
Function: Used primarily for executing basic arithmetic operations.
The Pascaline:
Invented by a French matheimatician-philosopher
Blaise Pascal : Designed and constructed by the and .Operational Purpose: Built as one of the first gear-based adding machines to assist with the substantial manual calculations required for tax computing.
Functional Limitations: Restricted strictly to addition and subtraction operations, executed by physically manipulating its mechanical dials.
The Difference Engine:
Inventor and Timeline: Unveiled in by the English mathematician Charles Babbage ().
Mechanical Structure: Represented the initial phase of his envisioned calculating machine, utilizing ten-position gears to represent decimal digits.
Project Outcome: Babbage ultimately abandoned the project due to the extreme complexity of its engineering alongside other compounding factors.
Vacuum Tubes:
Development: Developed by John Ambrose Fleming in ; alternatively termed an electron tube or valve.
Physical Construction: A glass tube from which internal gas has been completely evacuated to create a vacuum, containing internal electrodes to control the flow of electrons.
Computing Utility: Served in early computers as an electronic switch or amplifier, allowing systems to transition away from mechanical switching and significantly accelerating the speed of electronic current state switching.
Wider Industry Applications: Extensively deployed across radios, televisions, radar equipment, and telephone networks during the first half of the .
Colossus:
Engineering Timeline: Designed and constructed over an eleven-month period by Tommy Flowers at the Post Office Research Station in Dollis Hill, Northwest London.
Deployment and Assembly: Following successful functional testing, Colossus Mk 1 was delivered to Bletchley Park in late December / January .
Assembly Personnel: Assembled on-site by Harry Fensom and Don Horwood, becoming fully operational in early February by physicist John Mauchly to address the U.S. Army's need to calculate complex wartime ballistics tables.\n * **Construction Timeline**: Built between 19431945$.
Operational Milestone: Recognized as the first large-scale computer to operate at electronic speeds without being hindered by mechanical moving parts.
Computational Output: Over its decade-long operational life (which ended due to a lightning strike in ), ENIAC may have executed more total calculations than all of humanity had performed up to that point.
EDVAC (Electronic Discrete Variable Automatic Computer):
Historical Significance: Designed in , constructed in the , and installed at the U.S. Army's Ballistics Research Laboratory in Maryland in August of .
Binary Architecture: Stood as one of the earliest large mainframe computers and was the first mainframe to represent numbers using binary systems rather than decimal systems.
Technical Specifications:
Operated as a binary serial computer.
Featured a serial memory capacity of approximately .
Utilized magnetic tape as its primary data medium.
Demonstrated high operational reliability, running continuously for over per day.
EDSAC (Electronic Delay Storage Automatic Calculator):
Development: Created at Cambridge University in Britain, running its first functional programs in 1949$.\n * **Historical Milestone**: Became the first stored-program computer in regular operational use, marking the shift of computing from an experimental test to a functional tool.\n * **Memory Architecture**: Utilized mercury delay line memory (a technology originally developed for radar displays that provided memory storage for many first-generation computing systems).\n\n* **UNIVAC 1 (Universal Automatic Computer)**:\n * **Creators**: Achieved as a major technological milestone by Dr. Presper Eckert and Dr. John Mauchly.\n * **Execution Speeds**:\n * **Add time**: 120 ext{ } ext{microseconds}\n * **Multiply time**: 1,800 ext{ } ext{microseconds}\n * **Divide time**: 3,600 ext{ } ext{microseconds}$$
Core Characteristics of Computers
Speed: Computes and processes operations at extremely high velocities.
Storage: Maintains the capacity to store vast quantities of data.
Accuracy: Delivers extremely high precision and correctness in output results.
Versatility: Capable of executing diverse tasks ranging from simple calculations to complex operations.
Automation: Operates autonomously to execute complex sequences of instructions across different programs once programmed.
Diligence: Exhibits constant and earnest effort in application, performing operations continuously without degradation from fatigue or lack of concentration.
Computer System Hardware Categories
Definition: Hardware constitutes the physical, tangible parts of a computer system.
Input Devices:
Function: Used to feed raw data into the system, generating input signals and allowing users to enter text, images, and audiovisual content, as well as enabling file transfers between machines.
Processing Devices:
Function: Performs the core processing task of transforming raw data instructions into meaningful information for practical application.
Key Hardware Examples:
Central Processing Unit (CPU)
Graphical Processing Unit (GPU)
Microprocessor
Sound Card
Video Card
Output Devices:
Function: Disseminates data and presents the final processed information to users in human-understandable formats (visual, textual, soft copy, hard copy, audio, video).
Key Hardware Examples:
Printer
Monitor
Projector
Plotter
DVD or CD-ROM
Headphones
Sound Card
Braille Reader
Memory / Storage Devices:
Function: Retains data and information for short-term operations or long-term storage.
Primary Memory:
Refers mainly to Random-Access Memory (RAM) and all memory working in direct synchronization with the microprocessor.
Volatile: Retains data only while the system remains powered up.
Secondary Memory:
Encompasses media such as disk drives used for long-term retention.
Non-Volatile: Retains stored data permanently without requiring continuous electrical power.
Indirect Microprocessor Interaction: Data stored on secondary media does not communicate directly with the microprocessor; it must first be transferred into RAM before processing can occur.
Computer System Software Classification
Definition: Computer software is an intangible set of data, programs, directives, and attestation that performs predetermined operations, enabling users to interact with hardware systems.
Architectural Features:
Software interacts closely with the operating system, which functions as the primary software layer.
Written using high-level programming languages that provide abstract, flexible expressions closer to natural human languages than machine language.
System Software:
Function: Controls the internal operational mechanics of the computer primarily through the Operating System (OS) and manages peripheral hardware (monitors, printers, storage units).
Execution: Operates continuously in the background to handle basic low-level functions, allowing users to run high-level application software.
Key Components:
Operating System (OS)
Device Driver
Firmware
Programming Language Translator
Utility Software:
Function: A specialized branch of system software that carries out targeted maintenance tasks to preserve ongoing system operational efficiency.
Execution: Operates continuously in the system background.
Security Programs: Includes antivirus applications that scan for and eliminate computer viruses (either pre-installed or user-installed).
Optimization Programs: Includes disk defragmentation tools, system clean-up applications, and file compression utilities (typically built into the OS with direct hard drive access to maintain storage hygiene).
Application Software:
Function: Known as end-user or productivity programs, operating above the system software layer to assist users in completing specific tasks.
User Workflows: Used for online research, setting alarm clocks, graphic design, account authentication, and mathematical calculations.
Key Categories:
Word Processors
Database Software
Multimedia Software
Educational and Reference Software
Web Browsers
Academic Literature and References
Denning, P. J., & Martell, C. H. (2015). Great principles of computing. MIT Press.
Friedman, T. L. (2006). The world is flat: A brief history of the twenty-first century (Updated and expanded ed.). Farrar, Straus and Giroux.
Morley, D., & Parker, C. S. (2014). Understanding computers: Today and tomorrow (15th ed.). Cengage Learning.
Pressman, R. S., & Maxim, B. R. (2014). Software engineering: A practitioner's approach (8th ed.). McGraw-Hill Education.
Randell, B. (1982). The Colossus. Annals of the History of Computing, 5(3), 78–88.
Reynolds, G. W. (2018). Ethics in information technology (6th ed.). Cengage Learning.
Sebesta, R. W. (2012). Concepts of programming languages (10th ed.). Pearson.
Stern, N. (1981). From ENIAC to UNIVAC: An appraisal of the Eckert-Mauchly computers. Digital Press.
Vahid, F., & Lysecky, S. (2016). Introduction to computing systems: From bits and gates to C and beyond (2nd ed.). McGraw-Hill Education.
Williams, M. R. (1997). A history of computing technology (2nd ed.). IEEE Computer Society Press.