NBU日本文理大学

シラバス情報

注)公開用シラバス情報となります。在学生の方は、「UNIVERSAL PASSPORT」で詳細をご確認下さい。

科目名 プログラミング言語(Programming Language)
担当教員名 本村 裕之
配当学年 2 開講期 後期
必修・選択区分 選択 単位数 2
履修上の注意または履修条件  プログラミング入門を併せて受講することが望ましいです。ただし、未受講者にもわかるような説明は心がけます。
席数による受講者数制限を行うことがあります。
受講心得  出席状況を直接の評価基準とするわけではありませんが、遅刻と欠席による授業内容の把握の遅れは、そのまま、課題提出の困難さを招きますので注意してください。
教科書  教科書は使用しません。授業で必要な情報は、授業用ホームページを利用して配布します。
参考文献及び指定図書  千葉則茂・村岡一信・小沢一文・海野啓明共著、Cアルゴリズム全科、近代科学社
関連科目  プログラミング入門、情報システム論、システム分析論
オフィスアワー
授業の目的 プログラミング入門で得た知識を元にアルゴリズムを考えていきます
本科目は、コンピュータ関連科目の導入部分として重要な位置にあります。
授業の概要
授業計画 学習内容 学習課題(予習・復習)
○第1回 授業内容
 C言語が使用できるようにするためのシステム環境設定をします。

○第2回 アルゴリズムとデータ構造(1)
 C言語でプログラムを作成するための、プログラミングの手順、Cプログラムの枠組み、データ型と定数表現、変数と算術式などCプログラミングの基礎知識について復習します。
 アルゴリズム、データ構造とはどのようなものか、などについて学習します。

○第3回 アルゴリズムとデータ構造(2)
 C言語でプログラムを作成するための、プログラミングの手順、Cプログラムの枠組み、データ型と定数表現、変数と算術式などCプログラミングの基礎知識について復習します。
 フローチャートの書き方について学習します。

○第4回 アルゴリズムとデータ構造(3)
 C言語でプログラムを作成するための、プログラミングの手順、Cプログラムの枠組み、データ型と定数表現、変数と算術式などCプログラミングの基礎知識について復習します。条件による場合分けをする選択構造などの簡単なアルゴリズムについて学習します。

○第5回 アルゴリズムとデータ構造(4)
 ある処理を何回か繰り返す反復構造のうちの単純なもの、合計を求めたり文字数をカウントしたりする累積処理など簡単なアルゴリズムについて学習します。
 第2回から第5回までに学習したことについて小テストを実施します。

○第6回 データ構造(1)
 配列とはどのようなものかについて配列の定義と配列の使い方、数値配列、配列処理の一種である文字列特有の処理など最も基本的なデータ構造である配列について学習します。これら配列のデータ構造とアルゴリズムの考え方、配列に対するデータの基本操作である探索、更新、削除、挿入などのアルゴリズムについて学習します。

○第7回 データ構造(2)
 典型的なリスト構造である連結リストを使用したデータについて探索、更新、挿入、削除などの基本操作を学習し、データ構造の中では最も単純なスタックとキューについて学習し、分岐関係、階層関係のようにデータ間の事象の表現に使用する2分探索木などのアルゴリズムの基本操作などについて学習します。

○第8回 データ構造(3)
 2分探索木で探索効率が落ちないために左右のバランスがとれた平衡木を作る必要があります。バランスのとれた2分最適探索木、データを格納するたびに1重回転、2重回転という方法を使用してデータの対称性を保つAVLという平衡木、データ構造を多分木構造にして、根から葉までの木の高さを常に一定に保つ多分木探索木(平衡木)であるB木などについて学習し、2分探索木よりもゆるい規則の順序木であるヒープなどの基本的アルゴリズムについて学習します。
 第6回から第8回までに学習したことについて小テストを実施します。
 また、プロクラミング言語についての小論文の課題を与えます。提出期限は、その時点で指定します。

○第9回 ソート・アルゴリズム(1) バブルソート、シェーカーソート
 データをある規則に従って並べ替えることをソーティングといいます。並べ替えのアルゴリズムには、低速アルゴリズムと高速アルゴリズムがあります。低速アルゴリズムには、バブルソート、シェーカーソート、単純ソートがあり、高速アルゴリズムには、クィックソートがあります。バブルソートのアルゴリズムとシェーカーソートのアルゴリズムについて学習します。

○第10回 ソート・アルゴリズム(2) 単純挿入法、シェルソート
 データを1つずつ取り出し、すでにソートしたデータ列の中へ取り出したデータを挿入する単純挿入法のアルゴリズムと、単純挿入法を改良した方法で計算量を比較的さげたシェルソートのアルゴリズムについて学習します。

○第11回 ソート・アルゴリズム(3) クィックソート、マージソート
 クィックソートはN個の配列要素を、基準値Xを中心に、Xよりも大きな数と小さな数にブロック化します。ブロック内のデータ数が1になるまでブロック化を繰り返すことでソートを行うアルゴリズムです。マージソートは複数のソート済みのデータを、マージ処理により1つのソート済みデータを作成するアルゴリズムです。クィックソートとマージソートのアルゴリズムについて学習します。

○第12回 小テスト
第9回から第11回までに学習したことについて小テストを実施します。

○第13回 探索アルゴリズム(1) 線形探索、2分探索
 データベースの中から、ある条件に合うデータを探し出す探索についてのアルゴリズムについて学習します。データが配列やリストに並べられているとき、データを1つ1つ順にはしから調べていく線形探索のアルゴリズム、昇順や降順にソートした要素の中から目的のデータを探索する2分探索のアルゴリズムについて学習します。

○第14回 探索アルゴリズム(2) 深さ優先探索、広がり優先探索、バックトラック法
 グラフの探索によく使用される深さ優先探索のアルゴリズム、広がり優先探索のアルゴリズムについて学習します。深さ優先探索により、無駄な計算をできるだけしないように計算途中で判断しながら探索を行うバックトラック法のアルゴリズムについて学習します。

○第15回 探索アルゴリズム(3) ハッシュ法、文字列探索
 キーに算術演算をほどこしてアドレスに変換し、そのアドレスから表を参照するキー変換の技法で、目的のキーの探索時間を短縮するハッシュ法のアルゴリズム、2つの文字が与えられたとき、対象とする文字列の中に指定した文字列(キー)が存在するかどうかを調べ、存在すれば、その開始位置を求める文字列探索のアルゴリズムについて学習します。

○第16回 期末試験
 期末試験を実施します。試験時間は、60分で、教科書や資料の持込を可とします。
授業の運営方法  理論とコンピュータを使った実習
備考
学生が達成すべき到達目標
評価方法 評価の割合 評価の実施方法と注意点
試験 80
小テスト 10
レポート 10
成果発表
作品
その他
合計 100