Intro to Programming & Development Process

Why Programming?

  • A program = step-by-step instructions\text{step-by-step instructions} that make the computer perform a desired task.
  • 3 main motives for learning:
    • Understand how computers work (performance limits, hardware needs).
    • Boost confidence by creating working solutions (e.g., printing “Hello World”).
    • Discover whether you enjoy analytical problem-solving and software development.

Programmer’s Role

  • Translate problem solutions into computer-executable instructions.
  • Activities: write code, run & test, correct errors, produce user documentation.
  • Work can be solo or team-based; requires coordination with analysts, QA, managers, and other developers (front-end / back-end).

The Programming Process

  1. Define the Problem – clarify required input, processing, output; draft written agreement (scope).
  2. Plan the Solution – create flowchart and/or pseudocode before coding.
  3. Code the Program – translate plan into a programming language using an editor/IDE.
  4. Test the Program
    • Desk-check (manual review)
    • Compile (syntax check & translation)
    • Debug (locate & fix errors)
  5. Document the Program – user manuals, program listings, test results, maintenance notes.

Planning Tools: Algorithm, Flowchart, Pseudocode

  • Algorithm: ordered finite steps\text{ordered finite steps} that guarantee a solution.
  • Flowchart: visual map of algorithm; arrows show flow, symbols show actions.
  • Pseudocode: English-like description; balances clarity and precision, starts with Begin/Start, ends with End/Stop.

Common Flowchart Symbols & Meanings

  • Terminal (oval): Start / End
  • Rectangle: Process (calculation, assignment)
  • Parallelogram: Input / Output
  • Diamond: Decision (Yes/No, 1/01/0, True/False)
  • Circle: On-page connector
  • Home-plate / off-page arrow: Off-page connector
  • Arrows: Flow lines (single direction)
    Rules: single entry at top, single exit at bottom; each decision has exactly two exits.

Testing & Debugging Terms

  • Desk Check: manual walkthrough of logic.
  • Compile: translate source to machine code; reports syntax errors.
  • Debug: detect and correct runtime or logic errors; iterate until tests pass.

Programming Language Levels

Lowest ⟶ Highest (more human-friendly)

  1. Machine Language – binary 00/11 codes.
  2. Assembly Language – mnemonics (e.g., ADD, CMP); still hardware-specific.
  3. High-Level Languages – English-like syntax (COBOL, BASIC, C, Java).
  4. Very High-Level / 4GL – results-oriented, often database or scripting (SQL, Python).
  5. Natural / 5GL – resemble spoken language; often AI-driven query systems.

Best Practices

  • Always design (flowchart/pseudocode) before coding.
  • Keep communication open with stakeholders.
  • Test early and often; expect bugs.
  • Document thoroughly for maintenance and user support.