1年次の「基礎プログラミング」で学んだJava 言語の基本を再確認し,クラスの機能を学ぶことで,プログラミング言語を理解するための基本能力を養い,演習によって学習内容の応用力を身に着けることを目標とする。3年次の「アルゴリズムとデータ構造」で学ぶ内容の準備を行う。
概要:
1年生で習ったJava 言語の基本を再確認し,構文やクラスの機能を学ぶことで,Java言語だけでなく,今後,他のプログラミング言語を理解するための基本能力を養う。講義による座学とプログラム作成演習により、学習内容の応用力を身に着ける。
この科目は,企業で実際にプログラム作成に関わる実務を担当していた教員が,その経験を生かして,プログラミング言語の使用に関して講義形式や演習形式で授業を行うものである。
授業の進め方・方法:
座学により基本知識を学び,課題や演習により理解度の確認を行う。時間内に課題や演習を行う場合には,課題や演習が完成しなかった分が次回までの宿題になる。課題として時間内に小テストを行う場合がある。学生は,事前事後学習として,授業中に配布した学習シート等による課題およびプログラム作成演習を計約15時間行う。
注意点:
積み重ねて学習する科目のため,1年次の学習内容を含めて自分で復習を継続することが必須である。課題は小規模なプログラムまたは小テストとする。演習はやや大きめのプログラム作成とレポートとする。
成績評価式:試験点(60点満点) + 課題点(20点満点) + 演習点(20点満点); ここで, 試験点= 0.6×(中間試験点(百点満点)+期末試験点(百点満点)) ÷ 2 とする。ただし,小数点以下は四捨五入して計算する。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
直線的プログラミング:プログラムの作成方法を復習し,端末プログラム上でコマンドラインでのコンパイル方法を学ぶ。変数(の型),定数,値,代入文,演算子などを復習する。 【事前事後学習の内容(1時間)】学習シート |
変数,定数,型について理解し,代入文を正しく書き,コマンドラインでプログラムをコンパイルし,実行することができる。
|
2週 |
プログラムの基本構造:分岐と繰り返し、および文字と数値の出力文の書式などを復習する。 switch文による多分岐について学ぶ。 【事前事後学習の内容(1時間)】学習シート |
分岐や繰り返しを含むプログラムを書くことができる。
|
3週 |
メソッドの基本:プログラムのモジュール化について復習する。 【事前事後学習の内容(1時間)】プログラミング演習 |
メソッドを用いたプログラムを書くことができる。
|
4週 |
「基本の復習」の復習:アルゴリズムの基本や配列を振り返るとともに,printf文について学びトレース方法を学ぶ。 【事前事後学習の内容(1時間)】プログラミング演習 |
これまでに習ったJava言語の基本要素を理解できているか確認し,printf文を書くことができるようになり,プログラムの動作にそったトレースができる。
|
5週 |
文字、文字列:文字列のしくみを確認し,文字列を含むデータ構造について学ぶ。 【事前事後学習の内容(1時間)】プログラミング演習 |
文字,文字列について理解していることを確認し,それらを用いたプログラムを書くことができる。
|
6週 |
文字列配列とコマンドライン引数:OSと応用プログラムの橋渡しの方法について学ぶ。 【事前事後学習の内容(2時間)】プログラミング演習 |
コマンドライン引数を使ったプログラムを書くことができる。
|
7週 |
ネスト構造:プログラム構造の階層化と変数の有効範囲について学ぶ。 【事前事後学習の内容(1時間)】学習シート |
ネスト構造を持ったプログラムを書くことができる。
|
8週 |
中間試験:Javaプログラムの基本的な事項について試験する。 |
Javaプログラム言語の基本事項を習得して理解できているか,基本的なプログラムが書けるかを確認する。
|
2ndQ |
9週 |
クラスの基本:クラスのしくみ,クラスの利用方法を学ぶ。【事前事後学習の内容(1時間)】プログラミング演習
|
クラスとは何かを理解し,複数のクラスをもつプログラムを書くことができる。
|
10週 |
クラスの機能と利用:クラス型やインスタンスについて学ぶ。メンバへのアクセス制限,private修飾子などを学習する。 【事前事後学習の内容(1時間)】学習シート |
クラスとインスタンスの関係について理解し,インスタンスを生成して使うプログラムを書くことができる。
|
11週 |
クラスの機能の拡張:クラスの継承やプログラムの流用方法について学習する。 【事前事後学習の内容(1時間)】プログラミング演習 |
クラスの継承について理解することができる。
|
12週 |
多次元配列、実数の表現と計算方法:データ構造の拡張により,自然界の情報のプログラムへの反映方法を学ぶ。【事前事後学習の内容(2時間)】プログラミング演習
|
多次元配列や実数の表現方法を理解し,それらを用いたプログラムを書くことができる。
|
13週 |
ファイル入出力:実用的なプログラムの作成に向けて、ファイル処理の基礎について学ぶ。 【事前事後学習の内容(1時間)】プログラミング演習 |
ファイル入出力をともなうプログラムを書くことができる。
|
14週 |
アルゴリズムの工夫:幾つかの代表的なアルゴリズムの基礎を学ぶ。 |
指定されたアルゴリズムに基づいたプログラムを書くことができる。
|
15週 |
期末試験:中間試験の試験範囲の復習,実数を扱うプログラム,クラス,オブジェクト(インスタンス),ファイル入出力に関する問題を出題する。 |
Java言語の機能を理解し,それを用いたプロうグラムが作成できることを確認する。
|
16週 |
Java言語の基本的な機能に関する総復習を行う。 |
Java言語の機能の理解を試験結果を振り返り,再確認する。
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 4 | 前1 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | 前3 |
変数の概念を説明できる。 | 4 | 前1 |
データ型の概念を説明できる。 | 4 | 前1,前12 |
制御構造の概念を理解し、条件分岐を記述できる。 | 4 | 前2 |
制御構造の概念を理解し、反復処理を記述できる。 | 4 | 前2 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | 前7 |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | 前1 |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | 前4 |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 2 | 前1 |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 2 | 前1 |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 2 | 前9 |
主要な計算モデルを説明できる。 | 2 | 前9 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 3 | 前8 |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 3 | 前8 |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 3 | 前8 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 3 | 前8 |
分野別の工学実験・実習能力 | 情報系分野【実験・実習能力】 | 情報系【実験・実習】 | 与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。 | 3 | 前9 |
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | 前10 |
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。 | 3 | 前13 |
フローチャートなどを用いて、作成するプログラムの設計図を作成することができる。 | 3 | 前14 |
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。 | 3 | 前14 |
与えられた仕様に合致した組合せ論理回路や順序回路を設計できる。 | 2 | 前2 |
標準的な開発ツールを用いてプログラミングするための開発環境構築ができる。 | 2 | 前2 |
要求仕様にあったソフトウェア(アプリケーション)を構築するために必要なツールや開発環境を構築することができる。 | 2 | 前2 |
要求仕様に従って標準的な手法によりプログラムを設計し、適切な実行結果を得ることができる。 | 2 | 前14 |