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

年度 2010
科目名 アルゴリズムとデータ構造(S)
教員名 関 哲朗
授業概要 ソフトウエアには良いソフトウエアと悪いソフトウエアがあります.現在では,コンピュータ・ハードウエアの性能が向上し,高速なCPU,大容量の記憶装置が出現し,良いソフトウエアの条件は以前とはずいぶん変わってきました.一方で,プログラムを美しく書くためのアルゴリズムの必要性は,以前から全く変わっていません.本講義では,コンピュータの基本的な演算の考え方から,プログラミングの基礎となる計算手順やデータの扱いについて学習を進めていきます.この授業は学習の一部にHIPLUSによるe-lerningを使用します.各回のe-lerninngによる関連学習は,それぞれの対面学習開始以前に完了していなければなりません.e-lerningによる学習分は対面授業(通常の教室における講義)を休講にすることで振り替えます.振替休講については,授業中及びHIPLUSのお知らせ機能(メール同時発信)で予め周知します.対面授業とe-lerningを合わせた総学習(授業)時間は15回×90分で,対面授業のみの場合と同じです.
授業計画 ガイダンス(対面のみ)
この講義の計画と概要をお話しします.
※以下の計画は,進捗によって前週の内容に触れたり,変更になることがあ ります.
構造化定理と構造化プログラミング(対面のみ)
この講義はプログラミングの授業ではありません.一方で,アルゴリズムを何らかの方法で実現し,その動作を確認することは大切なことです.本講義では,「順次」,「反復」,「分岐」といった,基本的な仕組みによってアルゴリズムをシンプルに表現することの基本として構造化の概念を学び,その実現手段としてExcel VBAの必要最小限の機能を学びます.
構造化とアルゴリズム記述の練習 その1(対面のみ)
Excel VBAを用いて基本的なアルゴリズムを記述する練習をします.
練習のために「数当てゲーム」を作ってみましょう.
構造化とアルゴリズム記述の練習 その2(関連学習e-lerning30分+対面90分)
構造化を意識しながら,数当てゲームのアルゴリズムを完成させましょう.
n進数の考え方 その1(関連学習e-lerning30分+対面90分)
10進数以外のn進数の考え方と,相互の変換の仕方を学びます.あわせて,2進数がコンピュータで採用されている意味を考えましょう.
n進数の考え方 その2(関連学習e-lerning30分+対面90分)
n進数を10進数に変換するアルゴリズムを完成させましょう.
数式の表現方法とスタック その1(関連学習e-lerning30分+対面90分)
電卓やコンピュータで用いられる数式の表現方法である逆ポーランド記法を学びます.また,あわせてスタックの考え方について概説します.
数式の表現方法とスタック その2(関連学習e-lerning30分+対面90分)
逆ポーランド記法で記述された式を計算するアルゴリズムを完成させましょう.
並べ替えの方法(ソート) その1(関連学習e-lerning30分+対面90分)
バブルソートなどの基本的な並べ替えの方法を学びます.
並べ替えの方法(ソート) その2(関連学習e-lerning30分+対面90分)
簡単な並べ替えのアルゴリズムを完成させましょう.
再帰の考え方 その1(関連学習e-lerning30分+対面90分)
関数を導入し再帰の考え方を学びます.
再帰の考え方 その2(関連学習e-lerning30分+対面90分)
再帰構造を用いた簡単なアルゴリズムを完成させましょう.
評価方法 出席点については以下のように計算し,総得点33ポイントの2/3以上を取得することが評価(AA,A, B,C,D)の要件です.これを満たさない者の成績は評価される資格のないFとなります. 1)毎回の授業で授業開始時の簡単なテストと終了時の課題提出を行い,合格の場合はそれぞれ1ポイント,2)e-lerningについては,各単元の確認テストに合格(70%以上の正当)することで1ポイントを与えます.評価の要件を満たした者については,出席ポイント,各回対面授業でのテストやe-lerningの単元テスト,演習の回答状況を考慮して成績を付与します.状況に応じて,最終課題を課し,成績の評価に含めることがあります.
教科書
参考書
メッセージ 本講義の内容はとてもオーソドックスなものです.ソフトウエアを勉強したと言う人であれば,誰でもが取り組んだことのある内容ではないかと思います.プログラミングやデータベースなど,計算やデータ操作に関連のある科目を履修していたほうが,具体的なイメージがわきやすいのではないかと思いますが,事前知識が無くても大丈夫ではないかと思います.