文書の過去の版を表示しています。
プログラミング言語基礎
スパコン操作
人がコンピュータに命令を与える方法は、概ね Graphical User Interface (GUI) に基づく方法と Character User Interface (CUI) に基づく方法の 2 種類に分けることができる。業務で使用する Windows パソコン、タブレット端末、銀行 ATM などが GUI の代表例となります。これらは、わかりやすく表示されたコンピュータの画面をみながらコンピュータに命令を出しているところでは共通しています。これに対して、文字のやりとりのみでコンピュータに命令を出したり、コンピュータから計算結果を受け取ったりする操作が CUI であり、日常生活でほとんど触れることはありません。
GUI 操作は直感的でわかりやすいが、ビッグデータなどを処理する場合に非効率的です。例えば、あるフォルダの中に 1000 件の CSV ファイルがあるとします。これらの CSV ファイルの中に様々な果物の売り上げデータがあるとします。この 1000 件の CSV ファイルに散らばっているリンゴの売り上げデータを収集したい場合は、ファイルを一つ開いで、ファイルの内容を確認し、“apple” を含まれている行を探してコピーし、新しいファイルに貼り付ける、という作業を 1000 回繰り返す必要があります。さらにこの作業を間違いなく行う必要があります。作業は単純だが、多くの作業時間を必要とします。
一方で、コマンドと呼ばれるものを利用すると、この集計作業を文字でコンピュータに命令することができます。例えば、1000 件の CSV ファイルからリンゴのデータを集計する作業では、次のような文字命令を出すことによって、わずか数秒で集計作業を終わらせることができます。
for f in `ls *.csv`; do
grep 'apple' ${f} >> apple.csv
done
そして、リンゴではなく、イチゴのデータも収集したい場合は、文字命令を少し変更する(“apple” を “strawberry” に変更する)だけで収集できるようになります。このように文字だけでコンピュータに命令を与える操作が CUI 操作となります。スパコンを使う上で、このような操作を身につけると効率的なデータ操作が行えます。
コマンドは数十種類あるが、よく使うコマンドは限られています。今回の講習会で使用する予定のコマンドを次の表に示しました。具体的な使い方は初級コースで学ぶが、コマンドの意味を初級コースが始まる前に覚えておくことをおすすめします。
| コマンド | 機能 |
| `pwd` | 現在作業しているディレクトリのパスを表示する。 |
| `ls` | ディレクトリの内容の一覧を表示する。 |
| `cd` | ディレクトリを移動する。 |
| `cp` | ファイルまたはディレクトリをコピーする。 |
| `mv` | ファイルまたはディレクトリを移動する。 |
なお、初級・中級コースを受講する上では必要はありませんが、コマンドを詳しく学びたい方は次の資料を参考にしてください。
- 動画&テキスト コマンドライン講習会
コマンド 1 つが 1 つの命令となっています。コンピュータへの命令が単純であれば、コマンドだけで十分にデータ処理が行えます。しかし、複雑な計算などを行おうとすると、コマンドだけでは不十分になります。そこで登場するのがプログラミング言語です。
プログラミング言語
プログラミング言語は、簡単に言えば、コンピュータを制御するための言語です。その種類は数百にもおよぶと言われています。これらのプログラミング言語には優劣がなく、目的によって使い分けられています。例えば、統計・機械学習の分野において Python や R などが使われ、システム開発ならば Python、Java や Go などがよく使われています。
AI を理解する上で、数学・統計の知識だけさえあれば十分ですが、AI を活用していくにはプログラミング言語を使える必要があります。AI の分野でよく使われているプログラミング言語には C++、Python や R などがあります。このなか、とくに Python は勉強しやすく、応用範囲が広いプログラミング言語と言われています。また、AI 最先端のアルゴリムがほとんど Python で記述されているほど有名である。AI を学ぶにあたり、まず Python を学ぶことをお薦めします。
プログラミング言語経験者であれば、Python をゼロから勉強し始める必要はありません。Python の文法やデータ型などを調べて一通り目を通すだけで十分です。
プログラミング言語未経験者の場合は、インターネットで公開されている資料などを有効活用して、一通り Python を学ぶことをお薦めします。本教育プログラムの初級および中級コースでは、AI の作り方や AI の活用に重みをおいてあるため、Python について最小限のことしか説明しません。そのため初級・中級コースを受けるにあたり、次のような Python 知識をすである程度持っていることを期待しています。プログラミング言語未経験者が Python を学ぶとき、これらの項目を重点的に学ぶことをお薦めします。
- データ型(整数、小数、文字)
- リスト、ディクショナリ
- if 構文, for 構文, while 構文
- 関数の作り方と使い方
Python を学ぶにあたり、以下の資料を参考にするとよいです。これらの資料は、Python の基本的な部分から応用部分まで広くカバーしてあります。このうち、初級・中級コースに必要な部分をカッコの中に書きました。これらの部分については習得(復習)しておくと、初級・中級コースもスムーズに理解できるようになります。なお、初級・中級コースを受けるにあたり、クラスやイテレーターなどの抽象的な概念への理解を必要としていません。
- テキスト 京都大学プログラミング演習 Python 2019 (1, 2, 3, 4, 5, 10, 11 章)
- テキスト 東京大学 Python プログラミング入門 (1, 2, 3, 4-1 章)
- 動画&テキスト Python for Bioinformatics(1, 2, 3, 4 章)
- 動画 情報処理学会 基本的なプログラミング(1, 2, 3, 4 章)
