到達目標
( 1 ) 配列・構造体などの高度な利用方法を理解している.
( 2 ) ポインタと配列・構造体などの関係性を理解している.
( 3 ) 適切なデータ構造を利用して,プログラムを作成することができる.
( 4 ) 大きなプログラム開発におけるC言語の基本手法を理解している.
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
評価項目1 | 配列・構造体などの高度な利用方法を正確に理解している | 配列・構造体などの高度な利用方法を理解している | 配列・構造体などの高度な利用方法を理解していない |
評価項目2 | ポインタと配列・構造体などの関係性を正確に理解している | ポインタと配列・構造体などの関係性を理解している | ポインタと配列・構造体などの関係性を理解していない |
評価項目3 | 適切なデータ構造を利用して,適切なプログラムを作成することができる | 適切なデータ構造を利用して,プログラムを作成することができる | 適切なデータ構造を利用して,プログラムを作成することができない |
評価項目4 | 大きなプログラム開発におけるC言語の基本手法を正確に理解している | 大きなプログラム開発におけるC言語の基本手法を理解している | 大きなプログラム開発におけるC言語の基本手法を理解していない |
学科の到達目標項目との関係
教育方法等
概要:
プログラミング1,2ではC言語の文法を一通り学び,与えられた比較的小さな課題に対する基礎的なプログラミング技法を習得した.本科目では,プログラミング1,2で取り上げられなかった事項について学ぶと共に,これらの基礎的事項を利用した基本的プログラミング手法について学び,より実践的な基礎を習得することを目指す.
授業の進め方・方法:
到達目標 ( 1 ) ~ ( 4 )の達成度について,
演習課題 100 %
の割合で評価を行なう.50点以上を合格とする.
原則として,再評価試験および追認試験は実施しない.
注意点:
基本情報処理技術者試験の試験対策としても十分に理解しておくこと.
演習課題は,自ら考えて取り組むこと.
再試験は特別な事情のない限り,原則として実施しない.
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
講義ガイダンス,Unix上でのプログラミング ターミナルソフトの利用方法,Unix上での開発方法・コンパイル方法,演習
|
プログラミングに必要な仮想環境を準備し、Unix上での編集・プログラミング・コンパイルなどができる。
|
2週 |
配列とポインタ ポインタ配列および配列とアドレスの関係について学び,演習を行う. |
配列とポインタとの関係、ポインタ配列を理解し、プログラムが書ける。
|
3週 |
構造体とポインタ 構造体とポインタの利用について学び,演習を行う. |
構造体とポインタの関係を理解し、それを利用したプログラムが書ける。
|
4週 |
構造体と配列、構造体の中の構造体 構造体配列,構造体の中に構造体を含むようなデータについて学び,演習を行う. |
構造体の中に配列や構造体がある、あるいは構造体の配列のような複雑なデータ構造を理解し、プログラムに利用できる。
|
5週 |
メモリとキャスト メモリの利用,キャストなどについて学び,演習を行う. |
メモリを必要に応じて確保し、ポインタを通じて利用できる。
|
6週 |
ポインタと関数 関数においてポインタをどのように利用するかを学び、演習を行う. |
これまでの構造体のポインタなどを関数に利用し、プログラムに利用できる。
|
7週 |
main関数の引数、ビット演算 main関数の引数、及びビット演算について学び,演習を行う. |
main関数の引数を理解し、引数のあるプログラムが書ける。
|
8週 |
中間試験 第1回~第7回の範囲 |
これまでの文法事項などを良く理解している。
|
2ndQ |
9週 |
ファイル入出力 ファイルの取扱いについて学び,演習を行う. |
高水準ファイル入出力を利用できる。
|
10週 |
関数ポインタ 関数ポインタについて学び,演習を行う. |
関数ポインタを理解し、それを利用できる。
|
11週 |
プリプロセッサ C言語におけるプリプロセッサについて学び,演習を行う. |
プリプロセッサにおけるマクロを理解し、プログラムに応用できる。
|
12週 |
モジュール モジュールについて学び,演習を行う. |
モジュールに分けた開発を理解し、make を持ちいることができる。
|
13週 |
記憶クラス 変数などの有効範囲について学び,演習を行う. |
外部変数・静的変数などについて理解し、変数の寿命などをプログラミングに利用できる。
|
14週 |
線形リスト 線形リストの初歩について学び、演習を行う。 |
リストを利用したプログラミングの初歩が理解できる。
|
15週 |
期末試験 第9回~第14回の範囲
|
これまでの文法事項を良く理解している。
|
16週 |
まとめとセキュアプログラミング |
セキュアプログラミングの基礎を理解する。
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 3 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 3 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 3 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 3 | |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 3 | |
主要な計算モデルを説明できる。 | 3 | |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 3 | |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 3 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 3 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 3 | |
評価割合
| 試験 | 演習課題 | 相互評価 | 態度 | ポートフォリオ | その他 | 合計 |
総合評価割合 | 0 | 100 | 0 | 0 | 0 | 0 | 100 |
基礎的能力 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
専門的能力 | 0 | 100 | 0 | 0 | 0 | 0 | 100 |
分野横断的能力 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |