Intro to Programming & Development Process
Why Programming?
- A program = 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
- Define the Problem – clarify required input, processing, output; draft written agreement (scope).
- Plan the Solution – create flowchart and/or pseudocode before coding.
- Code the Program – translate plan into a programming language using an editor/IDE.
- Test the Program
• Desk-check (manual review)
• Compile (syntax check & translation)
• Debug (locate & fix errors) - Document the Program – user manuals, program listings, test results, maintenance notes.
Planning Tools: Algorithm, Flowchart, Pseudocode
- Algorithm: 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, , 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)
- Machine Language – binary / codes.
- Assembly Language – mnemonics (e.g., ADD, CMP); still hardware-specific.
- High-Level Languages – English-like syntax (COBOL, BASIC, C, Java).
- Very High-Level / 4GL – results-oriented, often database or scripting (SQL, Python).
- 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.