見出し画像

プログラミングの基本 〜アルゴリズムとデータ構造〜

日本でも「プログラミング」が学校の必修科目になりましたが、プログラミングを語る上で欠かせない存在となるのが「アルゴリズム」「データ構造」です。

例えば、小学校のプログラミング教育では「プログラミング的思考」というものが重要視されています。物事を抽象化しながら適切に組み上げて、想定した通りの動きを実現する。そのために必要な思考法です。

その際に必要となるのがアルゴリズムとデータ構造なのです。今回はこれらの用語について説明します。

プログラミングの意味

そもそも「プログラミング」とは。端的に言えば、コンピュータを動かすために必要な「プログラム」を作る作業ですが、より基本的なところから話をします。

現代は日常生活の様々な場面でコンピュータが使われています。これらのコンピュータはいくつもの「ソフトウェア」によって制御されています。そのソフトウェアを構成する存在がプログラムなのです。

コンピュータは人間とは違い、何度実行してもプログラムに書かれた通りの動作をします。つまり、プログラムの内容次第で、こちらが想定した通りの結果が得られるか否かが決まります。

想定した通りの動作を実現するには、プログラミングをきちんと学習する必要があります。繰り返しですが、その基盤となるのがアルゴリズムとデータ構造です。

アルゴリズムとデータ構造

コンピュータの基本を説明したところで、アルゴリズムとデータ構造の話に入ります。

アルゴリズムとは、こちらが想定する動作の詳細な手順のこと。また、データ構造とは、こちらが想定する動作に必要な情報のことです。

少し別の例え方をします。例えば、あなたがカレーを作るとします。初めて作るときはレシピを参考にすると思いますが、レシピは大きく分けて「使用する材料の名前とその量」「材料を加工して調理する手順」で成立します。

カレーの場合は下記のような材料を用意し、それらを切ることや加熱することで料理を完成させます。

コンピュータの世界では材料の名前とその量が「データ構造」になり、材料を加工して調理する手順は「アルゴリズム」になります。

与えられたデータを用いて適切な形で処理するという意味では、コンピュータは料理と非常に似ています。アルゴリズムとデータ構造は、プログラムを作る上で互いに切り離せない要素とも言えるでしょう。

アルゴリズムは先人たちの知恵

先に述べた通り、アルゴリズムとは料理の手順のようなもの。仮にカレーを作ろうとしても、そのレシピが無ければ作れません。同じように、プログラムを作ろうとしても、アルゴリズムが無ければ作れません。

とは言えど、アルゴリズムを自力で考え出すことは困難です。幸いなことに、コンピュータが世に出てから今に至るまで、研究者や技術者たちが非常に多くのアルゴリズムを作り出しました。

このような先人の知恵の蓄積により、現在ではこれらを組み合わせれば、どんなプログラムでも大抵は作ることが可能です。

アルゴリズムとは、問題解決の手段でもあります。私たちが数学の問題を解くように、コンピュータのプログラムも、様々な手段で解決することができます。

その際、ひとつのアルゴリズムだけで問題が解決することは稀です。現実には、複数のアルゴリズムを組み合わせたり、一部を改良したりしながら使用して、問題解決を行います。

プログラマー(プログラミングを生業とする人たち)とは、先人たちが残したアルゴリズムを駆使して、スムーズな方法で問題解決を行う人たちでもあるのです。

おわりに

今回はプログラミングにおいて基礎ともなる「アルゴリズム」「データ構造」について説明しました。

実際に用語を覚えるのは、中学生や高校生レベルの時期になりそうですが、早いうちからこれらを思考法として会得するのは、十分に効果のある話だと思います。

個人的には、プログラムを作るよりもアルゴリズムを考える方が好きです。なのでアルゴリズムの話題は今後も出すかもしれません。

-------------------------

最後まで読んでいただき、ありがとうございます。実際は非定期ですが、毎日更新する気持ちで取り組んでいます。あなたの人生の新たな1ページに寄り添えたら幸いです。何卒よろしくお願いいたします。

-------------------------

⭐︎⭐︎⭐︎ プロフィール ⭐︎⭐︎⭐︎

⭐︎⭐︎⭐︎ ロードマップ ⭐︎⭐︎⭐︎


この記事が気に入ったらサポートをしてみませんか?