プログラミング演習Ⅰ

科目基礎情報

学校 木更津工業高等専門学校 開講年度 平成28年度 (2016年度)
授業科目 プログラミング演習Ⅰ
科目番号 0018 科目区分 専門 / 必修
授業形態 演習 単位の種別と単位数 履修単位: 2
開設学科 情報工学科 対象学年 2
開設期 通年 週時間数 2
教科書/教材 林晴比古著「C言語クイック入門&リファレンス」ソフトバンク,2010年,2808円
担当教員 大枝 真一

到達目標

・プログラム開発ツール(UNIXコマンド,エディタ)を使いこなすことができる.
・関数を用いたプログラムを作成できる.
・文字列処理を行うことができる.
・ポインタの基礎的な利用ができる.
・応用プログラムを作成できる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
UNIXコマンド自らUNIXコマンドやエディタの使い方を調べ,使いこなすことができる.UNIXコマンドやエディタを使うことができる.UNIXコマンドやエディタを使うことができない.
プログラミング基礎自ら課題を設定し,プログラムを作成できる.与えられた課題に対し,プログラムを作成できる.与えられた課題に対しても,プログラムを作成できない.
関数関数を理解し,人に説明できる.関数を理解し,使用できる.関数を理解できない.
ポインタポインタを理解し,メモリとの関係を人に説明できる.ポインタを理解し,使用できる.ポインタを理解できない.

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

教育方法等

