文書の過去の版を表示しています。
プログラミング言語基礎
プログラミング言語
プログラミング言語は、簡単に言えば、コンピュータを制御するための言語です。その種類は数百にもおよぶと言われています。これらのプログラミング言語には優劣がなく、目的によって使い分けられています。例えば、統計・機械学習の分野において 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 章)
スパコン操作
人がコンピュータに命令を与えるとき、コンピュータの画面をみながら、キーボード、マウス、タッチパネルや音声認識システムなどを組み合わせて使用しています。コンピュータの画面をみながら何らかの命令を与えるという操作は、Graphical User Interface (GUI) を利用した操作などとよばれています。GUI 操作は、直感的で分かりやすいため、現在、多くのシステムに取り入れられています。しかし、この方法は、ビッグデータなどを処理する場合に非効率的です。例えば、あるディレクトリ(フォルダ)の中に 1000 件の CSV ファイルがあるとします。これらの CSV ファイルの中に様々な果物の売り上げデータがあるとします。この 1000 件の CSV ファイルに散らばっているリンゴの売り上げデータを収集したい場合は、ファイルを一つ開いで、ファイルの内容を確認し、“apple” を含まれている行を探してコピーし、新しいファイルに貼り付ける、という作業を 1000 回繰り返す必要があります。さらにこの作業を間違いなく行う必要があります。作業は単純だが、多くの作業時間を必要とします。
一方で、コマンドと呼ばれるものを利用すると、この集計作業を文字でコンピュータに命令することができます。例えば、1000 件の CSV ファイルからリンゴのデータを集計する作業では、次のような文字命令を出すことによって、わずか数秒で集計作業を終わらせることができます。
for f in `ls *.csv`; do
grep 'apple' ${f} >> apple.csv
done
そして、リンゴではなく、サクランボのデータも収集したい場合は、文字命令を少し変更する(“apple” を “cherry” に変更する)だけで収集できるようになります。このように、文字だけを利用して、コンピュータに命令を与えるという操作は、Character User Interface (CUI) あるいは Commad Line Interface (CLI) などと呼ばれています。
コマンドを使うことで、わずか、数回のキー入力で様々な処理をこなすことができます。さらには、同じフォーマットに従った大量のファイルに対する繰り返し作業などを自動化したりするのに役に立ちます。溢れかえるビッグデータの時代の中で溺れないために、ぜひ基本的なコマンドを身につけておきたいものであります。
コマンドは数十種類あるが、よく使うコマンドは限られています。今回の講習会で使用する予定のコマンドを次の表に示しました。具体的な使い方は初級コースで学ぶが、コマンドの意味を初級コースが始まる前に覚えておくことをおすすめします。
| コマンド | 機能 |
| `pwd` | 現在作業しているディレクトリのパスを表示する。 |
| `ls` | ディレクトリの内容の一覧を表示する。 |
| `cd` | ディレクトリを移動する。 |
| `cp` | ファイルまたはディレクトリをコピーする。 |
| `mv` | ファイルまたはディレクトリを移動する。 |
