プログラミング演習

科目基礎情報

学校 鶴岡工業高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 プログラミング演習
科目番号 0047 科目区分 専門 / 必修
授業形態 演習 単位の種別と単位数 履修単位: 3
開設学科 創造工学科(情報コース) 対象学年 3
開設期 通年 週時間数 3
教科書/教材 高橋麻奈: やさしいC,SBクリエイティブ
担当教員 田中 勇帆

到達目標

変数とデータ型の概念を説明できる。代入や演算子を理解し,式を記述できる。制御構造を理解し,条件分岐や反復処理を記述できる。関数(プロシージャ)を理解し,関数を使ったプログラムを記述できる。与えられた問題に対して,それを解決するためのソースプログラムを記述し,実行することができる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1制御構造を理解し,条件分岐や反復処理を記述し,説明できる。制御構造を理解し,条件分岐や反復処理を記述できる。制御構造を理解し,条件分岐や反復処理を記述できない。
評価項目2関数を理解し,これらを含むプログラムを記述し,説明できる。関数を理解し,これらを含むプログラムを記述できる。関数を理解し,これらを含むプログラムを記述できない。
評価項目3与えられた問題に対して,それを解決するためのソースプログラムを記述し,説明できる。与えられた問題に対して,それを解決するためのソースプログラムを記述できる。与えられた問題に対して,それを解決するためのソースプログラムを記述できない。

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

(D) 専門分野の知識と情報技術を身につける。 説明 閉じる

教育方法等

概要:
1年,2年で学習したC言語のプログラミング能力を高めることを目標とします。問題のトップダウン的解析や関数によるプログラムの機能分割に積極的に取り組むことにより,構造化プログラミングの方法を理解し,実践的なプログラミング能力を身につけます。
授業の進め方・方法:
前半は,教科書の練習問題程度のプログラムを作成することで,C言語のプログラミングの基本を復習・理解してください。後半は,提示された問題に対して,それを解決するためのアルゴリズムを考え,プログラムを作成する実習を行います。
授業への取り組み(出席および授業課題提出状況)30%,レポート 70%で総合評価し,50点以上を合格とします。
注意点:
プログラムを完成させることが目的ではなく,プログラミングという作業に慣れることが重要です。構造化プログラミング,関数による機能分割にもチャレンジして欲しいと思います。人に聞いたり,ネットで調べたりすることは大切ですが,プログラムのコピーだけは絶対に行わないようにしてください。

事前・事後学習、オフィスアワー

