【プログラミング・AI編】在学中面白かった授業科目ベスト3!!

はじめに

「プログラミング」と聞くと、なんだか難しそうな、まるで魔法のようなイメージがありませんか?

ゲームを作ったり、スマホアプリを開発したり、最近話題のAIを操ったり。皆さんの中にも、「自分もそんなものを作ってみたい」とワクワクしている人がいるかもしれません。

高専、特に情報系の学科は、その仕組みを学び、自分の手で使いこなせるようになるための場所です。この記事では、私が実際に高専で体験した、面白くてためになる授業をいくつか紹介します。高専のリアルな学びを感じてもらえれば嬉しいです。

高専で学ぶプログラム・AIに関する授業

高専では、低学年から専門的な授業が始まります。情報系の場合、このような授業でプログラミングやAIの基礎から応用までを段階的に学んでいきます。

プログラミング基礎(C言語、Java、Pythonなど)

まずコンピュータと対話するための言語を学びます。変数の宣言、条件分岐(if文)、繰り返し(for文)といった基本の文法を徹底的に学びます。

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

効率的なプログラムを作るための考え方やデータのしまい方を学びます。パズルを解くような面白さがあります。

Webプログラミング

皆さんが今見ているようなWebサイトやWebアプリを作る技術(HTML, CSS, JavaScript, データベースなど)を学びます。

コンピュータ・アーキテクチャ

 コンピュータ本体の仕組みを学びます。なぜコンピュータが計算できるのか、その根本原理に触れます。

AI・機械学習

「AIとは何か」という基礎理論から、Pythonライブラリを使った画像認識やデータ分析の実践まで、今一番ホットな分野を学びます。

在学中面白かった授業

ここからは、私が実際に受けて「これは面白い!」と感じた授業や、印象に残っている授業を具体的に紹介します。

ラズパイを使った簡単なWebサーバー構築

これは、手のひらサイズの小さなコンピュータRaspberry Pi(ラズベリーパイ)を使って、自分でWebサーバーを立ててみる授業です。

具体的には、ラズパイにOS(Linux)をインストールし、Unixコマンドで操作します。そして、Apacheというサーバーソフトを動かし、自分で書いたHTML、CSS、JavaScriptのファイルを配置。最後に、同じネットワーク内のPCやスマホから、そのラズパイのIPアドレスにアクセスすると、自分の作ったWebページが表示される、という流れです。

楽しかったこと・学んだこと

 一番楽しかったことは、自分の書いたコードが、ブラウザという「外の世界」からアクセス可能になった瞬間です。それまでは自分のPCの中だけで完結していましたが、ラズパイという「ハードウェア」を意識し、ネットワークを通じて「配信」する一連の流れを体験できました。「Webサイトが”見える”仕組み」が、知識から実感に変わった瞬間でした。

モーションキャプチャーを使った指で操作するソフト開発

これは、カメラと距離センサーを使って、PCの画面に触らずに「指の動き」で操作できるアプリケーションを開発する授業でした。

Processingという、ビジュアル表現に強いプログラミング言語を使いました。カメラで手の位置を認識し、距離センサーで「指が画面に近づいたか(クリック動作)」をリアルタイムで検出します。その情報をもとに、画面上のカーソルを動かしたり、メニューを開いたりするプログラムを組みました。

各自オリジナルの工夫して、取り組んだこと

私のグループでは、UI(ユーザーインターフェース)のデザインにこだわりました。ネットショップのようなメニュー画面をデザインし、指の動きでスムーズに操作できるよう、センサーの「感度」を何度も調整しました。他のグループは、簡単な音ゲーのようなものを作っていて、それも面白そうでした。

楽しかったこと・学んだこと

 物理的なセンサー(ハード)と画面上の表現(ソフト)がリアルタイムで連携する、いわゆる「インタラクティブ・システム」の面白さに触れました。プログラムが現実世界の動きに反応してくれるのは、面白いです。どうすれば「使う人」が直感的に操作できるかを考える、UI/UXデザインの重要性も学びました。

