Programming and Software Development
Life cycle and paradigms
Development runs through requirements, design, coding, testing, deployment and maintenance. Waterfall is sequential and documentation-heavy; prototyping builds a working model for feedback; the spiral model is risk-driven; agile delivers in short iterations or sprints. Paradigms include procedural, object-oriented (class, object, encapsulation, inheritance, polymorphism, abstraction), event-driven and declarative.
Translators and fundamentals
A compiler translates the whole program once and produces an executable, reporting all errors together; an interpreter translates and executes line by line, running slower but easing debugging. An assembler handles assembly language. Data types include integer, real, character, string, boolean and date. Constants do not change; variables do. Control structures are sequence, selection and iteration. Parameters pass by value (a copy) or by reference (the address).
Algorithms, testing and tools
Pseudocode and flowcharts express logic; flowchart symbols are the oval terminator, parallelogram for input/output, rectangle for process and diamond for decision. Testing levels are unit, integration, system and acceptance (alpha and beta), and approaches are black-box and white-box. Errors are syntax, logic and runtime. Version control records changes to code.
Trap: loop counts and off-by-one errors, plus confusing = (assignment) with == (comparison), account for many lost marks.
Worked example: FOR i = 1 TO 5 with total = total + i accumulates 1 + 2 + 3 + 4 + 5 = 15, because the loop runs five times. A WHILE loop testing before the body may run zero times. Rule of thumb: dry-run the first two iterations and the last one on paper, never silently in your head.