- 条件分岐(IF文による制御)
- 状況に応じた判断と、柔軟な処理の切り替えを実現する
- 反復(ループによる繰り返し)
- 大量のデータや処理を、最小限のコードで高速に自動化する
- データの構造化(変数・配列・オブジェクト)
- バラバラの情報を、コンピュータが扱いやすい形に整理して配置する
- 抽象化とカプセル化(関数・クラス)
- 複雑な処理を部品化して隠し、人間が楽に再利用できるようにする
- 状態(ステート)の管理
- 時間や操作で刻々と変化するシステムの「今」を、矛盾なく記憶する
- 外部とのやり取り(入出力 / I/O)
- 画面・ネットワーク・センサーなど、不確実な外の世界とつながる