ニューラル・ネットワークを用いた画像認識

AIの授業では定番の手書きの数字(0〜9)の画像をAIに学習させ、どの数字が書かれているかを分類させる「MNIST(エムニスト)」という有名な課題に取り組みました。

Pythonという言語と、機械学習のライブラリを使って、ニューラル・ネットワークというAIの「脳」にあたるモデルを自分で構築します。

各自オリジナルの工夫して、取り組んだこと

定番の課題なので、「どうすればもっと認識精度が上がるか」を競う形になりました。AIの脳の「層の深さ」や「学習の回数」といったパラメータ(設定値)を色々変えてみて、どう結果が変わるかを試行錯誤しました。最終的には、自分でペイントソフトで書いた「汚い」数字をAIに読み込ませて、ちゃんと認識してくれるか挑戦したりしました。

楽しかったこと・学んだこと

最初は「魔法」のように見えていたAIが、実は膨大なデータと数学的な処理の積み重ねで動いている、という「仕組み」の一端を理解できました。特に、AIが間違えた画像を見て、「あ、この”7″は確かに”1″にも見えるな」とAIの”気持ち”になって分析するのが楽しかったです。

番外:ロジックトレーナーを用いた回路実装

これは正直、「楽しかった」よりも「めちゃくちゃ大変だった」ことで強烈に覚えている授業です。

ロジックトレーナーという実験装置を使い、論理回路を物理的に組み上げます。先生から「こういう入力(A, B)の時に、こういう出力(X)が出るようにしなさい」という「真理値表」が渡されます。私たちはそれを元に、「カルノー図」というパズルみたいな手法で論理式を簡単化し、最終的にNAND(ナンド)という決められた種類の素子(ICチップ)だけを使って、配線をガチャガチャとつないで回路を完成させます。

楽しかったこと・学んだこと

 配線が1本でも間違っていると、期待通りに動きません。ひたすら配線を見直し、理論と現実が一致せず、本当に大変でした。 ですが、この授業のおかげで、「なぜコンピュータが”0″と”1″だけで計算できるのか」という根本の根本を、体で理解できました。私たちが普段使っている高水準なプログラミング言語が、いかにこの面倒な作業を「隠蔽」してくれていたのか、そのありがたみを心から実感しました。

無料勉強相談って??

「高専に行ってみたいけど、勉強についていけるか心配…」、「受験対策は何から始めればいいの?」と不安に感じている方もいるかもしれません。そんな方のために、高専入試に特化した学習塾・ナレッジスターでは無料の勉強相談を実施しています。高専受験のプロである講師陣が、一人ひとりの状況に合わせてアドバイスしますので、安心してご相談ください。あなたもナレッジスターと一緒に、高専合格への一歩を踏み出してみませんか?きっと夢への道筋が見えてくるはずです!

まとめ

高専のプログラミングやAIの授業は、単に言語の文法を覚えるだけではありません。

  1. Webサーバーのように、ハードとソフト、ネットワークまで全体を触る授業
  2. モーションキャプチャーのように、現実世界とプログラムを繋ぐ授業
  3. 画像認識のように、AIという最先端技術の仕組みに触れる授業
  4. 論理回路のように、コンピュータの”心臓部”の原理まで遡る授業

このように、非常に幅広く、そして手を動かして学ぶことを重視しています。
「難しそう」と感じたかもしれません。実際、課題やレポートは大変です。でも、自分の頭で考え、試行錯誤し、目の前の機械が自分の思った通りに動いた瞬間の達成感は、何物にも代えがたいものがあります。ぜひやってみてください!!

ライター情報

熊本高専 人間情報システム工学科
ハルキ
情報系の高専生。趣味は写真。

参考文献:

\マンガで分かる高専模試/