本講義について
「アルゴリズムとデータ構造」という講義については、情報系、電子系の学科であれば、類似する科目は必ず存在します。本講義が目指すことを以下に書きま す。
1.定石といわれるアルゴリズムを学ぼう(知っておこう,理解しよう)
本講義は、
- プログラミング言語は理解している
- 自分が思ったことはプログラム言語で記 述できる
という学生を対象に、「より良い記述の仕方(処理手順)」を見つけられたり、「美しいコード」を書くことができるようになることを目指します。その方法論として、定石といわれるプログラムのパターンについて勉強をしてもらいます。ここでいうパターンとは
- アルゴリズム(手順)
- データ構造(データの保存の仕方)
が対象です.電気電子系の大卒であれば知ってて当たり前なものがあります.
本講義を受講する皆さんには、
- とりあえず常識的なパターンは知っているというレベルになる
- それを実現するプログラムコード見て理解できる
ということを最終目標とします.定石のパターンを知ることで、未知のプログラムにも対応できる力をつけるというのが狙いです。
2.アルゴリズムが実際のどのように実装されるか理解しよう
アルゴリズムの理屈がわかっても、実際にC言語でどのように表現されるかどうはの理解は別です。C言語のサンプルコードを元に理解しましょう。
3.ソースコードを読めるようになろう
プログラミングを仕事にする場合、
- 自らプログラムコードを書いていく
- 他人が書いたプログラムコードを読んで理解する
という2つの技能が必要になります。当然前者が大切ですが、システムのバグとりやバージョンアップのために、他人のプログラムコードを見て理解することは大切になります。フローチャートを書けるか?により理解度を図ります。
4.IDEの使ってプログラミング
2011年度から、Windowsの環境でVisual Studioという統合開発環境(IDE)を利用してプログラムに取り組んでもらいます。プログラミング課題に割く時間は短いので、宿題や自習等で利用出来るように検討しています。プログラムを組む際には、フローチャートからコード作成ができるか?により理解度を図ります。
おまけ:プログラミングを勉強する意義
最近はSE志望の人が多いよ うですが、そのわりには「プログラミング」についての勉強を疎かにしている学生をよく目にします。「私はSEになるからプログラミングなんて関係な い...」と思っているのでしょうか?プログラミングのことを知らない人が「まともな」プログラムの設計ができるわけないありません。また、プログラミングのことを知らない人が「ソフトウェア」のことを理解できるはずがありません。残念ながら、現在の日本のIT産業では
- ソ フトウェアのことをよく知らない顧客がソフトウェアの開発を依頼
- プログラムを知らないSEが、「なんちゃって仕様書」を書く
- プ ログラムの経験がほとんどないプログラマーが、プログラムを書く
という状況が少なからずあります。これでは、世界で勝つことができません。みなさんにプログラムのできる(わかる)人材(SE、プログラマー)になってほしい わけで、この講義でもプログラミングの課題は定期的に出していきます。