情報構造論ガイダンス2022
基本的なガイダンス 情報構造論のシラバスを、ここに示す。プログラムを作成する上で、どのような考え方で作れば処理速度が速いのかを議論する。基本的に、4回のテストのたびに、レポート課題を実施する。各テスト毎の評価は、テスト素 […]
2021年度授業アンケート
年度末恒例の授業アンケート結果の総まとめ 情報制御基礎(3年学際科目) 3年の他学科学生も受講する学際科目なので、内容には苦労するけど、ポイントとしては良い値。授業資料をできれば印刷配布してほしいとの意見もあったけど、講 […]
情報構造論2021全講義録
情報構造論2021ガイダンス 繰り返し処理と処理時間の見積もり 再帰呼び出しと再帰方程式 再帰処理時間の見積もりとポインタ操作 ポインタとメモリの使用効率 malloc()とfree() 様々なデータの覚え方のレポート課 […]
情報構造論とオブジェクト指向
データ構造を扱うプログラムの書き方を説明してきたが、その考え方をプログラムにするためには手間もかかる。こういった手間を少しでも減らすために、プログラム言語が支援してくれる。その代表格がオブジェクト指向プログラミング(Ob […]
関数ポインタ
関数ポインタとコールバック関数 JavaScript のプログラムで、以下のようなコーディングがよく使われる。このプログラムでは、3と4を加えた結果が出てくるが、関数の引数の中に関数宣言で使われるfunctionキーワー […]
動的メモリ管理 malloc() と free()
C言語では、動的メモリ領域をどのように管理していくのか解説する。 局所変数とスタック 局所変数は、関数に入った時に作られるメモリ領域であり、関数の処理を抜けると自動的に開放されるデータ領域である。 関数の中で関数が呼び出 […]
ガベージコレクタ
ガベージコレクタ では、循環リストの発生するようなデータで、共有が発生するような場合には、どのようにデータを管理すれば良いだろうか? 最も簡単な方法は、処理が終わっても、使い終わったメモリを返却しない、方法である。ただし […]
共有のあるデータの取扱い
これまでの授業の中では、データを効率よく扱うためのデータ構造について議論をしてきた。これまでのプログラムの中では、データ構造のために動的メモリ(特にヒープメモリ)を多用してきた。ヒープメモリでは、malloc() 関数に […]
文字列のハッシュ関数
文字列のハッシュ値 ここまでで説明した事例は、電話番号をキーとするものであり、余りを求めるだけといったような簡単な計算で、ハッシュ値が求められた。しかし、一般的には文字列といったような名前から、ハッシュ値が欲しいことが普 […]
プログラムの処理時間の測り方
今回の課題レポートでは、テスト素点が良くレポート提出でも加点が少ないと思われる人でも、まじめに取り組んだレポート提出が多かった。この中で、興味深いレポートで、2分探索木の検索が偏っていたらO(N),バランスが良ければO( […]