Comprehensive Study Guide to Fundamentals of Computer Science
- Academic Course Details:
- Course Code: INF/01.
- Course Title: Fondamenti di Informatica (Fundamentals of Computer Science).
- Instructor: Prof. Remo Misisca.
- Level & Term: First Year, First Semester, Academic Year 2025–2026.
- Primary Reference Textbook: Informatica di base (6th Edition), authored by Dennis P. Curtin, Kim Foley, Kunal Sen, and Cathleen Morin (McGraw-Hill Education).
- Formal Definitions of Computer Science (Informatica):
- Zingarelli Dictionary Definition: Science and technique of data processing and, generically, the automatic treatment of information.
- Wikipedia Definition: The study of the theoretical foundations of information and computation, along with practical techniques for their implementation and application in computer systems.
- ACM (Association for Computing Machinery) Definition: The systematic study of algorithms that describe and transform information: their theory, analysis, design, efficiency, implementation, and application.
- Synthetic Summary Definition: Science of the representation and processing of information.
- The Two Core Dimensions of Computer Science:
- Technological soul: Electronic computers, hardware architecture, and interconnected processing systems.
- Logical / Methodological soul: Methods, algorithms, and formal logic for problem-solving and information management.
- Distinction Between Data and Information:
- Data (Dato): Elementary, raw, uninterpreted elements directly present to knowledge without context (e.g., text, numbers, sounds, photographs, or video clips). Data does not explain itself. Examples include daily product sales quantities, prices, dates, or item codes. The standalone string "Verdi" or number 15 provides no intrinsic context on its own.
- Information (Informazione): A collection of processed data organized and presented within a specific context to fulfill a practical human need (e.g., letters, tables, or multimedia presentations). If "Verdi 15" is provided in response to "Who is the head nurse and in which office room are they located?", the information content becomes explicit and meaningful.
- The Information Processing Cycle (Ciclo di Elaborazione):
- Dato (Data) → Elaborazione (Processing) → Informazione (Information).
- Data (Dato): Raw uninterpreted input (e.g., individual sales figures, prices, dates).
- Processing (Elaborazione): The system process (executed by a human or computer) that transforms raw data into structured output using tools like spreadsheets (e.g., Microsoft Excel, Google Sheets) to calculate sums, compute averages, and construct charts.
- Information (Informazione): The meaningful result of processing (e.g., summary tables and analytical charts highlighting top-selling items or sales trends).
- Feedback Loop (Retroazione): Processed information can serve as new input data for subsequent processing phases (e.g., calculated daily sales averages become input data for sales forecasting models).

