Computer Systems and Software Fundamentals

The DIKW Pyramid and Information Transformation

The DIKW pyramid represents the structural hierarchy of how raw symbols are transformed into meaningful action and wisdom. At the base lies Data, which is represented by raw observations such as "Light is Red." As context is added, this becomes Information, such as observing that "the traffic light facing south in Connel Avenue burned red." When this information is synthesized within a specific environment, it becomes Knowledge, such as the recognition of context: "the traffic light I am driving toward." The pinnacle of the pyramid is Insight or Wisdom, which provides meaning and dictates action, leading to the decision: "I should stop the car?"

Computer System Hardware Architecture and Central Processing Units

A computer system is comprised of several interconnected blocks: Software, Input & Output (I/O) devices, the Central Processing Unit (CPU), Network interfaces, Main Memory, and Secondary Memory. The CPU serves as the brain of the system and contains three primary components. The Control Unit is responsible for fetching and executing instructions. The Arithmetic Logic Unit (ALU) performs all arithmetic operations. Registers supply operands to the ALU and store the results of its internal operations. Performance is measured by clock speed, which indicates the number of instructions processed per second and is measured in Hertz (HzHz), typically expressed in Gigahertz (GHzGHz).

Comparison of Storage Technologies and Memory Units

Secondary storage typically involves either a Hard Disk Drive (HDD) or a Solid State Drive (SSD). HDDs utilize a mechanical mechanism with spinning magnetic disks; they are generally slower, susceptible to physical shocks, bulkier, consume more power, but are cheaper per gigabyte (GBGB). Conversely, SSDs utilize flash memory with no moving parts, offering faster speeds, higher durability against shocks, and a compact, lightweight form factor with lower power consumption, though they are more expensive per GBGB. Information is represented using the bit (binary digit), the most basic unit (00 or 11). One byte (BB) is equal to 88 bits (bb), which is the space required for one character. These characters are represented using encoding standards like ASCII or Unicode; for example, the character "A" is represented in binary as 10000011000001.

Evolution of Portable Storage and Computer Classifications

The history of portable storage has evolved from the Floppy disk in 19671967 to the Compact disk in 19821982, the USB Drive in 19941994, and finally the advent of Cloud Computing in 20062006. Computers themselves are machines that perform computation, while a computer system encompasses the hardware, operating system, software, and peripheral equipment used for full operation. Categories of computer include Supercomputers, which are the fastest and most powerful machines used for complex scientific research and simulations; Mainframes, which are powerful systems used by large organizations to process vast amounts of commercial data; Personal Computers (Desktops and Laptops), which are versatile tools for everyday professional work and entertainment; and Mobile Computers (Tablets and Smartphones), which are compact, touch-screen devices used for communication and entertainment.

Networking Concepts and The History of the Internet

A computer network consists of multiple devices connected to share resources either through wired or wireless means. Networks are classified as Local Area Networks (LAN) or Wide Area Networks (WAN). Key hardware includes routers, which are devices used to forward data packets. Performance is measured by bandwidth, which is the maximum rate of data transfer, such as Megabytes per second (MBpsMBps). The history of global connectivity began with the first transatlantic telegraph cable in 18581858, followed by the first submarine transatlantic telephone cable system in 19551955. The Internet, a global network of interconnected computers, began with ARPANET in 19601960, followed by the adoption of TCP/IP in 19831983, the invention of the World Wide Web in 19901990, commercialization throughout the 1990s1990s, and massive expansion and innovation in the 2000s2000s.

The World Wide Web and Web Navigation Architecture

The World Wide Web (WWW) was invented by Tim Berners-Lee in 19901990 at CERN to facilitate information sharing via interlinked hypertext documents. Essential components of the WWW include Hyperlinks for seamless navigation between pages, HyperText Transfer Protocol (HTTP) for data communication, HyperText Markup Language (HTML) for designing web pages, and Web Browsers to interpret these files. This operates on a Client-Server Architecture where the Client requests services and the Server provides them. Navigation is managed through IP addresses, which are unique numerical labels (e.g., 208.80.153.224208.80.153.224), and Domain Names, which are human-readable addresses (e.g., www.wikipedia.org) translated by the Domain Name System (DNS). A Uniform Resource Locator (URL) provides the complete address path, including the protocol, domain, and specific file path (e.g., https://en.wikipedia.org/wiki/Internet).

Digital Representation of Data: Text, Images, and Sound

Data representation involves converting various media into binary. Text is encoded via ASCII, where 77 bits represent 128128 characters, Extended ASCII (88 bits), or Unicode, which uses between 88 and 3232 bits per character to support multiple languages. Image size is determined by the formula: Image Size=No. of pixels×No. of bits per pixel\text{Image Size} = \text{No. of pixels} \times \text{No. of bits per pixel}. In RGB images, each pixel is represented by three colors (Red, Green, Blue), with each color receiving 88 bits (11 byte). Therefore, one pixel requires 33 bytes (2424 bits), allowing for 2242^{24} possible colors. Sound representation involves the Y-axis representing Bit Depth (e.g., 1616 levels equals a bit depth of 44) and the X-axis representing the Sample Frequency.

Classification of Software and Operating Systems

Software is a collection of instructions and data that tells a computer how to work. System Software includes the BIOS (Basic Input Output System), which initializes hardware at startup; Utilities like antivirus or disk cleanup; Device Drivers that translate instructions between the OS and hardware; Firmware, which is low-level software embedded in hardware; and Programming Language Translators that convert human-readable code into machine code (00s and 11s). Application Software is designed for specific tasks, such as Microsoft Office, Adobe Photoshop, or Google Chrome. Operating Systems (OS) serve as intermediaries between users and hardware, managing resources like the CPU, memory, and I/O devices while providing Graphical User Interfaces (GUI) or Command-Line Interfaces (CLI).

The Software Development Life Cycle (SDLC)

The SDLC is a structured methodology for developing software through seven phases. Phase 1 is Planning and Initiation, where needs are identified and feasibility (Technical, Economical, Organizational) is assessed. Phase 2 is Systems Analysis, focusing on gathering stakeholder requirements and defining data flow. Phase 3 is Design, creating a blueprint of the system architecture, interfaces, and security standards. Phase 4 is Development, where actual code is written and databases are set up. Phase 5 is Testing, where Quality Assurance (QA) engineers identify bugs and ensure data integrity. Phase 6 is Implementation/Deployment, where the system is rolled out (gradually or all at once) and users are trained. Finally, Phase 7 is Maintenance, involving periodic monitoring, updates, and gathering user feedback for continuous improvement.

Programming Languages: Syntax and Semantics

Programming languages are formal instructions used to communicate processes to computers. High-Level Languages (e.g., Python, Java, C++, JavaScript) are designed to be easy for humans to read, are portable across systems, and require compilers or interpreters for translation. Errors in programming are categorized as Syntax errors, which involve incorrect code structure (e.g., in C++, failing to declare ‘main’ with ‘int’ or ‘void’), and Semantics errors. Semantic errors are logic-based and are not caught by the compiler but found by observing output; for instance, if a program is intended to calculate x=3+5x = 3 + 5 but actually performs x=3+6x = 3 + 6, it is a semantic error.