プログラミングⅢ

科目基礎情報

学校 小山工業高等専門学校 開講年度 2017
授業科目 プログラミングⅢ
科目番号 0014 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 1
開設学科 電気電子創造工学科 対象学年 3
開設期 前期 週時間数 2
教科書/教材 データ構造とアルゴリズム、インフォテック・サーブ(2014)
担当教員 平田 克己

到達目標

1.構造化プログラミングにおける基本制御構造(順次・選択・反復)を理解し、擬似言語で表現できる。
2.基本的な探索や整列のアルゴリズムを理解し、擬似言語で表現できる。
3.基本的な探索や整列を実現するプログラムをC言語で記述できる。
4.基本的なデータ構造(スタック、キュー、リスト、木構造、ハッシュ表)を説明できる。
5.スタックやキューを用いた簡単なデータ入出力アルゴリズムを擬似言語で表現できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
1.基本制御構造を含む簡単なアルゴリズムを擬似言語で書き表せる。 (小テスト、中間試験および定期試験で評価)極めて正確に書き表せる。少しの誤りはあるものの、ほぼ正確に書き表せる。まったく書き表せないか書き表せても誤りが多い。
2.基本的な探索や整列のアルゴリズムを擬似言語で書き表せる。 (小テスト、中間試験および定期試験で評価)極めて正確に書き表せる。少しの誤りはあるものの、ほぼ正確に書き表せる。まったく書き表せないか書き表せても誤りが多い。
3.基本的な探索や整列を実現するC言語プログラムを作成できる。 (実習課題で評価)仕様どおりに作成できる。おおむね仕様どおりに作成できる。作成できないか、作成できても仕様をほとんど満たしていない。
4.基本的なデータ構造について説明できる。 (小テスト、中間試験および定期試験で評価)極めて正確に説明できる。おおむね説明できる。まったくまたはほとんど説明できない。
5.スタックやキューを用いた簡単なデータ入出力アルゴリズムを擬似言語で書き表せる。 (小テスト、中間試験および定期試験で評価)与えられた仕様どおりに極めて正確に書き表せる。少しの誤りはあったり、一部仕様を満たしていない部分があるものの、ほぼ正確に書き表せる。まったく書き表せないか書き表せても誤りが多い。

学科の到達目標項目との関係

学習・教育到達度目標 ⑤ 説明 閉じる

教育方法等

概要:
この授業ではプログラミングにおいて重要であるアルゴリズムとデータ構造について学習する。
まずアルゴリズムの重要性やその良し悪しについて理解した上で、データの探索や整列などの典型的なアルゴリズムについて学習する。
また、アルゴリズムの実現においてデータ構造が重要であることを理解し、種々の基本的なデータ構造について学習する。
キーワード: プログラミング、擬似言語、C言語、アルゴリズム、探索、ソート、データ構造
授業の進め方・方法:
授業はペアワークやグループワークを含んだ講義形式で進める。
各回の授業の冒頭で前回の内容に関する小テストを実施する。
各回の授業の前にあらかじめ教科書を読み、不明なところは調べるなどしてある程度理解しておくこと。
適宜、プログラミングの実習課題を宿題として課す。
注意点:
わからないことがあればその都度質問するなどしてその場で解決することを心がけること。授業中や教員室への訪問以外に、メールやSNSでの質問も受け付ける。
実習課題は学生同士で教え合うなど協力して取り組んでも良いが、誰かが作ったプログラム(インターネット上の情報も含む)をそのままコピーして提出することは不可とする。

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス、アルゴリズムとは、問題分析 アルゴリズムとは何かを説明できる。
2週 流れ図(フローチャート)、基本制御構造 基本制御構造を含む簡単な処理をフローチャートで表せる。
3週 擬似言語、アルゴリズムの評価基準 基本制御構造を含む簡単な処理を擬似言語で表せる。
アルゴリズムの評価基準を挙げ、それぞれについて説明できる。
4週 配列、ハッシュ表 ハッシュ表について説明できる。
ハッシュ表を用いた簡単な処理をフローチャートや擬似言語で表せる。
5週 リスト構造 リスト構造について説明できる。
リスト構造を用いた簡単な処理をフローチャートや擬似言語で表せる。
6週 スタック、キュー スタックとキューについて説明できる。
スタックやキューを用いた簡単な処理をフローチャートや擬似言語で表わせる。
7週 木構造、2分木の基本操作 木構造や2分木について説明できる。
8週 中間試験
2ndQ
9週 中間試験の解説、線形探索、ハッシュ探索 線形探索とハッシュ探索について説明できる。
線形探索のアルゴリズムをフローチャートや擬似言語で表せるとともに、簡単なプログラムをC言語で作成することができる。
10週 2分探索、探索の計算量 2分探索と探索アルゴリズムの計算量について説明できる。
2分探索アルゴリズムをフローチャートや擬似言語で表せる。
11週 基本選択法、ヒープソート 基本選択法とヒープソートについて説明できる。
基本選択法のアルゴリズムをフローチャートや擬似言語で表せるとともに、簡単なC言語プログラムを作成することができる。
12週 基本交換法、シェーカソート 基本交換法とシェーカソートについて説明できる。
基本交換法のアルゴリズムをフローチャートや擬似言語で表せるとともに、簡単なC言語プログラムを作成することができる。
13週 基本挿入法、シェルソート 基本挿入法とシェルソートについて説明できる。
基本挿入法のアルゴリズムをフローチャートや擬似言語で表せるとともに、簡単なC言語プログラムを作成することができる。
14週 マージソート マージソートについて説明できる。
マージソートのアルゴリズムをフローチャートや擬似言語で表せるとともに、簡単なC言語プログラムを作成できる。
15週 クイックソート クイックソートについて説明できる。
クイックソートのアルゴリズムをフローチャートや擬似言語で表せるとともに、簡単なC言語プログラムを作成できる。
16週 定期試験

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学電気・電子系分野情報基本的なアルゴリズムを理解し、図式表現できる。3
プログラミング言語を用いて基本的なプログラミングができる。3
情報系分野ソフトウェアアルゴリズムの概念を説明できる。3前1
与えられたアルゴリズムが問題を解決していく過程を説明できる。3前2,前3
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。3前1
時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。3前3,前10
整列、探索など、基本的なアルゴリズムについて説明できる。3前9,前10,前11,前12,前13,前14,前15
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。3前4
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。3前4
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。3前5,前6,前7

評価割合

中間試験定期試験小テスト実習課題合計
総合評価割合35351020100
基礎的能力00000
専門的能力35351020100
分野横断的能力00000