概要:
プログラミングを実際に作成することで,ソフトウェアの動作原理を理解する.具体的にはC言語を扱うが,他の言語であっても応用が効くように汎用的なプログラミング言語の知識習得を目指す.
得に,構造化プログラミングの基本を学ぶとともに,メモリ管理の原理を理解する.
授業の進め方・方法:
演習を中心に授業を進める.配布したプリントを理解し,課題を解くことでプログラミングスキル向上を目指す,わからないことがあれば,教科書を使い自分自身で調べることが大切である.
注意点:
「プログラミング演習I」の授業と連動している。対象となる問題を理解し、適切な処理内容に置き換える能力を身に付けること。さらに、その処理内容をプログラムとして実装することができる能力を身に付けること。各種プログラム開発ツールは十分に使いこなせるようにすること。課題についてよく考え、手を動かし、プログラムを自らの力で作成できる能力を身につけること。

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 UNIXコマンドを用いて、プログラム開発が行えるようにプログラム開発ツールやEmacsエディタの使い方を理解する。 UNIXコマンドの使い方がわかる.
2週 UNIXコマンドを用いて、プログラム開発が行えるようにプログラム開発ツールやEmacsエディタの使い方を理解する。 UNIXコマンドの使い方がわかる.
3週 プログラムの基本である、連接、選択、反復を復習し、使いこなせるように理解する。 連接、選択、反復を説明できる.
4週 プログラムの基本である、連接、選択、反復を復習し、使いこなせるように理解する。 連接、選択、反復を説明できる.
5週 1次元配列と2次元配列の違いを理解し、配列の初期化と反復の用い方を理解する。 配列を使える.
6週 1次元配列と2次元配列の違いを理解し、配列の初期化と反復の用い方を理解する。 配列を使える.
7週 乱数の生成方法について学ぶ。 乱数を扱える.
8週 前期中間試験 前期中間試験までの学習内容
2ndQ
9週 関数について学び、戻り値あり、戻り値なしの関数について理解する。 関数がわかる.
10週 関数について学び、戻り値あり、戻り値なしの関数について理解する。 関数がわかる.
11週 関数について学び、戻り値あり、戻り値なしの関数について理解する。 関数がわかる.
12週 文字列の扱い方を学ぶ。 文字列を扱うことができる.
13週 文字列の扱い方を学ぶ。 文字列を扱うことができる.
14週 応用プログラムとしてテキストベースのゲームを作成する. ゲームを作成するための設計ができる.
15週 応用プログラムとしてテキストベースのゲームを作成する. 設計した仕様にしたがってコーディングできる.
16週 前期定期試験
前期定期試験までの学習内容
後期
3rdQ
1週 変数とデータ型について理解する。 データ型について理解する.
2週 関数と配列を組合せて使う方法を理解する. 関数と配列を組み合わせて扱える.
3週 ポインタの基礎を学ぶ。 ポインタの概念がわかる.
4週 関数とポインタの関係について学ぶ. 関数とポインタを扱える.
5週 配列とポインタの関係について学ぶ。
配列とポインタを扱える.
6週 単純選択ソート、バブルソートについて学ぶ。 アルゴリズムの基本を学ぶ.
7週 単純選択ソート、バブルソートについて学ぶ。 ソートできる.
8週 後期中間試験 後期中間試験までの学習内容
4thQ
9週 応用プログラムとしてグラフィカルなゲームを作成する. 自分で作りたいものを書き出すことができる.
10週 応用プログラムとしてグラフィカルなゲームを作成する. プログラムを作るための設計ができる.
11週 応用プログラムとしてグラフィカルなゲームを作成する. ゲームプログラムをコーディングできる.
12週 応用プログラムとしてグラフィカルなゲームを作成する. 作ったプログラムをデバッグテストできる.
13週 構造体の基礎を学ぶ。 構造体を扱える.
14週 構造体と関数の関係を学ぶ. 構造体と関数を組み合わせて扱える.
15週 ファイルの読み出し、書き出し、追記を行える効率的なファイル入出力方法を学ぶ。 ファイル入出力ができる.
16週 学年末試験 学年末試験までの学習内容

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング変数とデータ型の概念を説明できる。3
制御構造の概念を理解し、条件分岐や反復処理を記述できる。3
代入や演算子の概念を理解し、式を記述できる。3
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。3
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。3
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。3
主要な言語処理プロセッサの種類と特徴を説明できる。3
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。3
プログラミング言語は計算モデルによって分類されることを説明できる。2
主要な計算モデルを説明できる。2
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。3
ソフトウェア時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。3
アルゴリズムの概念を説明できる。3
与えられたアルゴリズムが問題を解決していく過程を説明できる。3
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。3
整列、探索など、基本的なアルゴリズムについて説明できる。3
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。3
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。3
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。2
ソフトウェアを中心としたシステム開発のプロセスを説明できる。2
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。2
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。2
計算機工学整数・小数を2進数、10進数、16進数で表現できる。3
整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。3
基数が異なる数の間で相互に変換できる。3
コンピュータを構成する基本的な要素の役割とこれらの間でのデータの流れを説明できる。1
プロセッサを実現するために考案された主要な技術を説明できる。1
メモリシステムを実現するために考案された主要な技術を説明できる。1
入出力を実現するために考案された主要な技術を説明できる。1
コンピュータアーキテクチャにおけるトレードオフについて説明できる。1
コンピュータシステム処理形態の面でのコンピュータシステムの分類である集中処理システムと分散処理システムについて、それぞれの特徴と代表的な例を説明できる。1
ネットワークコンピューティングや組込みシステムなど、実用に供せられているコンピュータシステムの利用形態について説明できる。1
デュアルシステムやマルチプロセッサシステムなど、コンピュータシステムの信頼性や機能を向上させるための代表的なシステム構成について説明できる。1
システム設計には、要求される機能をハードウェアとソフトウェアでどのように実現するかなどの要求の振り分けやシステム構成の決定が含まれることを説明できる。2
ユーザの要求に従ってシステム設計を行うプロセスを説明することができる。1
プロジェクト管理の必要性について説明できる。2
システムプログラムコンピュータシステムにおけるオペレーティングシステムの位置づけを説明できる。1
プロセス管理やスケジューリングなどCPUの仮想化について説明できる。1
形式言語の概念について説明できる。1
オートマトンの概念について説明できる。1
コンパイラの役割と仕組みについて説明できる。2
情報数学・情報理論離散数学に関する知識をアルゴリズムの設計、解析に利用することができる。1
コンピュータ上での数値の表現方法が誤差に関係することを説明できる。1
コンピュータ上で数値計算を行う際に発生する誤差の影響を説明できる。1
コンピュータ向けの主要な数値計算アルゴリズムの概要や特徴を説明できる。1
その他の学習内容少なくとも一つの具体的なコンピュータシステムについて、起動・終了やファイル操作など、基本的操作が行える。3
少なくとも一つの具体的なオフィススイート等を使って、文書作成や図表作成ができ、報告書やプレゼンテーション資料を作成できる。3
少なくとも一つのメールツールとWebブラウザを使って、メールの送受信とWebブラウジングを行うことができる。3
コンピュータウィルスやフィッシングなど、コンピュータを扱っている際に遭遇しうる代表的な脅威について説明できる。2
コンピュータを扱っている際に遭遇しうる脅威に対する対策例について説明できる。2
データモデル、データベース設計法に関する基本的な概念を説明できる。1

評価割合

課題合計
総合評価割合100100
基礎的能力5050
専門的能力5050