プログラミング基礎II

科目基礎情報

学校 石川工業高等専門学校 開講年度 令和06年度 (2024年度)
授業科目 プログラミング基礎II
科目番号 20325 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 2
開設学科 電子情報工学科 対象学年 2
開設期 通年 週時間数 2
教科書/教材 高橋麻奈「やさしいC(第5版)」SB Creative/LMSやMicrosoft Teams等で適宜配布する(参考書籍はシラバス内を参照のこと)
担当教員 三吉 建尊

到達目標

1. C言語の基本文法について理解し,説明できる.
2. 変数の記法について理解し,説明できる.
3. データ型について理解し,説明できる.
4. C言語の制御文の動作を理解し,各種制御文を用いたプログラムを作成できる.
5. 配列について理解し,説明できる.
6. 関数の記法と動作について理解し,関数を用いたプログラムを作成できる.
7. 変数のスコープについて理解し,適切なプログラムを作成できる.
8. 構造体を理解し,説明できる.
9. 文字と文字列を理解し,それを用いたプログラムを作成できる.
10. ポインタ変数の記法と動作を理解し,説明およびプログラムを作成できる.
11. ポインタを用いたプログラムを作成できる.
12. メモリの動的確保の記法と動作を理解し,適切なプログラムを作成できる.
13. 配列とポインタの関係について理解し,説明できる.
14. 簡単なファイル入出力処理の記法を理解し,説明およびプログラムを作成できる.
15. コマンドライン引数について理解し,説明できる.
16. 再帰処理について,理解し説明及びプログラムを作成できる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
到達目標 項目1~4C言語の基本文法について理解し,プログラムを作成できる.C言語の基本文法について理解し,簡単なプログラムを作成できる.C言語の基本文法について理解し,プログラムを作成できない.
到達目標 項目6, 7関数などの概念を理解し,これらを含むプログラムを記述できる.関数などの概念を理解し,これらを含む簡単なプログラムを記述できる.関数などの概念を理解し、これらを含むプログラムを記述できない.
到達目標 項目5, 8~13配列,ポインタ,構造体の概念を理解し,これらを含むプログラムを記述できる.配列,ポインタ,構造体の概念を理解し,これらを含む簡単なプログラムを記述できる.配列,ポインタ,構造体の概念を理解し,これらを含むプログラムを記述できない.
到達目標 項目14C言語を用いて複雑なファイルを取り扱うことができる.C言語を用いてファイルを取り扱うことができる.C言語を用いてファイルを取り扱うことができない.
到達目標 項目15, 16コマンドライン引数や再帰処理などの発展的な内容について理解し,効率的なプログラムを記述できる.コマンドライン引数や再帰処理などの発展的な内容について理解し,プログラムを記述できる.コマンドライン引数や再帰処理などの発展的な内容について理解し,プログラムを記述できない.

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

本科学習目標 1 説明 閉じる
本科学習目標 2 説明 閉じる

教育方法等

概要:
この授業では,C言語によるプログラミングの基礎とコンピュータの仕組みに詳しくなることを目指す.
そのために,C言語の基本構文,ロジックの組み立て,関数,ポインタ,構造体,ファイル入出力などの他のプログラミング言語の修得にも応用可能な知識を一通り習得する.

本講義では企業においてシステムエンジニア(SE)としてシステム開発を担当していた教員がその経験を活かして講義を行うものである。
授業の進め方・方法:
各自のノートパソコンを利用し,講義と演習を同時に実施する.
【事前事後学習など】講義内容の復習および理解を深めるために,適宜,課題を課す(長期休業中の課題を含む).
【関連科目】プログラミング基礎 I,電子情報工学基礎 Ⅰ・Ⅱ,アルゴリズムとデータ構造,コンピュータアーキテクチャ
【MCC 対応】Ⅴ-D-1プログラミング,Ⅵ-D情報系分野(実験・実習能力),情報教育対応科目
注意点:
・ 講義には充電が完了したノートパソコンを持参すること.
・ 授業中に適宜演習を行い学習到達の確認を行う.
・ 演習課題の配点が高いため,しっかりと取り組み,提出期限を厳守すること.

プログラミング上達のコツは,「多くのプログラムを構築すること」「エラーやトラブルを自己解決すること」の2つです.
エラーやトラブルが発生することは悪いことではありません.
たくさんの知識を身に着けてどんどん新しいことに挑戦し,色々なプログラムを作りましょう!