- Representation Dynamics of Information:
- Multiple Representations for the Same Information: The numeric value 18 can be expressed in decimal notation as 18, in Roman numerals as XVIII, in binary as 100102, or represented visually by a graphic reading 18∘C.
- Same Representation for Multiple Information Concepts: The written value 18 can denote distinct information domains depending on context, such as a temperature measurement (18∘C), an individual's age (18 years), or a geographical distance (18 km).
- Tools for Information Handling:
- Formal tools: Abstract mathematical and logical models (e.g., 2+2=4).
- Material tools: Physical processing systems, historical mechanical devices, and modern electronic computing hardware.
Hardware, Software, and Digital Networks
- Hardware vs. Software Definitions:
- Hardware: The physical and electronic components comprising an information processing system.
- Software: The collection of executable programs consisting of sequences of elementary instructions that run on a hardware system. Software processes input data to generate output results.
- Classification of Software:
- Software di Base (System Software): Fundamental programs required for machine startup, system initialization, and hardware resource management (e.g., BIOS, Operating System, compilers).
- Software Applicativo (Application Software): User-installed programs designed to perform specific productivity or domain-specific tasks (e.g., word processors, graphics tools, web browsers).
- Convergence to ICT:
- IT: Information Technology.
- CT: Communication Technology.
- ICT: Information and Communication Technology.
- Computer Networks and Internet Foundations:
- Computer Network: A telecommunication network utilizing packet switching, composed of hardware nodes and switching software connected by communication channels (links). It enables data exchange, file transfer, email transmission, and resource sharing across terminal devices (hosts).
- Internet: A global public-access network interconnecting heterogeneous computer networks using the TCP/IP suite (Transmission Control Protocol / Internet Protocol). TCP/IP serves as the common network language ensuring cross-platform interoperability regardless of underlying hardware or software architectures.
History of Computing Devices and Mechanical Systems
- The Abacus (2600 BC): Early mechanical device used for counting and arithmetic calculation.
- Leonardo da Vinci's Mechanical Calculator (1500):
- Concept featuring interconnected gear wheels where each gear possessed 10 teeth representing decimal digits (0 to 9).
- Transmission Principle: When a gear completed one full rotation (9→0), it engaged and advanced the adjacent higher-order gear wheel by 1 dither, establishing the mechanical automatic carry mechanism.
- Constructed with brass gears and wooden axles driven manually to eliminate manual calculation errors; anticipated mechanical calculating machines by over 150 years.
- The Slide Rule (Regolo Calcolatore, 1621):
- Invented by William Oughtred based on John Napier's discovery of logarithms.
- Consists of sliding logarithmic scales; converts complex multiplication and division operations into physical additions and subtractions of logarithmic lengths.
- Remained the primary portable analog calculation tool used by engineers, architects, and NASA scientists until the 1970s.
- The Pascaline (Pascalina, 1642):
- Invented by Blaise Pascal to automate his father's tax calculation work.
- First operational mechanical calculator, using internal gear wheels (0–9) and automatic carry mechanisms for decimal addition and subtraction.
- Charles Babbage's Mechanical Engines (1822–1833):
- Difference Engine (1822): Designed to compute polynomial tables automatically without human error (specialized single-function machine).
- Analytical Engine (1833): Introduced core concepts of modern general-purpose computing, including memory storage ("Store"), a processing engine ("Mill"), and program instruction input via punched cards.
- Ada Lovelace: Collaborated with Babbage and wrote the first machine algorithm for the Analytical Engine, becoming the first computer programmer in history.
- The Turing Machine (1936):
- A theoretical computing model devised by Alan Turing, consisting of an infinite tape divided into cells, a read/write head, a finite set of symbols, internal memory states, and a transition rule set.
- Proved mathematically that any algorithmic calculation can be mechanized.
- Church-Turing Thesis: The set of problems solvable by any effective mechanical computation method is identical to the set of problems solvable by a Universal Turing Machine.
- Von Neumann Stored-Program Concept (1940s):
- Introduced in the Princeton IAS machine (1947).
- Eliminated physical re-cabling by storing both executable program instructions and working data inside the same unified memory structure.
- Transition from Wired to Software Control:
- Wired Programs (1940s–early 1950s): Early systems like ENIAC required physical rewiring of patch panels and switches to change programs. Hardware and software were unified.
- ENIAC (1943–1955): First large-scale general-purpose electronic computer. Lacked stored-program memory; required setting 6000 manual switches over multiple days to program new tasks. Non-von Neumann; water/air cooled; suffered vacuum tube failures every 5.5 hours on average. Decommissioned October 2, 1955 at 23:45.
- EDVAC (1951–1961): Electronic Discrete Variable Computer. Stood over 2 meters tall, covered 46 m2, contained 3500 vacuum tubes (19 distinct types), 27000 electronic components, and acoustic delay line memory (128 lines, 58 cm long, storing 384 Bytes per line for a primary capacity of 49152 Bytes). Included auxiliary magnetic drum storage; operated at Aberdeen Proving Ground until 1961
- Commercial Computing and Microprocessors:
- UNIVAC (UNIVersal Automatic Computer): First commercial electronic computer produced in the United States.
- Silicon Transistor (1954, Texas Instruments): Replaced fragile vacuum tubes.
- First Microprocessor (1969–1971): Designed by Marcian "Ted" Hoff at Intel; commercialized in 1971 as the Intel 4004 (containing 2300 integrated transistors on a single silicon chip).
- Moore's Law: Empirical law stating that the density of transistors integrated on a single microchip doubles approximately every 18 months, doubling compute performance. Modern CPUs integrate approximately 2.5×109 (2.5 billion) transistors.
Computer Systems Classification
- Supercomputers: Massive computing systems utilizing parallel and distributed processing architectures to deliver maximum calculation speed and memory capacity. Used in meteorology, nuclear physics, AI, and complex scientific simulations.
- Mainframes: Large-scale centralized enterprise computers designed to process massive transaction volumes and support thousands of concurrent users with extreme reliability and fault tolerance.
- Servers: Dedicated networked computers configured to provide centralized network services (e.g., database, web hosting, file storage) to client endpoints.
- Minicomputers (Historical): 3rd-generation systems (1960s–1970s) built using integrated circuits; smaller and cheaper than mainframes, serving as precursors to mid-range servers.
- Personal Computers (PC): Microprocessor-driven computers designed for individual general-purpose use across domestic, professional, and educational environments:
- Desktop: Fixed desk-bound personal computer unit.
- Workstation: High-performance personal computer optimized for CAD design, 3D graphics, and heavy numerical calculation.
- Notebook / Laptop: Compact, integrated portable personal computer containing built-in screen, keyboard, and battery power.
- Tablet PC: Hybrid mobile computing device featuring touchscreen interaction.
- Mobile Devices: Pocket-sized computer units (Smartphones, Tablets, PDAs) running mobile operating systems; featuring integrated cellular/wireless connectivity, onboard sensors, GPS, and personal information management applications.
- Terminals and Network Computers:
- Dumb Terminals: Input/Output access devices lacking local CPU processing power, reliant entirely on a central mainframe.
- Smart Terminals: Endpoint devices possessing limited local processing capability.
- Network Computers: Diskless systems engineered to execute applications remotely via cloud infrastructure or server networks.
Signals, Measurement Units, and Character Coding
- Analog vs. Digital Signals:
- Analog Signal: Continuous wave signal carrying information across infinite intermediate physical values (maximums, minimums, and continuous gradients); highly sensitive to ambient electromagnetic interference.
- Digital Signal: Discrete signal operating strictly across two binary states (0 and 1, Low and High, ON and OFF, TRUE and FALSE); highly resilient to transmission noise and easily reconstructed.
- Digital Signaling Techniques:
- Manchester Encoding (used in 10 Mb/s Ethernet networks): Bit 0 is defined by a high-to-low voltage transition at mid-bit period; Bit 1 is defined by a low-to-high voltage transition at mid-bit period.
- Units of Information Measurement:
- 1 bit (Binary Digit): Elementary binary unit taking values 0 or 1
- 1 Byte=8 bits: Represents a single alphanumeric character (28=256 distinct combinations, integer values 0 to 255
- Binary Multiples (Scaled by powers of 210=1024
- 1 Kilobyte (KB)=210 Bytes=1024 Bytes.
- 1 Megabyte (MB)=220 Bytes=1024 KB=1048576 Bytes.
- 1\text{ Gigabyte (GB)} = 2^{30}\text{ Bytes} = 1024\text{ MB}$.\n * 1\text{ Terabyte (TB)} = 2^{40}\text{ Bytes} = 1024\text{ GB}$.
- 1\text{ Petabyte (PB)} = 2^{50}\text{ Bytes} = 1024\text{ TB}$.\n * 1\text{ Exabyte (EB)} = 2^{60}\text{ Bytes} = 1024\text{ PB}$.
- Character Coding Standards:
- Code: Mapping rule associating physical entities or characters with symbol sequences: entities→sequences of symbols.
- ASCII (American Standard Code for Information Interchange, published by ANSI in 1968): 7-bit encoding standard covering 128 characters.
- Extended ASCII: 8-bit encoding standard covering 256 characters (includes regional accented characters and graphical symbols).
- EBCDIC (Extended Binary Coded Decimal Interchange Code): IBM 8-bit character encoding system.
- Unicode: Comprehensive international standard supporting up to 96000+ characters across global scripts and alphabets.
Von Neumann Architecture and CPU Structure
- Foundational Fathers: Alan Turing (formalized computability via the Turing Machine) and John von Neumann (formulated stored-program hardware architecture).
- Subsystems of the Von Neumann Architecture:
- Central Processing Unit (CPU / Microprocessor): Core execution unit containing:
- Control Unit (CU): Fetches instructions from memory, decodes opcodes, controls internal registers, and coordinates system timing and data flow.
- Arithmetic Logic Unit (ALU): Executes binary mathematical calculations (addition, subtraction) and logical evaluations (AND, OR, NOT).
- Internal CPU Registers: High-speed temporary storage cells inside the processor die, including Program Counter (PC), Instruction Register (IR), Memory Address Register (MAR), Memory Data Register (MDR), and Accumulator (ACC).
- Main Memory (Memory Unit / RAM): Unified addressable memory holding both executable instruction codes and active dataset variables.
- Input / Output Subsystem (I/O): Interfaces managing communications between the computer system and external peripherals.
- Interconnection System Bus: Shared physical bus carrying binary signals among CPU, RAM, and I/O controllers.

- The Von Neumann Bottleneck: Because instruction codes and data variables travel across the same shared system bus, the CPU cannot read an instruction and read/write data simultaneously, creating a physical processing throughput constraint.
- Processor Machine Cycle (Instruction Cycle):
- FETCH: The CU retrieves the next instruction byte from the memory address specified by the Program Counter (PC) and loads it into the Instruction Register (IR); PC is incremented.
- DECODE: The CU decodes the instruction opcode stored in the IR and identifies necessary operand addresses.
- EXECUTE: The ALU or CU executes the operation and writes back results to CPU registers or main RAM.
Processor Hardware, Buses, and Motherboard Interfaces
- CPU Architecture & Performance Elements:
- Microprocessor: Complete CPU manufactured on a single silicon chip populated with integrated transistors acting as electronic logic switches (1=ON, 0=OFF).
- Clock Speed: Internal system timing generator measuring CPU execution cycles in Megahertz (MHz, millions of cycles/sec) or Gigahertz (GHz, billions of cycles/sec).
- Microprocessor Evolution (Intel x86 Family): 8086/8088 → 286 $
ightarrow$ 386 $
ightarrow$ 486 $
ightarrow$ 586 (Pentium) $
ightarrow$ Multi-Core processors.
- Coprocessors: Auxiliary processing units offloading specialized workloads from the primary CPU (e.g., GPU for graphics, audio coprocessors, video processing engines, and mathematical Floating-Point Units).
- Parallel Multiprocessors: Multi-core architectures sharing main memory and system buses to execute parallel threads concurrently.
- System Bus Architecture:
- Bus Dati (Data Bus): Bidirectional data bus transferring binary data values between Memory ↔ CPU and CPU ↔ I/O interfaces.
- Bus Indirizzi (Address Bus): Unidirectional address bus driven by the CPU to select specific physical memory cells or I/O ports.
- Bus di Controllo (Control Bus): Control lines conveying read/write commands, interrupt requests, bus arbitration, and system clock pulses.

- Motherboard Ports and Interface Expansion:
- Expansion Slots: PCIe and PCI motherboard slots supporting modular add-in expansion cards.
- Legacy Interface Ports: Serial ports (DB-9, used for modems) and Parallel ports (DB-25, used for legacy printers).
- Modern Interface Ports: USB (Universal Serial Bus) and FireWire (IEEE 1394) offering high-speed serial transfer, peripheral daisy-chaining, and automatic Plug & Play configuration; HDMI, DVI, and VGA for video display output; Ethernet (LAN RJ-45) network ports; PS/2 ports for keyboard/mouse; analog/digital S/PDIF audio jacks.
Memory Hierarchy, Primary Storage, and Secondary Storage
- Primary Memory Components:
- ROM (Read Only Memory): Non-volatile primary memory storing permanent system startup firmware (BIOS).
- RAM (Random Access Memory): Volatile main memory allowing fast read/write random access to any storage cell.
- DRAM (Dynamic RAM): Main system memory constructed of transistor-capacitor cells requiring dynamic refresh cycles.
- SRAM (Static RAM): High-speed memory constructed of flip-flops; requires no refresh cycles; utilized for high-speed CPU Cache memory.
- CPU Cache Memory Architecture:
- Level 1 (L1) Cache: Primary ultra-fast cache integrated directly inside the CPU core die.
- Level 2 (L2) Cache: Secondary high-speed cache memory located on or adjacent to the CPU chip.
- Level 3 (L3) Cache: Shared memory cache supporting multi-core architectures.
- Cache Operations: A Cache Hit occurs when requested memory data is located in high-speed cache; a Cache Miss forces the CPU to fetch data from slower main RAM.
- Virtual Memory Subsystem: Operating system mechanism borrowing secondary hard disk space (pagefile/swap space) to extend physical RAM capacity. Allows systems to execute applications larger than physical RAM at reduced processing speeds.
- Buffer / Clipboard Storage: OS-managed volatile RAM buffer used to transfer data snippets between running applications or document locations (e.g., Copy-Paste functions).
- Secondary Memory / Mass Storage (Memorie di Massa):
- Characteristics: Non-volatile, permanent, large-capacity storage with access speeds slower than RAM.
- Key Metrics: Storage Capacity, Access Time, Transfer Rate.
- Historical Benchmark: 1957 IBM RAMAC 305 hard disk system (occupied a 9 m×15 m floor area, contained 50 magnetic platters of 24 inches diameter, stored 5 MB total capacity, cost \\$120000, leased for \\$35000/\text{year}). Modern comparison: A 1 TB hard disk costs ≈€40 (0.01 cents per 250 MB); a 32 GB USB Flash Drive costs ≈€20.
- Access Modes: Direct / Random Access (Hard Disks, SSDs, Optical Disks) vs. Sequential Access (Magnetic Tape drives requiring data to be read in stored order).
- Magnetic Disk Mechanics: Microscopic magnetic particles receive magnetic alignments matching positive or negative polarities (1 and 0). Disks are formatted into concentric Tracks, vertical Cylinders, radial Sectors, and file Clusters.
- Hard Disk Hardware: Rotation speed (e.g., 7200 rpm), Seek time (head movement time), Latency time (rotational delay). Disk Controllers: IDE, EIDE (obsolete), SATA, and RAID controllers (RAID 1 disk mirroring, RAID 5 striping with distributed parity).
- Optical Storage Mechanics: Focused laser light reads microscopic pits and lands etched onto a reflective layer protected beneath a transparent substrate. Types: ROM (read-only), WORM / R (Write Once Read Many), Erasable / RW (ReWritable).
- Solid-State & Flash Storage: Non-volatile electronic flash memory (USB Pen Drives, SD / CompactFlash cards, Smart Cards, SIM cards, SSDs).
- Data Backup and Restore: System procedures copying data to secondary or offsite media to recover from disk failure, theft, malware, deletion errors, power surges, or fire. Storage locations include offsite physical drives and Cloud platforms.
- Input Peripherals:
- Keyboards: Standard desktop QWERTY keyboards, Ergonomic keyboards designed to prevent repetitive strain injuries, and Virtual/Touchscreen keyboards displayed on-screen.
- Direct Input Devices:
- Optical Scanners: Convert printed pages into digital raster files using linear Charge-Coupled Devices (CCD).
- Barcode Readers: Optical pen or laser devices reading Code 128 vertical bar widths into binary, alphanumeric codes.
- Voice Recognition: Speech input digitizing voice acoustics into readable text or execution commands.
- Advanced Direct Input: 3D Scanners (digitizing human geometry), CT (Computed Tomography) imaging, Holograms, and Biometric scanners (fingerprint, iris).
- Pointing Devices: Mouse, Trackball, Touchpad, Touchscreen interface.
- Output Principles and Displays:
- Pixel (Picture Element): Smallest controllable grid point on a display monitor. Screen resolution is defined by pixel counts (e.g., 640×480, 1024×768).
- Printer Resolution: Quality measured in dpi (dots per inch).
- Color Palette & Color Depth: Number of memory bits assigned to record color for each pixel:
- 1 bit color depth: Black and White (21=2 states).
- 24 bit color depth: True Color (224≈1.6×107 or 16 million colors).
- Memory Requirement Calculation: Memory=Width (pixels)×Height (pixels)×Color Depth (bits).
- Example 1: A monochrome 640×480 image requires 640×480×1 bit=307200 bits=38.4 KB (≈37.5 KiB).
- Example 2: A True Color 1024×768 image requires 1024×768×24 bits=18874368 bits=2359296 Bytes=2.25 MB (≈18.87 Mb).
- Scalable Fonts and WYSIWYG: Modern fonts store mathematical vector formulas representing character outlines, rendered to screen or paper via rasterization. Ensures exact WYSIWYG (What You See Is What You Get) parity between display screens and printed pages.
- Printing Technologies:
- Laser Printers: High-speed output (1200 dpi), managed by Page Description Languages like HP PCL (Printer Control Language, e.g., PCL 5), utilizing onboard RAM buffers.
- Color Printing Models: Subtractive primary colors CMYK (Cyan, Magenta, Yellow, blacK).
- Dithering / Halftoning (Mezzatinta): Process placing micro-dots of primary inks into small cells, allowing the human eye to perceive continuous color gradients.
- 3D Printers: Additive manufacturing devices extruding melted thermoplastic filaments layer-by-layer based on 3D CAD software models.
- Desktop Publishing (DTP): Professional layout software (e.g., QuarkXPress) establishing rigid absolute positioning coordinates, automated multi-column text flows, automatic index generation, and special symbol insertion.
Operating System Principles and Core Architecture
- Operating System (OS) Definition: System software acting as an intermediary interface between computer hardware components and user application software.
- System Boot Sequence (Bootstrap):
- Power-On: CPU starts and executes the BIOS (Basic Input/Output System) firmware stored in non-volatile ROM.
- POST (Power-On Self Test): Diagnostic routine verifying system hardware (motherboard, GPU, RAM modules, keyboard, storage drives). Successful completion yields an audible confirmation beep.
- Bootstrap Execution: BIOS locates the boot device (HDD/SSD boot sector) and loads the OS Kernel into RAM.
- Kernel Initialization: Control passes to the OS Kernel, which loads hardware drivers, starts system background services, and launches the user interface.
- User Interface Types:
- Character User Interface (CUI / CLI): Text-based command shell (e.g., MS-DOS shell executing
DIR *.*). - Graphical User Interface (GUI): WIMP interface (Windows, Icons, Menus, Pointer) originated at Xerox PARC (1970s, Xerox Star 1980); popularized by Windows, macOS, iOS, and Android.
- Specialized Interfaces: Stylus-pen interfaces, Touchscreen interfaces, and Conversational Voice Interfaces (Siri, Cortana, Google Assistant, Alexa).
- Onion Skin OS Architecture (Modello a Buccia di Cipolla - H.M. Deitel, 1983):
- Inner Core: Hardware.
- Layer 1: Kernel (Nucleo) - CPU process scheduling and dispatching.
- Layer 2: Memory Manager - RAM allocation, deallocation, and swapping.
- Layer 3: Device Drivers / Peripheral Manager - Hardware I/O abstraction.
- Layer 4: File System - Folder structures and file access controls.
- Layer 5: Command Interpreter / Shell - User interface environment.
- Outer Layer: Application Programs.

- Fundamental OS Functions:
- Resource Management: Allocating CPU time, main memory, and peripheral hardware among competing software tasks.
- Multitasking: Executing multiple independent software programs concurrently.
- Multithreading: Running multiple concurrent execution threads within a single program process.
File System Organization and Disk Utilities
- File System Role: OS component responsible for persistent data storage, file access, directory structuring, and security permissions on secondary storage devices.
- File Concepts:
- User Perspective: A logically related collection of structured data bound to a unique filename stored on secondary media.
- OS Perspective: A linear sequence of binary bytes.
- File Attributes & Metadata: Filename, Extension/Type, Directory Path, File Size (in Bytes), Creation Timestamp, Modification Timestamp, Access Permissions, Attributes (Read-Only, Hidden, System, Archive).
- Directory Hierarchy and File Paths:
- Tree Hierarchy: Logical organization dividing mass storage into nested directories and subdirectories (folders).
- Drive Designation (Windows):
A: and B: reserved for Floppy drives; C: primary OS storage volume; D: Optical CD/DVD drive; E:, F:, H: removable USB volumes. - Path Examples:
C:\Lettere\Paolo.doc or C:\Lettere\Venditori\Paolo.doc.

- Disk Management Utilities:
- Formatting: Prepares raw media by establishing physical tracks, sectors, and logical clusters to host the file system structure.
- Fragmentation & Defragmentation (Defrag):
- Fragmentation occurs when files are split across non-contiguous disk clusters during repeated save/delete cycles, slowing disk read heads.
- Defragmentation reorganizes non-contiguous file fragments back into contiguous physical sectors, improving access performance.
- Hardware Drivers: Specialized low-level software developed by peripheral manufacturers acting as translation interfaces between standard OS kernel calls and specific hardware devices.
Memory Management and Virtual Memory
- Memory Hierarchy Benchmarks:
- CPU Registers: Access time ≈1 ns, capacity <1 KB.
- CPU Cache (L1-L3): Access time ≈2 ns, capacity 1–8 MB.
- Main Memory (RAM): Access time ≈10 ns, capacity 4–16 GB.
- Hard Disks / Optical Disks: Access time ≈10 ms, capacity 1–17 TB.
- Magnetic Tapes: Access time ≈100 s, capacity 1–100 TB.
- Program Execution and Relocatable Code:
- Executable Program: Binary file stored on secondary disk storage.
- Process: Active program code loaded into main RAM for execution.
- Logical vs. Physical Address Space: Compilers generate logical addresses starting from relative address 0. The Memory Management Unit (MMU) hardware maps logical addresses to physical RAM cells at runtime.
- MMU Address Translation: Physical Address=Logical Address+Base Register Value (Offset). If logical address is 127 and relocation offset is 3000, the physical address is 3127 (127+3000=3127).
- Relocation Types: Static Relocation (adds base offset to instructions at load time) vs. Dynamic Relocation (calculates physical addresses dynamically per instruction using a CPU Base Register).
- Memory Allocation and Virtual Memory Techniques:
- Swapping: Moves inactive processes from RAM to a disk swap file (Swap Out) and reloads active processes into RAM (Swap In).
- DLL (Dynamic Link Library): Modular library linking where code modules remain on disk until explicitly called into memory by a running process.
- Fixed Partitioning: Divides RAM into fixed-size regions at boot; monitored via a partition status table. Leads to internal fragmentation.
- Variable Partitioning: Allocates dynamic memory blocks sized to match exact process requirements.
- Segmentation: Divides logical memory into variable-length logical segments matching program structures (code, data, stack). Uses Best-Fit allocation routines to minimize external fragmentation.
- Paging: Divides physical RAM into fixed-size frames and logical process memory into equal fixed-size pages (size 2q Bytes).
- Pages do not need to be contiguous in physical RAM.
- Page Fault: Occurs when a process requests a page not currently residing in RAM, suspending the process while the OS fetches the missing page from disk.
- Page Replacement Policy: Uses algorithms like LRU (Least Recently Used) to select victim pages for eviction.
- Segmentation with Paging: Combines non-fragmented frame allocation of paging with the logical sharing and access protection of segmentation.
Application Software and Office Productivity
- Algorithms and Software Programs:
- Algorithm Definition: A general, finite, complete, non-ambiguous, step-by-step procedure that processes input data to produce output results.
- Program Equation: Program=Algorithms+Data Structures.
- Application Software Categories:
- System Utilities: Antivirus, system backup, file compression, diagnostic utilities, file viewers.
- Office Automation: Word processors, spreadsheets, presentation graphics, photo/video editors, email clients, web browsers, databases.
- Enterprise Applications: Accounting, inventory control, e-commerce platforms, electronic medical record systems, ERP systems.
- Development Tools: Compilers, IDEs, software creation suites.
- Word Processors (Elaboratori di Testo):
- Text formatting elements: Margins, page orientation, headers/footers, line spacing, paragraph indents, bulleted lists, numbered lists, character fonts/styles/sizes, tables, and column layouts.

- Spreadsheets (Fogli di Calcolo):
- Grid Architecture: Columns (labeled alphabetically A, B, C… Z, AA…) and Rows (numbered numerically 1,2,3...) forming individual cells (e.g., cell
C3).

* Cell Content Types: Raw numeric values, textual labels, dates, or mathematical Formulas (e.g., `=B1-B2`).
* Predefined Functions: Built-in routines for calculations (e.g., `SUM`, `AVERAGE`, `MIN`, `MAX`, `VAR`).
* Chart Type Selection Guidelines:
* Bar / Column Charts: Optimal for discrete, categorical comparisons (e.g., monthly product sales volumes).
* Line Charts: Optimal for continuous time-series trends (e.g., tracking sales trajectories across fiscal quarters).
* Area Charts: Optimal for continuous physical measurements (e.g., temperature changes over time).
- Multimedia Presentations: Slide creation applications (PowerPoint, Prezi, PowToon) structured as non-interactive (linear playback) or interactive (user-driven branching paths). Authoring software is used for multi-author interactive media.
- Software Licensing and Distribution Models:
- Software License: A legally binding contract established by the copyright holder specifying permissions, obligations, and restrictions for software usage.
- Shareware / Trial: Software distributed free for an evaluation period (e.g., 30–60 days). May feature restricted functionality (e.g., save/print disabled); requires purchasing a license key/serial code to permanently unlock full capabilities.
- Freeware: Software distributed free of charge for permanent use. The author retains copyright and can prohibit commercial redistribution or modified sales.
- Open Source: Software distributed with its full source code. Users are granted the right to inspect, modify, and enhance the code, provided derivative works are distributed under equivalent open licensing terms.
- GNU General Public License (GNU GPL - "GNU's Not Unix!"): Created by the Free Software Foundation to ensure software remains free. Guarantees 4 fundamental freedoms:
- Freedom 0: Freedom to run the program for any purpose.
- Freedom 1: Freedom to study how the program works and modify its source code.
- Freedom 2: Freedom to redistribute copies to help others.
- Freedom 3: Freedom to improve the program and release improvements publicly.