上級CプログラミングA

科目基礎情報

学校 豊田工業高等専門学校 開講年度 令和03年度 (2021年度)
授業科目 上級CプログラミングA
科目番号 33113 科目区分 専門 / 選択
授業形態 講義 単位の種別と単位数 履修単位: 2
開設学科 情報工学科 対象学年 3
開設期 前期 週時間数 4
教科書/教材 「新・明解C言語によるアルゴリズムとデータ構造」柴田望洋、辻亮介著(ソフトバンククリエイティブ)、ISBN: 978-4-7973-9052-0
担当教員 井上 康之

到達目標

(ア)C言語の文法とC言語によるプログラミングの基礎から上級までを理解し、プログラム作成に利用できる。
(イ)アルゴリズムとデータ構造がプログラミングの要であることを理解する。
(ウ)アルゴリズムの概念を理解し、与えられたアルゴリズムが問題を解決していく過程を説明できる。
(エ)同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを理解している。
(オ)基本的な探索,整列アルゴリズムを理解し、プログラムを作成できる。
(カ)各種アルゴリズムを理解し、応用プログラムを作成できる。

ルーブリック

最低限の到達レベルの目安(優)最低限の到達レベルの目安(良)最低限の到達レベルの目安(不可)
評価項目(ア)C言語の文法とC言語によるプログラミングの基礎から上級までを理解し、プログラム作成に利用できる。C言語の文法とC言語によるプログラミングの基礎から上級までを理解する。C言語の文法とC言語によるプログラミングの基礎から上級までを理解できない。
評価項目(イ)基本的な整列・探索アルゴリズムを理解し、プログラムを作成でき、さらに,同一の問題に対し,それを解決できる複数のアルゴリズムが存在しうることを理解している。基本的な整列・探索アルゴリズムを理解する。基本的な整列・探索アルゴリズムを理解できない。
評価項目(ウ)アルゴリズムの概念を理解し、アルゴリズムが問題を解く過程を説明でき、さらに、アルゴリズムと効率・複雑さを理解し、基本的なプログラムの計算量を見積もることができる。アルゴリズムの概念を理解し、アルゴリズムが問題を解く過程を説明できる。アルゴリズムの概念を理解できない。

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

本校教育目標 ① ものづくり能力
本校教育目標 ② 基礎学力

教育方法等

概要:
プログラムを設計するために重要なものは、アルゴリズムとデータ構造である。本科目では、まずC言語の文法を復習して配列やポインタを用いたデータ処理の方法を学び、データの探索や整列を行う基本的なアルゴリズムとその処理に適する基本的なデータ構造について学ぶ。そして、学習したアルゴリズムやデータ構造の理解を深めるために、実際にC言語のプログラムを作成する。さらに、上級CプログラミングとしてC言語ならではの技法も身につける。本科目は講義と演習を交互に実施し、プログラミング能力を身につけるものである。
授業の進め方・方法:
統合開発環境を用いてC言語の文法の重要な点を復習し、データの探索や整列のための基本的なアルゴリズムを学ぶ。学習したアルゴリズムについて、実際にプログラミングすることで理解を深める。さらに、上級CプログラミングとしてC言語ならではの技法も身につける。本科目は講義と演習を交互に実施し、プログラミング能力を身につける。
注意点:
プログラミングI, IIA, IIB を修得していることが望ましい。ノートパソコンを持参すること。

選択必修の種別・旧カリ科目名

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 シラバスを用いた授業内容の説明、プログラミング環境の設定、C言語の基礎の復習 総合開発環境を設定し、使用することができる。C言語の文法とプログラミングの基礎が理解できる。
2週 配列・構造体・ポインタの応用、動的メモリ管理 C言語の配列とポインタ、構造体を利用したデータ処理ができる。malloc(), calloc()による動的メモリ管理ができる。
3週 基本的なアルゴリズムとデータ構造 アルゴリズムの概念を理解し、同じ問題を解くために複数のアルゴリズムやデータ構造が存在することを理解する。
4週 探索アルゴリズム:線形探索・二分探索 線形探索アルゴリズム、二分探索アルゴリズムを理解し、プログラムを作成できる。
5週 探索アルゴリズム:ハッシュ法、小テスト1 ハッシュ法による探索アルゴリズムを理解し、プログラムを作成できる。
6週 データ構造:スタック・キュー・線形リスト アルゴリズムを処理するための各データ構造(スタック・キュー・線形リスト)が理解できる。
7週 再帰アルゴリズム:概念とプログラム、階乗・最大公約数・ハノイの塔 再帰アルゴリズムの概念を理解し、具体的な再帰プログラムの処理の流れを解析することができる。
8週 整列アルゴリズム:選択法・挿入法・交換法 整列アルゴリズムの選択法・挿入法・交換法を理解し、プログラムを作成できる。
2ndQ
9週 整列アルゴリズム:シェルソート・クイックソート 整列アルゴリズムのシェルソート・クイックソートを理解し、プログラムを作成できる。
10週 再帰・整列アルゴリズムのまとめ、小テスト2 再帰アルゴリズム・整列アルゴリズムについて説明できる。
11週 文字列操作:文字列の表現、文字列どうしの比較、パターン検索 C言語における文字列操作を理解し、文字列どうしの比較やパターン検索のプログラムを作成できる。
12週 ビット操作:データのビット表現、ビット演算、ビットベクトルによる集合 C言語におけるビット操作を理解し、ビット表現を利用したプログラムを作成できる。
13週 ファイル処理:データのファイル入出力、テキスト形式とバイナリ形式 C言語におけるファイル操作を理解し、データをテキスト形式やバイナリ形式で入出力するプログラムを作成できる。
14週 ディレクトリ操作:ファイル情報の取得、ファイルリストの作成、ファイル検索 C言語によるディレクトリ操作を理解し、ディレクトリ内のファイルを処理するプログラムを作成できる。
15週 前期総まとめ C言語によるプログラミングの基礎から上級までを理解し、各種アルゴリズムを処理するプログラムを作成できる。
16週

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

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

評価割合

中間試験定期試験課題小テスト合計
総合評価割合20402020100
専門的能力20402020100