情報科学Ⅱ

科目基礎情報

学校 群馬工業高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 情報科学Ⅱ
科目番号 4E011 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 電子メディア工学科 対象学年 4
開設期 後期 週時間数 4
教科書/教材 ・カーニハン,リッチー著,石田晴久訳: 「プログラミング言語C」,共立出版、自作資料
担当教員 富澤 良行

到達目標

□ C言語における変数と基本データ型の概念を説明できる。
□ C言語における代入や演算子の概を理解し、式を記述できる。
□ C言語において御構造の概念を理解し、条件分岐や反復処理を記述できる。
□ C言語においてプロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。
□ 与えられた簡単な問題に対して、それを解決するためのソースプログラムを記述できる。
□ アルゴリズムの概念を説明できる。
□ 時間計算量や領域計算量などによってアルゴリズムを比較・評価できることが理解できる。
□ コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることが理解できる。
□ リスト構造、スタック、キューなどの基本的なデータ構造の概念と操作を説明できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1基本的なC言語の文法を理解・使用でき、人に説明できる。基本的なC言語の文法を理解し、使用できる。基本的なC言語の文法が理解できない。
評価項目2C言語のプログラムを読んで、人に説明できる。C言語のプログラムを読める。C言語のプログラムを読めない。
評価項目3問題に応じて適切かつエラーの可読性を考慮したプログラムを作成できる。問題に応じて適切プログラムを作成できる。問題に応じて適切プログラムを作成できない。
評価項目4C言語の基本的な文法を例題や演習問題のプログラム作成に利用できるとともに応用でき、ソートや数値計算の各種アルゴリズムについても応用することができる。C言語の基本的な文法を例題や演習問題のプログラム作成に利用でき、ソートや数値計算の各種アルゴリズムについてもプログラミングができる。C言語の基本的な文法を例題や演習問題のプログラム作成に利用できず、ソートや数値計算の各種アルゴリズムについてもプログラミングができない。

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

教育方法等

概要:
 本科目は、情報科学Iに続くJAVAの基礎的な文法を習得した学生の次の段階としての科目であり、実践的な言語として電気・電子系技術者に必要とされるC言語のプログラミングに必要な基本技法を身に付けること、及びC言語を用いたデ ータ構造、アルゴリズムの基礎知識の習得を目標とする。
 プログラム実現のためには、知識を習得することが第一ではあるが、同時にその知識を的確に技術応用できることも重要である。アルゴリズムを選択するために必要な知識を概念的に理解できることが合格レベルとなる。
