プログラミング

科目基礎情報

学校 仙台高等専門学校 開講年度 令和03年度 (2021年度)
授業科目 プログラミング
科目番号 0041 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 総合工学科Ⅰ類 対象学年 3
開設期 前期 週時間数 4
教科書/教材 適宜資料配布
担当教員 奥村 俊昭

到達目標

1.ポインタや構造体など、プログラミングにとって重要な考え方を理解し、プログラミング言語で処理を記述できる。
2.与えられた問題に対して、それを解決するためのソースプログラムを記述できる。与えられたソースプログラムを解析し、プログラムの動作を予測することができる。ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる、その動作を確認できる。
3.要求仕様に従って、いずれかの手法により動作するプログラムを設計・実装することができる。実行効率を考慮した設計や実装ができる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
1.プログラミング要素ポインタや構造体などを利用し、複雑な処理を実現することができる。ポインタや構造体などの基本的な利用方法を理解し、適切なプログラムを記述することができる。ポインタや構造体を利用したプログラミングができない。
2.ソフトウェア作成与えられた複雑な問題に対して、それを解決するためのソースプログラムを作成し実行し、予測した実行結果と照らし合わせて考察し、更なる改良を提案することができる。与えられた問題に対して、それを解決するためのソースプログラムを作成し実行したり、実行結果を予測することができる。与えられた問題に対して、それを解決するためのソースプログラムを記述することができない。
3.実践的プログラミング要求仕様に従い、ユーザの利便性を考慮した高いレベルでの設計ができ、それをプログラムとして実装することができる。要求仕様に従って、プログラムを設計し、実装することができる。要求仕様が理解できず、正しい設計・実装ができない。

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

JABEE (A) 実践技術者としての高度でかつ幅広い基本的能力・素養

教育方法等

概要:
ポインタ、構造体と共用体、ファイル処理等について、講義と実習を通して学習する。小・中規模のプログラムを作成する課題を与える。
プログラミング基礎で学んだ知識に加えて、C言語に関する文法を全て習得し、小・中規模のプログラムを作成できることを目標とする。
授業の進め方・方法:
第2学年『プログラミング基礎』の続きに相当する科目である。授業の進め方は基本的に『プログラミング基礎』を踏襲する。
資料の配布はLMS(Blackboard)で行う。C言語に関する文法(ポインタ、構造体、ファイル操作)を学習し、各節ごとに演習課題に取り組む。課題の提出はLMSで行う。
事前学習(予習):毎回の授業前までに、授業で行う内容と意義を考えて整理しておくこと。課題についてもプログラム設計は事前学習として行い、演習室ではコーディングを行うようにすること。
復習・振り返りのためにLMSを用いて小テストを行う。各小テストは必ず合格すること(繰り返し受験可能)。また、毎回の授業終わりにLMS上で学習内容振り返りシートの記入を行う。
事後学習(復習):授業内で解説した内容についてビデオを授業終了後に公開する(令和2年度の学年に対して作成したビデオ)。授業で学んだことを振り返り、課題についてレポートを作成すること。
注意点:
コードを入力するだけがプログラミングではないことに留意し、きちんと手順を踏んで課題に取り組むこと。
プログラミングテクニックについては授業時間内だけで説明しきれるものではない。下に挙げる参考書等を活用し、予習と復習を奨励する。C言語のプログラミング環境は学校の演習室のみではなく手持ちのPCに自ら環境を構築し、いくつもプログラムを作成し、失敗を繰り返し克服することが肝要である。
【参考書等】
「やさしく学べるC言語入門 第2版」皆本晃弥(サイエンス社)
「C言語によるプログラミング 基礎編」システム計画研究所・内田智史(オーム社)
「C実践プログラミング」Steve Oualline(オライリー・ジャパン)
「C言語によるプログラミング スーパーリファレンス編」内田智史他(オーム社)
など

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス
第2学年科目『プログラミング基礎』復習(1)
第2学年までに学習した内容について説明できる。
2週 第2学年科目『プログラミング基礎』復習(2) 第2学年までに学習した内容について説明でき、小規模なプログラムを作成できる.
3週 ポインタ ポインタの特徴と動作を理解し、適切に扱うことができる。
4週 ポインタ 演習(1) ポインタの特徴と動作を理解し、適切に扱うことができる。
メモリ空間の動的確保と可変長多次元配列を利用できる。
5週 ポインタ 演習(2) ポインタの特徴と動作を理解し、適切に扱うことができる。
メモリ空間の動的確保と可変長多次元配列を利用できる。
6週 ポインタ 演習(3) ポインタの特徴と動作を理解し、適切に扱うことができる。
メモリ空間の動的確保と可変長多次元配列を利用できる。
7週 構造体と共用体 構造体の特徴を理解し、適切なデータ操作ができる。
共用体の意味とメモリ領域の扱いを理解し、ビット単位でのデータ操作ができる。
8週 構造体と共用体 演習(1) 共用体の意味とメモリ領域の扱いを理解し、ビット単位でのデータ操作ができる。
2ndQ
9週 構造体と共用体 演習(2) 共用体の意味とメモリ領域の扱いを理解し、ビット単位でのデータ操作ができる。
10週 中間試験、返却・解説
ファイル処理
テキストファイルとバイナリファイルの違いを理解し、適切に操作することができる。
11週 ファイル処理 演習(1) テキストファイルとバイナリファイルの違いを理解し、適切に操作することができる。
12週 ファイル処理 演習(2) テキストファイルとバイナリファイルの違いを理解し、適切に操作することができる。
13週 総合演習(1) これまでに学習した内容を応用し、課題の要求を満たすプログラムを作成することができる。
14週 総合演習(2) これまでに学習した内容を応用し、課題の要求を満たすプログラムを作成することができる。
15週 総合演習(3) これまでに学習した内容を応用し、課題の要求を満たすプログラムを作成することができる。
16週 前期末試験返却、振り返り
総合演習(4)
これまでに学習した内容を応用し、課題の要求を満たすプログラムを作成することができる。

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング与えられた問題に対して、それを解決するためのソースプログラムを記述できる。3前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15,前16
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。3前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15,前16
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。3前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15,前16
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。4前1,前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15,前16
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。4前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15,前16
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。4前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15,前16
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。4前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15,前16
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。4前1,前13,前14,前15,前16
分野別の工学実験・実習能力情報系分野【実験・実習能力】情報系【実験・実習】与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。3前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15,前16
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。3前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15,前16
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。3前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15,前16
フローチャートなどを用いて、作成するプログラムの設計図を作成することができる。3前1,前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15,前16

評価割合

定期試験小テスト課題等提出物合計
総合評価割合351550100
基礎的能力1052035
専門的能力25102055
分野横断的能力001010