【評価方法・評価基準】成績の評価基準として50点以上を合格とする.
前期・後期ともに中間試験・期末試験を実施する.
前期成績:中間試験 30%,期末試験 30%,前期課題 40%
後期成績:中間試験 30%,期末試験 30%,後期課題 40%
学年末:前期成績 50%,後期成績 50%

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス C言語の基本文法について理解し,説明できる
2週 C言語の基本 (1) C言語の基本文法・変数・演算子について理解し,説明できる
3週 C言語の基本 (2) C言語の基本文法・変数・演算子について理解し,説明できる
4週 制御構造とフローチャート (1) 反復・条件分岐などの制御構造について理解し,説明できる
フローチャートを記述することができる
フローチャートを理解し,適切なプログラムを構築することができる
5週 制御構造とフローチャート (2) 反復・条件分岐などの制御構造について理解し,説明できる
フローチャートを記述することができる
フローチャートを理解し,適切なプログラムを構築することができる
6週 制御構造とフローチャート (3) 反復・条件分岐などの制御構造について理解し,説明できる
フローチャートを記述することができる
フローチャートを理解し,適切なプログラムを構築することができる
7週 配列 (1) 配列について理解し,説明およびプログラムを作成できる
8週 配列 (2) 配列について理解し,説明およびプログラムを作成できる
2ndQ
9週 関数 (1) 関数の記法と動作について理解し,説明およびプログラムを作成できる
変数のスコープについて理解し,適切なプログラムを作成できる
10週 関数 (2) 関数の記法と動作について理解し,説明およびプログラムを作成できる
変数のスコープについて理解し,適切なプログラムを作成できる
11週 関数 (3) 関数の記法と動作について理解し,説明およびプログラムを作成できる
変数のスコープについて理解し,適切なプログラムを作成できる
12週 構造体・共用体・列挙体 (1) 構造体・共用体・列挙体を理解し,説明およびプログラムを作成できる
13週 構造体・共用体・列挙体 (2) 構造体・共用体・列挙体を理解し,説明およびプログラムを作成できる
14週 構造体・共用体・列挙体 (3) 構造体・共用体・列挙体を理解し,説明およびプログラムを作成できる
15週 前期復習
16週
後期
3rdQ
1週 文字列 (1) C言語における文字と文字列の扱いについて理解し,説明およびプログラムを作成できる
2週 文字列 (2) C言語における文字と文字列の扱いについて理解し,説明およびプログラムを作成できる
3週 ポインタ (1) ポインタ変数の記法と動作を理解し,説明およびプログラムを作成できる
メモリの動的確保について記法と動作を理解し,説明およびプログラムを作成できる
4週 ポインタ (2) ポインタ変数の記法と動作を理解し,説明およびプログラムを作成できる
メモリの動的確保について記法と動作を理解し,説明およびプログラムを作成できる
5週 ポインタ (3) ポインタ変数の記法と動作を理解し,説明およびプログラムを作成できる
メモリの動的確保について記法と動作を理解し,説明およびプログラムを作成できる
6週 ポインタ (4) ポインタ変数の記法と動作を理解し,説明およびプログラムを作成できる
メモリの動的確保について記法と動作を理解し,説明およびプログラムを作成できる
7週 ポインタ (5) ポインタ変数の記法と動作を理解し,説明およびプログラムを作成できる
メモリの動的確保について記法と動作を理解し,説明およびプログラムを作成できる
8週 ファイル入出力 (1) 簡単なファイル入出力処理の記法を理解し,説明およびプログラムを作成できる
4thQ
9週 ファイル入出力 (2) 簡単なファイル入出力処理の記法を理解し,説明およびプログラムを作成できる
10週 ファイル入出力 (3) 簡単なファイル入出力処理の記法を理解し,説明およびプログラムを作成できる
11週 コマンドライン引数と再帰処理 コマンドライン引数の取り扱いについて理解し,説明できる
再帰処理について理解し,説明およびプログラムを作成できる
12週 計算機演習 (1) これまでに学習した内容を応用し,様々なプログラムを構築することができる
13週 計算機演習 (2) これまでに学習した内容を応用し,様々なプログラムを構築することができる
14週 計算機演習 (3) これまでに学習した内容を応用し,様々なプログラムを構築することができる
15週 後期復習
16週

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。4前1,前2,前3,後1,後2,後3,後4,後5,後6,後7
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4前9,前10,前11,後12,後13,後14
変数の概念を説明できる。4前2,前3,後1,後2,後3,後4,後5,後6,後7
データ型の概念を説明できる。4前2,前3,前7,前8,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7
制御構造の概念を理解し、条件分岐を記述できる。4前4,前5,前6
制御構造の概念を理解し、反復処理を記述できる。4前4,前5,前6
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。4前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14
分野別の工学実験・実習能力情報系分野(実験・実習能力)情報系分野(実験・実習能力)与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。4前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。4前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。4前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14
フローチャートなどを用いて、作成するプログラムの設計図を作成することができる。4前4,前5,前6,後12,後13,後14
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。4前1,前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,後1,後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14

評価割合

試験課題合計
総合評価割合6040100
基礎的能力000
専門的能力6040100
分野横断的能力000