ILTS Computer Science (205) study materials
ILTS Computer Science (205) study resources

ILTS Computer Science (205): Programming and Software Development

ILTS Computer Science (205) · Work through your exam, one topic at a time.

All guide sections

Programming and Software Development

Domain 2 covers program construction and the software lifecycle: syntax and semantics, control flow, modular design, object-oriented concepts, testing, and collaborative maintenance. Expect questions that ask what a fragment does, why a test fails, or which design choice limits change.

Core rules

  • Scope determines where a name is visible; shadowing can hide an outer variable. Parameter passing may copy a value or pass a reference, so mutation inside a function can affect the caller.
  • Structured programming uses sequence, selection, and iteration. Short-circuit evaluation means A and B may skip B when A is false.
  • OOP bundles state and behavior. Encapsulation protects invariants; inheritance shares behavior; polymorphism lets one interface dispatch to different implementations. Prefer composition when inheritance creates fragile hierarchies.
  • The SDLC is iterative in practice: requirements, design, implementation, testing, deployment, maintenance. Version control records changes and supports branching and review.
  • Tests should cover normal, boundary, and invalid inputs. Unit tests isolate functions; integration tests check interfaces; regression tests prevent old bugs from returning.

Worked example

A function counts even numbers: count = 0; for x in nums: if x % 2 == 1: count += 1. It returns 3 for [2,4,7], but evens are 2 and 4, so expected 2. The condition tests oddness. Change it to x % 2 == 0. A boundary test with 0 and a negative even number would expose the same defect if the condition were reversed.

Traps

Confusing assignment with equality; forgetting to update a loop variable; assuming a reference is a copy; testing only the happy path; and treating inheritance as automatic reuse. A program that runs is not necessarily correct.