プログラミングⅡ

科目基礎情報

学校 宇部工業高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 プログラミングⅡ
科目番号 32023 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 3
開設学科 制御情報工学科 対象学年 2
開設期 通年 週時間数 3
教科書/教材 「新・明解C言語入門編」柴田望洋 著(ソフトバンク・パブリッシング)
担当教員 三宅 常時

到達目標

講義と演習を通してC言語の基本的なプログラミング技術を習得することを目的とする.
本講義の到達目標は以下の通りである。
(1) 基本的なプログラムの作成・実行ができる。
(2) C言語の各構文について説明できる。
(3) コンパイル時・実行時に出力されるメッセージの内容を説明できる。
(4) 作成したプログラムの機能や振る舞いを他人に分かりやすく説明できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安最低限の到達レベルの目安(可)未到達レベルの目安
評価項目1自身で応用課題を設定し、課題を解決するプログラムを作成・実行できる。教科書に掲載されている発展課題のプログラムを作成・実行できる。基本的なプログラムの作成・実行ができる。基本的なプログラムの作成・実行ができない。
評価項目2C言語の各構文について理解し、応用的なプログラムを作成できる。C言語の各構文について理解し、基礎的なプログラムを作成できる。C言語の各構文について理解できる。C言語の各構文について理解できない。
評価項目3コンパイル時・実行時に出力されるメッセージの内容を説明でき、種々のエラーに対処できる。コンパイル時・実行時に出力されるメッセージの内容を説明でき、初歩的なエラーに対処できる。コンパイル時・実行時に出力されるメッセージの内容を説明できる。コンパイル時・実行時に出力されるメッセージの内容を説明できない。
評価項目4複雑なプログラムの機能や振る舞いについてわかりやすく説明できる。プログラムの機能や振る舞いについてわかりやすく説明できる。プログラムの機能や振る舞いについて説明できる。プログラムの機能や振る舞いについて説明できない。

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

教育方法等

