はじめてLESSON 01

この教材で学ぶこと OS・ファイル・プロセスと、入力から出力までの流れを学びます。

コンピュータとプログラム入門

対象読者: プログラミングを初めて学ぶ人。専門用語を知らなくても始められます。

この教材でできるようになること

  • ハードウェア、OS、アプリケーションの役割を区別できる
  • ソースコードが実行されるまでの流れを説明できる
  • ファイル、プロセス、メモリ、標準入出力の意味を説明できる
  • 小さなプログラムを「入力・処理・出力」に分けられる

1. コンピュータを三つの層で見る

コンピュータを最初から細部まで覚える必要はありません。まず次の三層で捉えます。

層 役割 例
ハードウェア 物理的に計算・保存・通信する CPU、メモリ、SSD、NIC
OS ハードウェアを管理し、アプリに共通機能を提供する Windows、macOS、Linux
アプリケーション 利用者の目的を実現する ブラウザ、エディタ、ゲーム

アプリケーションがファイルを読みたいとき、SSDを直接操作するのではなく、OSへ依頼します。ネットワーク通信や画面表示も同様です。この境界を知ると、エラーが「コード」「OS」「機器」のどこで起きたかを切り分けやすくなります。

2. プログラムとは何か

プログラムは、コンピュータに実行させる手順を、決められた言語で表したものです。多くの処理は次の形に整理できます。

入力 → 処理 → 出力

たとえば税込価格を求める処理なら、入力は税抜価格、処理は税率を掛ける計算、出力は税込価格です。

price = 1200
tax_rate = 0.10
total = round(price * (1 + tax_rate))
print(total)

この短いコードにも、値を保存する変数、計算、関数呼び出し、画面への出力があります。

3. ソースコードが動くまで

人が書くテキストをソースコードと呼びます。実行方式は大きく二つあります。

  • コンパイル: 事前に別の実行形式へ変換する
  • インタープリト: 実行環境がコードを読みながら処理する

現実の言語処理系は、両方の考え方を組み合わせることがあります。最初は「書いた文字列をCPUがそのまま理解するわけではなく、処理系が橋渡しする」と理解できれば十分です。

4. 実行中のプログラムはプロセスになる

保存されたコードや実行ファイルを起動すると、OSは実行中の単位であるプロセスとして管理します。プロセスには次のような資源が割り当てられます。

  • メモリ領域
  • プロセスID
  • 開いているファイル
  • 標準入力・標準出力・標準エラー
  • 実行権限

同じアプリを二つ起動すれば、通常は別々のプロセスになります。「ファイルは保存物、プロセスは実行中の活動」と区別しましょう。

5. ファイルとディレクトリ

ファイルはデータへ名前を付けて保存したもの、ディレクトリはファイルを階層化する入れ物です。

hello-project/
├── README.md
├── src/
│   └── main.py
└── tests/
    └── test_main.py

拡張子は用途を伝える手掛かりですが、ファイルの内容そのものではありません。パスには、起点からすべて示す絶対パスと、現在位置を基準にする相対パスがあります。

6. エラーは失敗ではなく観測結果

エラーは、コンピュータが現在の状態を説明する情報です。

種類 例 最初に見ること
構文エラー 記号の閉じ忘れ 行番号と直前の記述
実行時エラー 存在しないファイル エラー種別と入力値
論理エラー 実行できるが結果が違う 期待値と実際値
環境エラー コマンドが見つからない インストール、PATH、版

メッセージを消すことではなく、期待と実際の差を小さくして原因を特定することがデバッグです。

演習: 自動販売機を分解する

「金額を入力し、購入できる飲み物を表示する」プログラムを、まだコードを書かずに整理してください。

  1. 入力を二つ以上挙げる
  2. 必要な処理を順番に書く
  3. 出力を挙げる
  4. 起こり得るエラーを三つ挙げる

解答例

  • 入力: 投入金額、商品価格、在庫数
  • 処理: 入力検証、残高との比較、在庫確認、釣銭計算
  • 出力: 購入可否、商品、釣銭、エラー理由
  • エラー: 負の金額、在庫切れ、釣銭不足

理解チェック

  • OSとアプリケーションの役割を分けて説明できる
  • ソースコードとプロセスの違いを説明できる
  • 処理を入力・処理・出力へ分解できる
  • エラー時にメッセージと再現手順を残せる

次に読む

開発環境とターミナル入門で、自分のPC上に安全な練習場所を作ります。