Cadets learn fundamental computing concepts that will allow them to design, build and test small to medium programs using a high-level programming language. Key concepts include applying appropriate aspects of a structured problem solving process, applying a standardized design notation such as the Unified Modeling Language (UML) to communicate their design, and iteratively testing their program.