プログラミング基礎

科目基礎情報

学校 高知工業高等専門学校 開講年度 2018
授業科目 プログラミング基礎
科目番号 B2017 科目区分 専門 / 必修
授業形態 演習 単位の種別と単位数 履修単位: 2
開設学科 SD 基礎教育・一般科目 対象学年 2
開設期 通年 週時間数 2
教科書/教材 明快入門C
担当教員 西内 悠祐,岡村 修司,立川 崇之

到達目標

1.基本的なアルゴリズムとデータ構造を理解する。
2.論理的な思考ができる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1問題を解決するための手順やフローチャートからC言語のプログラムを構築できる。C言語のプログラムを理解し,プログラムがどのように動作するのか説明できる。C言語のプログラムを理解できず,プログラムがどのように動作するのか説明できない。
評価項目2問題を解決するための手順をフローチャートで記述できる。記述されたフローチャートを理解し,フローチャートの動作を説明できる。記述されたフローチャートを理解できず,フローチャートの動作を説明できない。

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

教育方法等

概要:
基本的なアルゴリズムとデータ構造に関する演習を通じて,論理的な思考力を修得し,コンピュータ上でプログラムの開発・実行・動作確認が行えるようになることを目指す。これにより,基本的な問題解決能力の向上も目指す。各コースに分かれる前の基礎教育であるので,特定のコースに特化した内容は扱わず,標準的,基本的な内容について体験的に学ぶ。ひとつの課題に対して,2~3週間の演習時間を設けるので,自分自身で考え,問題点を見つけ,解決することを心がけてほしい。
授業の進め方・方法:
まず,演習の内容について,スライドなどを用いて説明する。学生はノートを取り,わからないことがあれば,時間中に質問する。その後,コンピュータを使って演習(プログラム開発)に取り組む。演習中は,教員が支援する。演習は動作確認を行うことで終了する。次回までに,演習の内容を報告書にまとめ提出する。定期試験も実施する。
注意点:
初めから,すべてのことを教えてもらうつもりでは,問題を解決する能力の向上は望めない。他の学生と相談することは構わないが,各自が主体的に取り組むことが必要である。

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス
開発環境の基本的な操作法
授業の進め方,評価法などについて理解する。
エディタの基本操作,実行可能ファイルの作成,フォルダの作成と移動について理解する。
2週 コンパイルとリンク ソースファイル,機械語ファイル,実行可能ファイルの関係を理解し,実行可能ファイルを生成できる。
3週 アルゴリズムとデータ構造 アルゴリズムとデータ構造の概要を理解する。
4週 最大値 1次元配列と繰り返し文を用いて10個の値から最も大きな値を選び出す。
5週 乱数 コンピュータ上で生成できる乱数について理解し,一様乱数を生成するプログラムを作成する。
6週 最大公約数(1) ユークリッドの互除法によって最大公約数を求めるプログラムを作成する。
7週 最大公約数(2) ユークリッドの互除法によって最大公約数を求めるプログラムを作成する。
8週 スタック(1) スタックの概要を理解し,データを格納する関数を作成する。
2ndQ
9週 スタック(2) スタックからデータを取り出す関数を作成する。
10週 スタック(3) データの格納と取り出しが適切に行えることを確認する。
11週 キュー(1) キューの概要を理解し,キューにデータを格納する関数を作成する。
12週 キュー(2) キューからデータを取り出す関数を作成する。
13週 キュー(3) データの格納と取り出しが適切に行えることを確認する。
14週 数式の評価(1) 逆ポーランド記法による数式の表現法を理解する。
逆ポーランド記法による数式をキューに格納する。
15週 数式の評価(2) キューから数式を取り出し,スタックを用いて式を評価する関数を作成する。
16週 数式の評価(3) キューから数式を取り出し,スタックを用いて式を評価する関数を作成する。
後期
3rdQ
1週 整列(1) 整列の概要を理解する。乱数を生成し,一次元配列に格納する。隣り合ったデータを入れ替える関数を作成する。
2週 整列(2) バブルソート法を用いて整列する関数を作成する。
3週 リスト(1) リストの概要を理解する。一次元配列によるリストの実現法を理解する。
4週 リスト(2) リスト中のデータを線形探索する関数を作成する。
5週 リスト(3) リストの先頭にデータを挿入する関数を作成する。
6週 リスト(4) リストの先頭のデータを削除する関数を作成する。
7週 グラフ(1) グラフの概要を理解する。
グラフを実現するデータ構造を定義する。
8週 グラフ(2) グラフを探索する関数を作成する。
4thQ
9週 グラフ(3) グラフを探索する関数を作成する。
10週 2分木(1) 2分木の概要を理解する。
2分木を実現するデータ構造を定義する。
11週 2分木(2) 数式を2分木に格納する。
12週 2分木(3) 2分木を探索することで,数式を表示する。
13週 2分探索(1) 2分探索の概要を理解し,2分探索を行う関数を作成する。
14週 2分探索(2) 2分探索を行う関数を作成する。
15週 ファイル処理(1) ファイル処理の概要を理解し,シーケンシャルファイルにデータを書き出す関数を作成する。
16週 ファイル処理(2) シーケンシャルファイルからデータを読み込む関数を作成する。

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

分類分野学習内容学習内容の到達目標到達レベル授業週

評価割合

試験発表相互評価態度ポートフォリオ課題合計
総合評価割合300030040100
基礎的能力300030040100
専門的能力0000000
分野横断的能力0000000