概要:
通年(第1〜4学期)開講
C言語の基本技術として、配列、関数、文字列、ポインタ、構造体を学習する。
授業の進め方・方法:
本講義は、1回当たり4単位時間連続して講義と演習を実施する。情報処理演習室で、初めに解説を行った後、プログラミング演習を行う。コンピュータ、ネットワークの利用についてはマナーを守ること。ホームルームからの移動は速やかに行い、遅れないようにすること。
注意点:
第1学期及び3学期に中間試験を行います。また、第1学期末及3学期に補講が入ります。
教科書を持参し、細部について参照ながら理解を深めること。また、教科書の授業内容の範囲を熟読し、復習しておくこと。
演習が時間内に終了しない場合もあり得るが、放課後などを利用して実施し、期限までに必ず提出できるようにすること。
課題レポートの提出期限は厳守すること。
プログラミングが得意な学生は、与えられた課題をこなすだけで満足せず、追加課題を教員に求めること。

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス
入出力の復習
シラバスから学習の意義、授業の進め方、評価方法を理解できる。
出力と変数、入力、条件分岐ついて、種々のデータに関するレポート作成ができる。
2週 関数:教科書第6-1節を学習する。 関数の呼び出しを含むプログラムを読めるようになり、関数の定義を自分で書けるようになる。
3週 関数の設計:教科書第6-2節を学習する。 教科書6-2節を理解し、値を返さない関数や仮引数を受け取らない関数を作成することができる。
4週 関数の応用:教科書第6章の例題をもとに関数利用時の注意事項や探索プログラムへの応用例を学習する。 配列を引数とする関数に関する注意点を理解するとともに、線形探索のアルゴリズムを理解し、プログラムを作成することができる。
5週 基本型:教科書第7章を学習する。 C言語に現れる様々な基本型の違いについて理解し、状況によって使い分けることができる。整数の2進表現について理解し、目的に応じたビット演算を行うことが出来るようになる。
6週 いろいろなプログラム:教科書第8章を学習する。 関数形式マクロや列挙体などを用いたプログラムを作成できるようになる。また、ソートや再帰などのアルゴリズムを理解し、実行結果を予想できるようになる。
7週 文字列の基本・文字列の配列:教科書第9-1節および第9-2節を学習する。 文字列や文字列リテラルの基本を理解し、プログラムを作成できるようになる。
8週 文字列の操作:教科書第9-3節を学習する 文字列の長さを求める関数や文字列内の数字文字の出現回数を求めるプログラムについて理解し、実行結果を予想できるようになる。
2ndQ
9週
10週
11週
12週
13週
14週
15週
16週
後期
3rdQ
1週 関数に関するプログラミング演習:課題を課す 与えられた仕様に基づき、関数の実装ができるようになる。
2週 文字列に関するプログラミング演習:課題を課す 文字列を扱うプログラムに適語補充を行い、プログラムを完成できるようになる。
3週 ポインタ:教科書第10-1節および第10-2節(途中まで)を学習する。 メモリ空間上のアドレスを指すポインタの概念を理解し、アドレス演算子やポインタ型などを用いたプログラムの挙動を説明できるようになる。
4週 ポインタと関数・配列:教科書第10-2節(途中から)および第10-3節を学習する。 ポインタを引数として受け取る関数に関するプログラムの作成ができるようになる。
5週 文字列とポインタ:教科書第11-1節および第11-2節を学習する。 配列とポインタの共通点と相違点を理解し、これらを用いたプログラムの作成が出来るようになる。
6週 文字列を扱うライブラリ関数:教科書第11-3節を学習する。 文字列を扱う代表的なライブラリ関数に関する仕様を理解し、これらを呼び出すプログラムの作成が出来るようになる。
7週 構造体:教科書第12-1節(途中まで)を学習する。 構造体の必要性について理解し、目的に応じた構造体を定義できるようになる。構造体や構造体のポインタを引数に持つ関数の作成が出来るようになる。
8週 構造体:教科書第12-1節(途中から)および第12-2節をア学習する typedefや->演算子など、構造体を用いたプログラムの可読性を向上する方法を学び、これらを用いたプログラムが読めるようになる。また、構造体のメンバーに別の構造体を含むプログラムについて理解し、実行結果が予想できるようになる。
4thQ
9週 ファイルの開き方・閉じ方 ファイル入出力関数を用いたファイルへの入出力のプログラムを指示に基づいて作成できるようになる。
10週 メモリの種類、スタックメモリ 変数とメモリの関係を理解し、データの扱いについて理解できる。
11週 静的メモリ、動的メモリ
静的メモリを理解することにより、データのセキュリティの方法を理解でき、動的メモリの取得方法とその危険性の理解を理解できる。
12週 キャストの役割、enum, 暗黙のキャストと明示的キャストの違い、ユーザ定義のデータ構造について理解できる。
13週 プリプロセッサ、defineマクロ、include 実用的なプログラムを作成する上で必要となる知識を身につける。
14週 ifdef,コンパイラ,リンカ プログラムの作成から実行ファイルが作成されるまでの環境を理解できる。
15週 (定期試験)
16週 試験返却
授業改善アンケートの実施
試験問題の解説を通じて間違った箇所を理解し,正しい解答を説明できる。また、授業改善アンケートを行う。

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。3
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。3
変数の概念を説明できる。3
データ型の概念を説明できる。3
制御構造の概念を理解し、条件分岐を記述できる。3
制御構造の概念を理解し、反復処理を記述できる。3
主要な言語処理プロセッサの種類と特徴を説明できる。4
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。4
プログラミング言語は計算モデルによって分類されることを説明できる。4
主要な計算モデルを説明できる。4
ソフトウェアアルゴリズムの概念を説明できる。1前1,前2,前3
与えられたアルゴリズムが問題を解決していく過程を説明できる。1前1,前2,前3
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。1前1,前2,前3
整列、探索など、基本的なアルゴリズムについて説明できる。1前3,前4,前5
時間計算量によってアルゴリズムを比較・評価できることを説明できる。1前3,前4,前5
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。1前3,前4,前5
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。1前6,前7,前8
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。1前6,前7,前8

評価割合

試験小テスト相互評価態度ポートフォリオレポート合計
総合評価割合304000030100
知識の基本的な理解20200002060
思考・推論・創造への適用力10200001040
汎用的技能0000000
態度・志向性(人間力)0000000
総合的な学習経験と創造的思考力0000000