Unit 2: Data Representation, OS, and Languages
    
    2.1 Data Representation
    Number Systems
    Computers store all data as binary numbers (bits). We use different number systems for convenience.
    
        - Decimal (Base-10): The system we use daily (Digits 0-9).
- Binary (Base-2): The system computers use (Digits 0, 1).
- Octal (Base-8): Uses digits 0-7.
- Hexadecimal (Base-16): Uses digits 0-9 and letters A-F (where A=10, B=11...F=15).
Character Representation
    Computers store letters and symbols by assigning a unique number to each one. The most common standard is ASCII (American Standard Code for Information Interchange), which maps characters to numbers (e.g., 'A' is 65, 'a' is 97).
    2.2 Operating System
    Basics of Operating System
    The Operating System (OS) is the most important system software. It acts as an intermediary between the user and the computer hardware, managing all resources.
    
    Functions of Operating System
    
        - Memory Management: Allocates and deallocates memory for programs.
- Process Management: Manages the CPU's time, scheduling tasks to run.
- File Management: Organizes files and directories on storage devices.
- Device Management: Controls all input and output devices.
2.3 Computer Language
    
        A Computer Language is a formal language used to write instructions (programs) that a computer can execute.
    
    Types of Languages
    
        - Machine Language (Low-Level): The binary code (0s and 1s) that the CPU understands directly.
- Assembly Language (Low-Level): Uses mnemonics (short codes like ADD,MOV) to represent machine instructions.
- High-Level Language: Uses English-like words and syntax (e.g., C, Python, Java). It is much easier for humans to read and write.
2.4 Language Processors
    A program that translates source code (written by humans) into machine code (understood by the CPU)
.
    
        - Assembler: Translates Assembly Language to Machine Code.
- Compiler: Translates an entire High-Level Language program into Machine Code *all at once*, creating an executable file (e.g., C, C++).
- Interpreter: Translates and executes a High-Level Language program *one line at a time*. No executable file is created (e.g., Python, JavaScript).
- Linker: Combines one or more compiled object files and library files into a single executable program.
- Loader: A part of the OS that loads the executable file from storage into memory (RAM) to be run.
2.5 Algorithm and Flowchart
    Algorithm
    An Algorithm is a finite, step-by-step set of instructions or rules to be followed to solve a specific problem
.
    
    
Flowchart
    A Flowchart is a graphical representation of an algorithm. It uses standard symbols to show the sequence of operations and the flow of control.