第10回

この文章ではプログラミングにおける関数とは何かについて説明する。

プログラミングでは、いかに物事を抽象化できるかが重要となるが、この抽象化の要となるのが関数であると言える。 何度も使用するような処理について、必要になった時に同じ処理をもう一度書くというのは、例えコピーするとしてもあまりにも非効率的である。

理由は2つある。

まず1つ目は、その処理に欠陥が見つかった場合に全ての箇所を修正する必要がある点。 予め関数として作成していれば、その関数のみを書き直せば全箇所に修正が適用されるが、あちこちに処理を書いていては簡単な修正にも時間がかかる。 この修正の段階で漏れが出てしまえば、バグやエラーの発生に繋がるだろう。

次に2つ目は、その処理が具体的にどういう操作を行うのか理解しにくい点。 関数を作成する時に適切な名前を付けることで、他人が読んでもどんな処理が行われているかわかりやすくなるが、名付けられていなければ、いちいちその処理全体を読んで何が行われているのか理解するのに苦労する。

したがって、関数は自分で好きな名前を付けられる処理の集合体であり、これを使い回すことで書きやすく読みやすいプログラミングが可能になるだろう。

第11回

近年その発展がめざましい生成AIだが、これが理工系に学びをどう変えるかについて、プログラミングに焦点を当てて考察したいと思う。 結論としては、生成AIを学習に用いるにはある程度その分野への知見が必要であるが、その理由は下記の通りである。

まず、AIの生成するプログラムはかなり正確である。これは世間一般に広く使われるプログラミング言語であればあるほど顕著なものであると言える。 また、生成したいプログラムの仕様を細かくAIに指示することで、更に信頼性を高めることができる。

一方、AIに指示を与える際には我々もプログラミングに関する知識を深めておく必要がある。 更に、AIは正確であるが故に、初学者には理解しがたい複雑な処理や、未知の関数が使用されることは数多い。 このような問題点はあるが、ある程度プログラミングを理解した人であれば、AIに部分的な質問を繰り返すことでその技術を会得することができると考えられる。

つまり、基礎的な力が身についていれば、生成AIを「インターネット上にあるドキュメントを眺める代わりに、聞けば自分が必要とする情報を選び取ってこちらに提示してくれる一種の検索エンジン」のようなものとして捉えることもできる。

したがって、AIの生成するプログラムは正確だが、プログラムを自分で理解できなければ学びにはならないことがわかる。

第12回

近年、プログラミングは我々の生活に広く普及しつつある。パソコンはもとより、いわゆるガラケーやスマホを1人1台以上持つという習慣はこの事実を顕著に表していると言える。

そもそもプログラミングとはどのようなものだろうか。ここでは「人間の代わりに機械に処理させるために、物事の抽象化を行うこと」であると仮定する。機械は全く同じ処理を繰り返すことに特化している。よって機械にとって行いやすい処理になるように、我々がなるべく抽象化を行い、分かりやすい処理を記述することがプログラミングであると考えられる。

この抽象化を行うことは、プログラミングを知らない人でも機械を扱いやすくする役割を果たしている。複雑な処理を関数にまとめるなどして、その処理自体に名前を付けたり、ボタンを押すと処理が実行されるようにプログラムすることで、誰でも機械を扱うことができるようになる。これは我々の生活にプログラミングが普及しやすいことと、実際に広く普及していることの裏付けとなるだろう。

第13回

今回は、プログラミングにおけるオブジェクト指向について紹介する。 オブジェクト指向とは、現代のプログラミング言語の中で多く用いられている考え方の1つである。 昔のプログラムの書き方は手続き型プログラミングと呼ばれ、コンピュータへの命令を順番に書いていくというものであった。 しかし、プログラムの規模が大きくなるにつれて、どの部分でどのような処理をしているのかが理解しにくくなる。 これでは、プログラムの追記や修正が困難であるため、プログラムをまとまりごとに分割して扱いやすくしたものがオブジェクト指向である。

オブジェクト指向はクラスとオブジェクト、インスタンスという3つの要素で主に構成されている。 クラスは設計図のようなものであり、予め変数を定義したり、関数を作成したりして、この設計図から作成されたものが共通して持つデータを設定できる。 クラスから作成されたものをオブジェクトと呼び、インスタンスはクラスからオブジェクトを生成する行為のことを指す。 オブジェクトは予めクラスで定義された変数と関数を備えており、他のオブジェクトとまとめて、同じような処理を行うことが可能である。

オブジェクト指向はプログラミングの目的の1つである物事の抽象化を行う上で、役立つ考え方であり、様々なプログラミング言語に応用されている。 一方で、初学者には理解まで少し時間がかかるという難点はある。