【オフィスアワー】 授業日の15:00~16:00

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス
シラバスの説明,授業の進め方,プログラムの作成方法
前期授業の進め方を理解する。
プログラムの記述,コンパイル,実行の方法を理解する。
2週 C言語の基本
画面への出力,課題提出メールの書き方
Cプログラムの基本構造を理解する。
ディスプレイへの出力ができる。メールの作法を理解する。
3週 変数と代入,式の記述
キーボードからの入力
変数について説明できる。変数に代入できる。数式を記述できる。キーボードから変数に入力できる。
4週 条件文
if文,if else文,switch case文
条件設定よる場合分けを行うことができる。
5週 複雑な条件式
論理演算子
かつ(AND),または(OR)による複雑な条件式を記述できる。
6週 繰り返し
for文,while文,do while文,入れ子構造
繰り返しの内容によって,命令文を適切に使い分けることができる。
7週 配列
添字,配列の初期化
配列の考え方を理解し,プログラムを作成できる。
8週 配列
2次元配列,2次元配列の初期化,多次元配列
多次元配列の考え方を理解し,プログラムを作成できる。
2ndQ
9週 関数
関数の戻り値と型,引数,関数の呼び出し
関数の戻り値,関数の型,関数の引数について説明できる。
10週 関数の設計 関数を設計し,プログラムを作成できる。
11週 変数
ローカル変数,グローバル変数,静的変数,動的変数,変数の寿命
変数を適切に使い分けることができる。
12週 乱数 乱数を理解し,乱数を用いたプログラムを作成できる。
13週 文字と文字列 文字列の表現方法を理解し,文字列を処理するプログラムを作成できる。
14週 課題プログラム1
基本的な(簡単な)プログラムを作成できる。
15週 ファイル操作
ファイルデータの読み取り,ファイルデータの書き込みを処理するプログラムを作成できる。
16週
後期
3rdQ
1週 データ構造
スタック
データ構造スタックのデータ格納の特徴(last in first out)を理解し,スタックとスタックを操作するプログラムを実装できる。
2週 データ構造
キュー
データ構造キューのデータ格納の特徴(first in first out)を理解し,キューとキューを操作するプログラムを実装できる。
3週 データ構造
リスト実装の準備
変数や型が占めるバイト数を求めるsizeof演算子を用い配列や構造体が占めるバイト数を求めることができる。
malloc関数を用いて,適切なメモリサイズをもつ領域を動的に確保できる。
4週 データ構造
リスト
データ構造リストと配列の違いについて,メモリ確保や格納場所へのアクセスの観点から説明できる。
構造体とポインタを適切に用いてリストとリストを操作するプログラムを実装できる。
5週 プログラム解析
プログラム鑑賞会
夏季休業の課題プログラム1に関連するプログラム等を解読し,良い点・問題な点を指摘できる。
6週 プログラム解析
goto文と構造化プログラミング
プログラム実行順が複雑に入り組んだプログラムを観察し,プログラムの可読性の重要性を説明できる。
構造化プログラミング手法を用いたプログラムを設計できる。
7週 プログラム解析
プログラム読解演習
プログラムの仕様書とそのプログラムを読解し,プログラムを保守・点検できる。
8週 プログラム設計手法
全数探索
全ての可能性のある解の候補を全て調べる全数探索法を理解し,プログラム作成に応用できる。
4thQ
9週 プログラム設計手法
動的計画法
対象となる問題を複数の部分問題に分割し,部分問題の結果を記録しながら解く動的計画法を理解し,プログラム作成に応用できる。
10週 プログラム設計手法
再帰
最小公倍数を求めるユークリッド互除法を理解する。
ユークリッド互除法を再帰を用いて表現し,最小公倍数を求めるプログラムを作成できる。
11週 プログラム設計手法
プログラム設計手法演習
全数探索法を用い約数を全て列挙するプログラムを作成できる。
再帰を用いて素因数分解を実行するプログラムを作成できる。
12週 数値解析
二分探索法を用いた方程式の求解
探索の対象となるデータ範囲を半分ずつに限定しながら値を探索する二分探索法を理解する。
二分探索法を用いて方程式の近似解を求めるプログラムを作成できる。
13週 数値解析
モンティカルロ法
乱択を繰り返し行い答えを求める手法の一つであるモンティカルロ法の手法を理解する。
モンティカルロ法を用いて円周率の近似値を求めるプログラムを作成できる。
14週 数値解析
数値微分
微分の近似値を計算する数値微分の手法を説明できる。
微分値を利用し関数の最小値を求める手法である勾配降下法を説明できる。
勾配降下法を用いて関数の最小値を求めるプログラムを作成できる。
15週 数値解析
数値積分
定積分の近似値を計算する区分求積法と台形則を説明できる。
定積分の近似値を求めるプログラムを作成できる。
16週

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。4
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4
変数の概念を説明できる。4
データ型の概念を説明できる。4後2
制御構造の概念を理解し、条件分岐を記述できる。4
制御構造の概念を理解し、反復処理を記述できる。4
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4後2
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。4
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。3
ソフトウェアアルゴリズムの概念を説明できる。3
与えられたアルゴリズムが問題を解決していく過程を説明できる。3
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。3
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。3
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。3
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。3
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。3
その他の学習内容少なくとも一つの具体的なコンピュータシステムについて、起動・終了やファイル操作など、基本的操作が行える。4
少なくとも一つの具体的なオフィススイート等を使って、文書作成や図表作成ができ、報告書やプレゼンテーション資料を作成できる。4
少なくとも一つのメールツールとWebブラウザを使って、メールの送受信とWebブラウジングを行うことができる。4

評価割合

試験発表相互評価態度ポートフォリオその他合計
総合評価割合00030070100
基礎的能力0001003040
専門的能力0001003040
分野横断的能力0001001020