# Abstraction Source: https://wisconsin.twango.dev/sp25-cs252/reference/abstraction # Abstraction Abstraction manages complexity by focusing on some attributes Solving a problem on a computer is a systematic sequence of transformations between levels of abstraction ## Levels of Abstraction ### Problem Statement - High level description in a natural language - Ambiguous, imprecise, and even inaccurate ### Algorithms and Data Structures - Software design, featuring step by step procedures and information organization - A precise sequence of effective steps and a representation of the information those steps use. ### Program - Statements that are organized into modules (functions, source files, classes, etc.) - Variables containing data (arrays, structures, objects) - High level languages - structured in a logical manner (control flow, loops, etc.) ### Instruction Set Architecture (ISA) - Compiling and assembling programs into machine code (instructions that the computer can perform and data types the computer can understand) - Low level languages - instructions are simple and direct ### Micro Architecture - Detailed processor implementation ### Circuits - Logic gates and low level components ### Devices - Transistors, diodes, etc. Related: [[lectures/lecture-02]], [[lectures/lecture-03]], [[lectures/lecture-04]], [[lectures/lecture-05]] ## Source Original retained in wisconsin-legacy.