この記事のポイント
- 専修大学ネット情報学部では、C言語・Javaを基礎に、学生の自学・自走を重視したプログラミング教育がおこなわれています
- プログラミングが得意な人の特徴は「要点を押さえた説明ができること」「コードを簡潔に書けること」とされています
- AtCoderなどのプログラミングコンテストへの挑戦が、実践力を高める手段として推奨されています
ITエンジニアを目指す就活生へ
まずは無料会員登録から始めよう
ぜひ登録して、就活をスタートさせましょう。
※本記事は過去におこなったインタビューをもとに構成しています。掲載内容は取材当時の情報です。
専修大学ネット情報学部のプログラミング授業内容とは
授業の中では、基本的なC言語とJava言語を教えています。生成AI(文章・画像・コードなどを自動生成するAI技術)開発やWebアプリ開発など、流行りのプログラミング言語・技術を使ってみることも奨励しています。
学部3年生ぐらいになると、プログラムを書くということに関して自学ができるようになっています。ただ、その中でも自学ができるのは正直2割が精一杯かなと思います。250人程いますので、50人位ですね。学部3年生になると、彼らに関しては、私には一切質問なしで自分たちでネットや本で調べて行っています。
プログラムに関して自学できる学生数を増やすことは可能なのでしょうか?可能だとしたらどのような授業内容の改革が必要だと松永先生はお考えでしょうか?
学習方法を変えることによって変わると思っています。今から50年程前のプログラミングの授業は、いきなり文法書が配られて「これであなたはプログラムが書けます。」と言われ先生は退席していました。私が学生の頃のプログラミングの授業では、文法を覚え、アルゴリズムを覚えればプログラムは書けるという前提の下で授業が行われていました。
プログラムというのは文章のライティングと同じで、文法と単語を知っていてもいい文章が書けるものではありません。アルゴリズムを知っていてもプログラムが書けるものではなく、結局はプログラミング固有の技術の習得が必要だと思います。
プログラムは、一見動いているようですが、きちんと動くかどうか怪しく、動いているけど裏側は正しく動いていないというものが多いです。正常に動くプログラムを実現するために、どういう保証をしなければならないか、というプログラムのテスト技術などは、習得すべきプログラム固有の技術の一つだと思います。
書いたプログラムは必ずテストをしなくてはいけません。現状の学校のプログラミングの授業では専門的なテストの方法を教えていませんが、もっとテストやデバッグに関して授業のなかで教えていくことが必要だと考えています。
現在、専修大学ネット情報学部の授業でもプログラミングの授業に関して改善していこうとしていまして、いわゆる伝統的な文法を教えるだけではダメだと感じており、90分の授業の中では運用や書き方を教える必要があると考えています。
プログラムを書くうえで特に学生に意識してほしいことはありますか?
最初から構造的に破綻しているプログラムは直しようがなく、書きなおした方がいいと思います。間違いに気が付いた時に数行で直せるならいいですが、あちこちパッチをあてていくような形で、場当たり的なプログラムを直していくというやり方は止めた方がいいと思います。
また場当たり的なソースコードの修正を避けるために、できるだけプログラム相互の依存関係をなくさなければならないと思います。
プログラミングに向いている人・向いていない人の特徴
同じ目的を実現するのに、極端にプログラムの量が長くなってしまう人はあまりプログラミングすることに向いているとは言いがたいと思います。特に工夫をこらすのではなく、とにかく時間をかけてコードを書くことで目的を達成するようなプログラムを書こうとしてしまうような方にこの傾向が強いように思います。
またプログラムに限った話ではありませんが、説明がピンポイントで要点を押さえられているかが大事ですね。これができる方は優秀なエンジニアの素養があるように思います。
ただし、口頭での説明が下手でも、文章を書かせると非常にうまく、プログラミング自体も非常に得意というような方もいらっしゃいます。そういう方に関しては、文章構造を気にする傾向にあるので、授業の中で提出してくるレポートも非常にわかりやすいですね。
松永先生の研究室に所属されている学生様はどのような取り組みをされているのでしょうか?
学部3年生であれば、10人ほど在籍していまして、フロントエンドな技術を使いたい学生が多いです。過去には、Androidアプリを作ったり、Unityでゲームを作っている学生さんがいました。今年は、GoogleEarthを使ったアプリケーションを作っている学生がいます。
学部4年生には、セキュリティ関係のプログラミングコンテストにも参加している学生もいます。
アプリケーションを形にするというプログラミングとプログラミングコンテストにおけるプログラミングはどのような共通点、差異がありますか?
私の研究室の学生が参加しているのは、アルゴリズム系のプログラミングコンテストです。そのため、限られた時間の中で、適切なアルゴリズムを選択し、正しく動くプログラムを書かなくてはいけません。そのためには、頭の中で様々な判断が求められます。
間違ったプログラムを書いたときには、その修正コストが高い。そのため、コンテストでは、限られた時間の中で、プログラムがデバッグしやすいように書かれているという点も勝敗を分けます。
先生が特に注目されているプログラミングコンテストはありますか?
日本だとオンラインでAtCoder、海外だとtopcoderやcodeforcesなどのコンテストに注目しています。ぜひエンジニア就活をご覧になられている学生さんで興味のある方は挑戦されてみるとよいかと思います。
松永先生インタビューの機会を頂き、ありがとうございました。
よくある質問
Q. プログラミングを独学で習得することはできますか?
独学での習得は可能ですが、実際に自走できるレベルに達する学生は全体の約2割程度とされています。AtCoderなどのプログラミングコンテストへの参加や、実際にアプリを作ってみることが、プログラミング学習を加速させる有効な手段です。
Q. プログラミングに向いているかどうかを見極める方法はありますか?
同じ目的を達成するのに、コードが極端に長くなってしまう人は適性が低い可能性があります。一方、要点を端的に説明できる人や、文章構造を意識して書ける人はエンジニアの素養があると言われています。口頭説明が苦手でも、文章表現が得意であればプログラミングに向いているケースも多くあります。
Q. プログラミングの授業でテストやデバッグはどのくらい重要ですか?
非常に重要なスキルです。プログラムは一見動いているように見えても、裏側では正常に動いていないことが多く、テスト技術はプログラミング固有の習得すべき技術の一つです。現在の学校教育でも、テスト・デバッグの授業内容の強化が求められています。
就活の第一歩はここから
ITエンジニア志望の就活生は無料登録を
まずは無料で会員登録して、自分に合った求人を探してみましょう。
編集後記
プログラミング学習に取り組む就活生のみなさんにとって、長く役立つ視点が詰まった記事です。ぜひ参考にしてみてください。
編集者
エンジニア就活
ITエンジニアを目指す就活生に向けて、求人情報・選考ノウハウ・業界研究など実践的なコンテンツを届けています。
就活生の疑問や不安に寄り添いながら、日々コンテンツを更新しています。










