1年,2年で学習したC言語のプログラミング能力を高め,構造化プログラミングの方法を理解し,実践的なプログラミング能力を身につける。特に,関数による機能分割ができるようになる。
概要:
1年,2年で学習したC言語のプログラミング能力を高めることを目標とし,少し大きな問題を解くことにより,プログラミングの勘所をつかむ。特に,問題のトップダウン的解析や関数によるプログラムの機能分割に積極的に取り組むことにより,構造化プログラミングの方法を理解し,実践的なプログラミング能力を身につける。
授業の進め方・方法:
最初に授業のガイダンスとプログラミングの考え方を説明する。3つの演習課題をそれぞれ3~4週間でプログラムとして完成させる。アルゴリズムとプログラム,実行結果,作業メモを報告書にまとめ提出する。
授業への取り組み30%,レポート70%で総合評価し,50点以上を合格とする。
注意点:
プログラムを完成させることが目的ではなく,プログラミングという作業に慣れることが重要である。構造化プログラミング,関数による機能分割にもチャレンジして欲しい。人に聞いたり,ネットで調べたりすることは大切であるが,プログラムのコピーだけは絶対に行わないこと。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ガイダンス 授業の進め方,作業メモの書き方,関数化の方法 |
授業の進め方を理解する。
|
2週 |
練習課題 カレンダーを表示するプログラムの解説 |
作業メモの使い方を理解する。問題のトップダウン的な解析方法を理解する。
|
3週 |
カレンダーを表示するプログラムの解説 |
機能分割(関数化)の考え方を学び,その有効性を理解する。
|
4週 |
課題1 説明,手計算による解答 |
課題の内容を理解する。 手作業(手計算)で課題を解くことができる。この過程を作業メモにまとめることができる。
|
5週 |
課題1 演習(アルゴリズム作成) |
作業メモの内容をアルゴリズムとして文書化することができる。
|
6週 |
課題1 演習(プログラミング) |
作成したアルゴリズムをC言語のプログラムとして実現できる。
|
7週 |
課題2 説明,手計算による解答 |
課題の内容を理解する。 手作業(手計算)で課題を解くことができる。この過程を作業メモにまとめることができる。
|
8週 |
課題2 演習(アルゴリズム作成) |
作業メモの内容をアルゴリズムとして文書化することができる。
|
2ndQ |
9週 |
課題2 演習(プログラミング) |
作成したアルゴリズムをC言語のプログラムとして実現できる。
|
10週 |
課題2 演習(プログラミング) |
作成したアルゴリズムをC言語のプログラムとして実現できる。
|
11週 |
課題3 説明,手計算による解答 |
課題の内容を理解する。 手作業(手計算)で課題を解くことができる。この過程を作業メモにまとめることができる。
|
12週 |
課題3 演習(アルゴリズム作成) |
作業メモの内容をアルゴリズムとして文書化することができる。
|
13週 |
課題3 演習(プログラミング) |
作成したアルゴリズムをC言語のプログラムとして実現できる。
|
14週 |
課題3 演習(プログラミング) |
作成したアルゴリズムをC言語のプログラムとして実現できる。
|
15週 |
課題の解説 |
自分の作成したプログラムとプログラム例を比較し,違いを理解できる。
|
16週 |
|
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 変数とデータ型の概念を説明できる。 | 4 | |
代入や演算子の概念を理解し、式を記述できる。 | 4 | |
制御構造の概念を理解し、条件分岐や反復処理を記述できる。 | 4 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 3 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 2 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 3 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 3 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 2 | |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 2 | |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 2 | |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 2 | |