授業の進め方・方法:
授業方法は講義と演習を50:50で行い,演習問題や課題を課す。適宜、レポート課題を課すので、期限に遅れず提出すること。
注意点:
UNIX, WINDOWSのOSの基本的操作を理解していること。

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

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

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 [1]授業概要と環境設定
1) 計算機センター利用ガイド
2) メールプログラムの設定
3) Visual Studio チュートリアル
4) インタープリタとコンパイラ
[2]C言語の基礎知識
1) プログラム作成
2) main()関数
3) プログラムの形
4) 予約語
5) セミコロン
6) エスケープシーケンス
7) 基本データ型
8) 基本データ型への修飾
・C言語の実行環境と基礎知識が理解できる。
2週 [3]基本的なデータの形式
1) データの形式と変数の長さ
2) アドレスとポインタ(概要)
3) 配列(概要)
4) 文字列(概要)
・C言語の基本的なデータの形式が理解できる。
3週 [4]printfとscanf
1) 標準入出力関数
2) printf()関数の使い方
3) scanf()関数の使い方
・標準入出力の概念が理解できる。
・標準入出力関数の使い方が理解できる。
4週 [5]演算子
1) 算術演算子
2) 代入演算子
3) インクリメント/デクリメント演算子
4) 比較演算子
5) 論理演算子
[6]制御構造
1) if文
2) switch文
3) for文
4) do文
5) while文
6) breakとcontinue
・C言語の演算子の使い方と振る舞いが理解できる。
・C言語の制御構造が理解できる。
5週 [7]関数と記憶クラス
1) 関数の使い方
2) 関数とは
3) 関数の実行
4) プロトタイプ宣言(概要)
5) 関数の戻り値
6) 標準ライブラリ
7) C言語の移植性
8) 変数(記憶クラス)
9) 変数の有効範囲
10) 変数の記憶クラス
11) 内部変数と外部変数
12) 動的記憶クラス
13) 静的記憶クラス
14) レジスタ記憶クラス
15) 外部記憶クラス
・関数の仕組みについて理解できる。
・変数の記憶クラスについて理解できる。
6週 [8]関数の作成
1) 関数の制御構造
2) プロトタイプ宣言
3) 引数
4) 戻り値
・main関数以外の関数について理解でき、作成できるようになる。
7週 [9]ポインタとアドレス[9]ポインタとアドレス
1) コンピュータのメモリ管理
2) アドレス演算子
3) 記憶装置(メモリ)のアドレス
4) ポインタ
5) ポインタの大きさ
6) ポインタと間接演算
7) 関数でのポインタの利用
8) 文字と文字列
9) 文字列データの操作
10) ポインタについての陥りやすい間違い
11) ポインタを利用した関数
・ポインタとアドレスの関係について理解できプログラミングできる。
・ポインター用いた間接演算について理解できプログラミングできる。
・ポインターを用いた文字列操作について理解できプログラミングできる。
8週 中間試験を実施する。 ・中間試験問題の解き方を理解できる。
4thQ
9週 [10]配列
1) 配列の定義
2) 数値配列
3) 配列と文字列
4) 配列とポインタ
[11]構造体と共用体
1) 構造体とは
2) 共用体とは
3) 構造体の宣言と定義
4) 構造体メンバの参照
5) 構造体の使用例
6) 構造体のポインタ
7) 構造体配列
・配列とポインタの関係について理解できる。
・構造体、共用体について理解できる。
・構造体、共用体配列について理解できる。
10週 [12]ファイル操作
1) ファイルの概念
2) ファイル操作の流れ
3) ファイルの状態
4) ファイル操作標準関数
5) オープンとクローズ
6) シーケンシャルアクセス
7) ランダムアクセス
8) 構造体データの入出力
[13]アルゴリズム
1) アルゴリズムとは
2) ユークリッド互除法を例にあげて
3) アルゴリズムの要件
4) アルゴリズムとデータ構造(概要)
5)計算量の表現
・C言語におけるファイルの概念を理解できる。
・ファイル操作関数を用いてプログラミングできる。
・アルゴリズムの概念について理解できる。
11週 [14](C言語による)ソートアルゴリズム
1) ソートとは
2) 安定・不安定
3) 単純ソート
4) 選択ソート
5) バブルソート
6) シェーカーソート
7) 挿入ソート
8) シェルソート
9) クィックソート
・ソートアルゴリズムが理解でき、応用できる。
12週 [15]サーチ
1) リニアサーチ
2) バイナリサーチ
3) 文字列検索:単純法
4) 文字列検索:BM法
・サーチアルゴリズムが理解でき、応用できる。
13週 [16]データ構造
1) リスト構造
 a) 追加
 b) 検索
 c) 削除
2) 記憶領域確保
3) 双方向リスト、循環リスト
4) 木構造
 a) 木の基本
 b) 2分検索木
 c) 多分木
 d) 2分検索木への追加
 e) 2分検索木からの検索
 f) 2分検索木からの削除
5) 平衡木、AVL木、多分木、B木
・データ構造について理解できる。
・リスト構造について応用できる。
14週 [17]数値計算入門
1) 基礎的数値計算
 a) 統計処理
 b) 行列の計算
 c) 複素数計算
2) 非線型方程式
 a) 2分法
 b) ニュートン・ラフソン法
・基礎的数値計算法について理解でき、応用できる。
・非線形方程式の解法について理解でき、応用できる。
15週 [17]数値計算入門
3) 連立一次方程式(概要)
 a) ヤコビ法
 b) ガウス・ザイデル法
4) 補間法・数値積分・状微分方程式の解法・最小二乗法(概要)
・連立一次方程式の解法について理解でき、応用できる。
・補間法・数値積分・状微分方程式の解法・最小二
乗法の概要について理解できる。
16週 期末試験を実施する。 ・期末試験問題の解き方を理解できる。

評価割合

中間試験期末課題態度ポートフォリオその他合計
総合評価割合303040000100
基礎的能力20102000050
専門的能力10202000050
分野横断的能力0000000