【学習】データ構造とアルゴリズム【通信課程】
大学2年って結構辛かったのを最近思い出しました。
一年は専門科目もそんなになくて、一般教養も多くて勉強に体を慣らす期間だったと思います。
3年目以降は専門科目がウェイトを占めるので自分が専攻してない科目は捨てていけばよかたんですが、2年目はその中間で専門性もあがる上に基礎的な科目も多く捨てるわけにいかずに大変でした。
専門基礎ってやつですね。
物理に始まり数値解析や数理統計、微分積分2とこないだレポート記事にした離散数学もそうですね。
離散数学はセキュリティ関係を学ぶには絶対に通らなければいけない基礎なんですが、僕はそれを専攻する気は無かったので心が折れました。
そうなんです。僕が大学で勉強したかったことは自動制御と半導体なんです。
ガチガチの電気機械を勉強したかったんですが、いかんせん情報科学科なので情報の授業も避けては通れないんですが、このデータ構造とアルゴリズムはいわば情報を機械的に動かす仕組みなわけですからシナジーもあるかなぁなんて思って勉強しました。
提出日:課題A→2016/5/15 課題B→2016/5/19
二年のすべての課題が見当たらず...おそらくPDF化したと思い込んで捨てちゃったと思われます...すみません。
課題A、Bともにテキストの章末問題をレポートとして提出しなさいという問題です。
確か全問レポートにするってことじゃなくて章末問題から自分の好きな問題をピクアップして解いたと思います。
図を結構使うレポートになるので指定文字数に届かなくて苦労しました。
1500文字も使えないと流石にレポートがスカスカで提出できるようなものではないですよね。
僕の提出期間を見ると同時提出可の課題だったようです。
レポートの作り方
授業を進めて行き章末問題でレポートになりそうな問題をピックアップしてました。
課題Aは1−1、2−1、3−1、4−1−1、4−5−1、4−6−3
課題Bは4−7−1、4−8−1、5−1、6−1、7−2
これらをピックアップして解きました。
回答もテキストには載ってます。
載ってますが、もちろん「見ました」みたいな回答になってはいけません。
これが意外と難しくて、そんな回答になるに決まってるじゃないですか。
アルゴリズムの勉強をしてるんですよ。
例題程度のアルゴリズムなら答えは自ずと1つに決まってくるレベルです。
僕は説明とかは自分の言葉で書くようにして「見ました」感を消しました、
とりあえずは再提出にはなりませんでしたよ。
困ったこと
僕はアルゴリズムが苦手なんだと気がつきました。
順序立てて物を考えるのが苦手なんですよ。
全体の流れから色々感じとるような感性の持ち主らしく、アルゴリズムを考えて実際にプログラミングに落とすことをやるわけなんですがこれがまぁ神経を使う作業でして。
例えばよくある例題ですが、配列が何個かあってその中に数字が格納されてる。
それを降順で並べ替えるアルゴリズムを考える時に方法は色々あると思うんですけど、僕の場合一番手間のかかる方法を選んでしまうんですよね。
それでプログラムを組むと手間がかかるんでプログラムも煩雑になってうまく動かずどこを直して良いかもわからず、お手上げになってしまうと。
この授業をしっかり理解するとこれがスッキリ解消できますよ。
アルゴリズムをきちんと表現できる人は多分仕事もできる人です。
もう一回きちんとテキスト読み込もうと思います。
科目習得試験
章末問題の類題が出題されます。
スタックのpush,popの組み合わせでのデータの動きや文字列照合のアルゴリズムが問われたと思います。
ムーア法とBM法の計算量の比較とか。
あと、木構造でも難問か問いがありました。
章末問題のように穴埋め問題ではなく、実際に計算量を算出したり式を問われたりしたので木構造以降の計算式はしっかり覚えておいた方がいいです。
僕はレポートの評価はボチボチだったんですが、木構造だけ計算式を覚えて試験に望んだら全然解けなくてC評価でした。
計算式はしっかり覚えておきましょう。
以上、データ構造とアルゴリズムのレポートまとめでした。
↓バナークリックお願いします!目が覚めるとあなたのレポートが完成してるかも👓