PROGRAMMING
1. The Computing Model
Programming acts as the bridge between a human-defined task and the physical electronic devices that execute it. The layers of this model include:
Task & Algorithm: The conceptual problem and the step-by-step solution.
Program: The algorithm expressed in a specific programming language.
Instruction Set Architecture (ISA): The boundary between software and hardware.
Microarchitecture, Logic Gates, & Devices: The physical implementation that executes the instructions.
2. Low-Level Languages
Machine Language
Definition: A language consisting of binary-coded instructions built into a computer's hardware and used directly by the CPU.
Characteristics: Every processor type has its own specific Instruction Set, and instructions typically perform only one very basic task.
Assembly Language
Definition: A low-level language that replaces binary opcodes with mnemonics (e.g.,
ADD,MOV) and replaces binary addresses with names.Assembler: A program that translates assembly language code into machine code.
3. High-Level Languages & Translation
High-level languages allow programmers to write code that is more "human-readable" and independent of specific hardware.
Compiler: A program that translates a high-level language (like C++ or Java) into machine code or an intermediate code all at once before execution.
The Process:
Source Code: The high-level instructions written by the programmer.
Translation: The compiler checks for syntax errors and converts the code.
Object Code: The machine language version produced by the compiler.
4. Expressing Logic: Pseudocode
Pseudocode is a way to express algorithms using a mixture of English and programming logic without worrying about strict syntax.
Core Constructs:
Variables: Used to store data (e.g.,
Set count to 1).Selection (Control Flow): Choosing between different paths of execution using
IF,ELSE IF, andELSEstatements.Repetition (Looping): Repeating a series of statements as long as a condition is met (e.g.,
WHILEloops).
5. Software Testing
To ensure a program works correctly, developers use a Test Plan, which specifies how many times and with what data the program must be run.
Testing Approaches:
Code Coverage (White Box/Clear Box): Designing test cases by looking at the internal logic and structure of the code itself.
Data Coverage (Black Box): Designing test cases based on the range of allowable input and output data values, without looking at the internal code.
Implementation: Using the test cases to verify that the program produces the expected results.