| 回 | 主題 | コマシラバス項目 | 内容 | 教材・教具 |
|
1
|
プログラミング言語Javaの理解【プログラミングの基礎】【Java言語の理解】
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第1回の授業では、『プログラミング言語「Java」』、『Javaの特徴と普及』、『本科目の概要』をテーマとして扱う。まず本科目で中心的に扱うJava言語の立ち位置を確認するために、昨今で扱われている主要なプログラミング言語と比較しながら解説する。加えて、Java言語の特徴と、Java言語が普及した理由について詳しく説明する。
|
|
|
コマ主題細目
|
① プログラミング言語「Java」 ② Javaの特徴と普及 ③ 本科目の概要
|
|
細目レベル
|
① コンピュータになんらかの作業を行わせるためには、コンピュータがその作業「内容」を理解できなければならない。そのためには、コンピュータが理解できる言葉であるマシン語(machine code)と呼ぶ言語で記述したプログラムを作成することが必要になる。マシン語は、「0」と「1」の2つ数字の羅列でできている。コンピュータは、この数字の羅列(マシン語)を理解できるが、 人間には理解できる内容ではない。そこで、目的に合わせ、マシン語よりも人間の言葉に近いプログラミング言語をこれまでにいくつも考案してきた。Java言語も、プログラミング言語のひとつである。多くのプログラミング言語がある中で、Java言語は今でも人気の言語のひとつであり、その需要の高さがうかがえる。
|
② Java言語は1995年、米国のSun Microsystems社(現Oracle社)が開発したプログラミング言語である。Java言語は実行環境に依存せず、様々なハードウェアの上で動作可能なプログラムを作成できる。通常プログラムはOS(Operating System)にあわせて作成し、そのOS上でしか動作しないが、Java言語はJava VM(Java Virtual Machine: Java 仮想マシン)という特徴的な仕組みによってこの常識を覆し、どんなOSの上でも一つのプログラムで動作できる(Write once, run anywhere)。Java言語がインターネットと共に普及したのは、OSを選ばずさまざまな環境に対応できる特徴的なメリットがあるためである。このコマ主題細目では、マシン語の特徴、Java言語の特徴と利点まで理解することが必要である。
|
③ 本科目は週に6コマ、15週であるため全90コマ実施する。全90コマの授業は上述の三つの到達目標に対応するように3部構成で展開される。第1部の第1回~第6回がプログラムの基礎、第7回~第62回がJava言語の基本、第63回~第90回がクラスの作成の基本、の三つで構成される。まず第1部はJava言語を用いたプログラム演習を実施するための準備がテーマである。具体的には文字入力方法、プログラムを作成・実行するために必要なアプリケーションについて、Javaのプログラムの実行に必要なJDKやコマンドプロンプトについてである。 続いて第2部は、Java言語の基本的文法の演習がテーマである。変数、プログラミングの基本、演算子、型変換、演算子、条件分岐、制御文、配列・多次元配列、実行時引数、入力受付というテーマについて触れる。第3部はJava言語の根幹となるオブジェクト指向の学修がテーマである。クラスとオブジェクトの関係、オブジェクトに含まれるフィールド変数、メソッド、コンストラクタの挙動や実行の方法、それにかかわるさまざまなキーワード(this、staticなど)というテーマについて触れる。それぞれの文法テーマについて基本的な理解を求める学修コマ、そのテーマに沿ったJava Bronze SE形式の問題演習とその解説を行うコマ、さらに演算子と条件分岐のテーマ以降はそのテーマに沿ったプログラムを作成するコマという目的に合わせてコマを実施する。履修判定指標などを合わせて確認する。
|
|
キーワード
|
① プログラミング言語 ② マシン語 ③ Java仮想マシン ④ エディション
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第1回の授業ではプログラミング言語の立ち位置、つまりコンピュータが理解できる言語と、人間が使う言語をつなぐことを確認した。さらにJava言語の特徴と普及した経緯を説明した。また、科目の流れと履修判定指標について確認した。復習として、90回で行われる授業がどのように展開し、それぞれ何を主題とするのか、期末試験ではどのような設問に対応しなければならないのかをもう一度確認しておく。また、Java言語の特徴やJava言語が普及した理由をもう一度確認しておく。
◆次回授業の予習 第2回の授業「キーボードによる文字入力」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
2
|
文字入力の方法と能力の向上【プログラミングの基礎】【文字入力とファイル】
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第2回の授業では、プログラムを作成する上で最も基本となる文字入力について学修する。キーボードによる文字入力の際に入力される文字や記号の確認と、その入力の演習を行う。加えてタイピング能力を向上させるために、ホームポジションの説明やキーボード入力の練習方法の紹介を行う。
|
|
|
コマ主題細目
|
① キーボードによる文字入力 ② タイピング能力の向上
|
|
細目レベル
|
① PCで作業をする上で、キーボードを用いた文字入力の速さは作業の効率に直結する。パソコンに触れる機会の多少は人によって異なり、入力が得意な人もいればそうでない人もいるだろう。そのため、今回の環境プログラミングⅠの講義では、キーボードを用いた文字入力の基本的な手法を確認する。その際には全角入力と半角入力ごとにキーボードのどのキーを押せばどのような文字を入力できるのかを確認する。この際には入力する仮名のみならず記号も全角・半角ごとに確認し、さらに記号の名称などを確認する。ここで確認する名称は環境情報学科内で共通して使うのでしっかりと覚える必要がある。
|
② 文字入力の能力はソフトウェアを開発する上では非常に重要である。そのため文字入力に関して、目標を決めて入力の速度を高める練習をする。なお、次に示す目標はインターネット上のイータイピング(https://www.e-typing.ne.jp/english/)におけるローマ字タイピングの腕試しチェックの結果を出力するスコアである。第30回時点で80、第60回時点で120、第90回時点で150を超えることを目標とする。タイピングの基本としてFとJに人差し指を置き、そこから外に指を置く、ホームポジションを意識すると良い。また、「うえいあお」を右手人差し指、左手中指、右手中指、左手小指、右手薬指の順番に打つことでより指の動かし方が理解できる。もちろん、この入力に関する運指はあくまで一例に過ぎないが、上記の得点は自分でやり方を決め、練習することで必ず達成できる目標点である。このコマ主題細目では、ひらがなの入力方法、さまざまな記号の入力方法と読み方まで理解することが必要である。
|
|
キーワード
|
① 文字入力 ② 全角入力と半角入力 ③ タイピング
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第2回の授業ではキーボードを用いた文字入力について学修した。また、記号の読み方についても確認をした。復習として、文字の正しい入力の方法を確認する。なるべく少ないキータッチ数で入力が可能になるようにする。また、タイピング能力の向上のため、各自、練習するようにする。
◆次回授業の予習 第3回の授業「Notepad++の準備」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
3
|
Notepad++の準備【プログラミングの基礎】【文字入力とファイル】
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第3回の授業では、プログラムを作成する上で必要なテキストエディタについて確認する。また、本講義ではテキストエディタのアプリとしてNotepad++を利用する。また、Notepad++のダウンロードやその基本的な使い方を確認する。また、文字情報の可読性を上げるための工夫としてインデントについて学ぶ。
|
|
|
コマ主題細目
|
① Notepad++の準備 ② Notepad++の扱い方
|
|
細目レベル
|
① Javaのプログラムを作成するためには文章を作成するアプリケーションであるテキストエディタアプリが必要である。本講義ではさまざまなテキストエディタアプリのうち、Notepad++を利用する。そのためNotepad++のダウンロードし、扱い方を学ぶ。なお、今後さまざまな演習で使うフォルダをデスクトップ上に作成しておく。このフォルダを利用して提出するファイルの作成や保存する。このフォルダの作成についてはGUIベースで簡単に作成ができるようになることを目標とする。
|
② Notepad++を用いたプログラムの作成の準備のためにアプリケーションのダウンロードと今後作成するプログラムを保存しておくためのフォルダを作成した。プログラムを作成する前にやるべきこととして実際にNotepad++を使ってファイルを作成し、ファイルへの文字入力、そしてその完成したファイルの保存を行う。文字入力の過程では、ただ文字を羅列するのではなく、構造に合わせて読みやすくするため工夫する。その工夫としてインデントの方法を学ぶ。インデントとはプログラムの行の先頭を数文字分下げることをいう。Notepad++ではインデントの実行にはtabキーを利用する。自身で構造を把握し、可読性の高いプログラムの作成の基礎を学ぶことが重要である。
|
|
キーワード
|
① Notepad++ ② インデント
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第3回の授業ではNotepad++のインストール方法と基本的な使い方を学修した。復習として、再度Notepad++のダウンロードページを確認し、正しいバージョンをインストールする手順を振り返る。また、演習用フォルダの作成や、ファイルの新規作成・保存方法を確認し、実際に文字入力の練習ファイルを作成する。入力時には、文章の構造が見やすくなるようにインデント(tabキー)を意識して整えるようにし、読みやすいコードや文章作成の基礎を身につける。
◆今回授業の復習 第3回の授業ではNotepad++のインストール方法と基本的な使い方を学修した。復習として、再度Notepad++のダウンロードページを確認し、正しいバージョンをインストールする手順を振り返る。また、演習用フォルダの作成や、ファイルの新規作成・保存方法を確認し、実際に文字入力の練習ファイルを作成する。入力時には、文章の構造が見やすくなるようにインデント(tabキー)を意識して整えるようにし、読みやすいコードや文章作成の基礎を身につける。
◆次回授業の予習 第4回の授業「JDKとコマンドプロンプト」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
4
|
文字コードと拡張子【プログラミングの基礎】【文字入力とファイル】
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第4回の授業では、JDK(Java Development Kit)はJava開発に必要なソフトウェアであり、JREやJVMも含まれているため、JDKの導入によってJavaプログラムの作成と実行が可能になる。2026年度の授業ではJDK24を使用し、Oracleの公式サイトからダウンロードを行う。併せて、環境変数の設定方法を学び、Javaの実行環境を整備する。また、Java開発においてはコマンドプロンプトの操作も重要であり、CUIベースの基本操作を演習する。これにより、Javaの開発作業に必要な基礎的なコマンド操作の習得を目指す。
|
|
|
コマ主題細目
|
① JDKのダウンロード ② コマンドプロンプトの使い方
|
|
細目レベル
|
① Javaの開発環境であるJDK(Java Development Kit)のダウンロードし、設定する。JDKは、現在、数多くのOS向けにリリースしている。また、JDKにはJavaの実行環境であるJRE(Java Runtime Environment)を含んでおり、JREはマシン語に変換するためのJVM(Java仮想マシン)を含んでいるため、JDKをダウンロードすることで、Java言語を用いたプログラムの作成と開発が可能になる。2026年度の授業ではJDK24を使用する。そのため、本講義内で学生各自のパソコンにアメリカOracle社のサイト(https://www.oracle.com/jp/java/technologies/downloads/)から、JDK24をダウンロードする。また、ダウンロードしたものの環境変数の設定の方法を学び、実際にその手続きを実行する。
|
② コマンドプロンプトとはCUIと呼ぶ、キーボードで入力した文字列のみで操作する画面インターフェースのことである。Java言語を用いた演習ではコマンドプロンプトのコマンドを用いて実行する。そのため、コマンドプロンプトの基本的な利用方法に関する演習を行う。JDKダウンロードに際して、環境変数の設定ができているかを確認するためにコマンドプロンプトのjavac –versionコマンドを利用する。また、Javaの開発に際してファイルやフォルダの作成や削除をコマンドプロンプト上で扱うことも可能であるため、そのような機能を確認する。例えばmkdirを用いたフォルダの作成やrmdirを用いたフォルダの削除などを実行する。cdは、カレントディレクトリを移動するために必要なコマンドである。これらの基本的なコマンドなどの操作の手順と実行結果を演習で確認する。
|
|
キーワード
|
① JDK ② JRE ③ コマンドプロンプト ④ コマンド
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第4回の授業ではJDKのダウンロードとインストール、環境変数の設定について学修した。復習として、再度JDK23をダウンロードする手順を確認し、環境変数の正しい設定方法を整理する。また、コマンドプロンプトを用いた基本操作についても学修したため、javac -versionコマンドでJDKのバージョンを確認する方法や、mkdir・rmdir・cdなどの基本コマンドを用いてファイル・フォルダ操作を実際に行う。
◆次回授業の予習 第5回の授業「Java言語とプログラミング」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
5
|
Java言語とプログラミング
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第5回の授業では、具体的にJava言語のプログラムの記述方法を学修する。具体的には必ず記述する必要がある文(classやpublic static void main(String[] args)など)の確認をし、それを実際に入力してプログラムを実行するための手順を確認する。そのときにはコンパイルなどの手続きについても理解する。
|
|
|
コマ主題細目
|
① 初めてのJavaプログラミング ② プログラムの内容の確認
|
|
細目レベル
|
① まずはJava言語を用いた初めてのプログラミングを行う。Javaの基本\的な理解ができるまでは、コマンドプロンプトとNotepad++を用いてJavaプログラミングを行う。Notepad++の演習の際に作ったeco_programというディレクトリを利用する。Javaプログラムのコンパイルと実行の練習として、「初めてのプログラミング!」と出力するコードを作成する。具体的には以下のようなプログラムをNotepad++を用いて入力する。
class Exp5_1{ public static void main(String[] args){ System.out.print(“初めてのプログラミング!”); } }
これをNotepad++を用いて記述し「初めてのプログラミング!」と表示することを確認する。Java言語で書かれたプログラムを実行する手続きを理解し、実際に自分で実行できることを確認する。
|
② コJava言語のプログラムにおいて決まりのように書くべきこと(classやpublic static void main(String[] args)など)がある。これらの記述は一体何を意味するのか、基本的な説明を行う。これらの意味は後期のJavaⅡになると意味が完全に理解できるがここでは簡単な説明を行う。また、プログラムを作成しているとエラーが発生することが出てくる。そのときにエラーの内容を把握する必要がある。特にコンパイルしたときにコマンドプロンプト上に出力されるエラーの内容の理解をすることはプログラムを作成していくうえで非常に重要である。そのため、このコマでは実際にエラーを出力し、出力されたエラーの内容を理解できるようにする。
|
|
キーワード
|
① クラス ② メインメソッド ③ コンパイル ④ 実行
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第5回の授業では、Javaプログラムの基本的な作成・実行方法を学んだ。復習として、Notepad++を使って、指定したフォルダにJavaファイルを保存する方法を確認する。Java言語のプログラムの基本構文を再確認する。コマンドプロンプトで該当のフォルダへ移動し、javacコマンドでコンパイルし、javaコマンドで実行する方法を復習する。また、プログラムを実行して文字の出力が正しいかをチェックする。文字の入力ミスや全角・半角の違いにも注意し、正確に記述できるように繰り返し練習する。
◆次回授業の予習 第6回の授業「プログラム作成の所作」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
6
|
プログラム作成の所作
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第6回の授業では、『コメントの利用』、『エスケープシーケンス』をテーマとして扱う。コメントは、プログラム中に補足や説明を書くために用いられる。1行のコメントは「//」で始め、その行の残りは無視する。作成者の情報や処理の意図を記述することで、他者がコードを理解しやすくなる。ただし、複数行にわたる説明を「//」で繰り返すと読みづらいため、「/*」と「*/」で囲むことで複数行コメントを記述できる。コメントはプログラムの動作には影響せず、記述の仕方と使い方を理解することが求められる。エスケープシーケンスは、通常出力できない特殊な文字や制御文字を表すために使う。また、Javaでは数値を桁区切りのカンマで表現できないため、アンダースコアを用いた記法用いられる。これらコメントや特殊文字、記号の出力方法を理解し、正しく扱えるようになることが目的である。
|
|
|
コマ主題細目
|
① コメントの挿入 ② エスケープシーケンス
|
|
細目レベル
|
① コメントはプログラミングコード中に『//』を入力することでその行の『//』に続く文章は無視して処理が行われる。そのため、実際にコメントを残しながら何の計算をしようとしたのかなどのメモを残すという作業を行う。また、誰が作成したコードであるかを、作成し始めた最初の数行にメモしておくとなおよい。そのようなメモを残したい場合は何行にも//を使うと読みづらくなる。そのため『/*』と『*/』で挟むことによって、複数行に渡ったコメントを残すことが可能になる。コメントを使って、自作したコードを誰が見ても理解できるようにしておくとよい。このコマ主題細目では、プログラムの実行に影響しない文章の記述方法と用途を理解していることが必要である。
|
② この式に与える部分に入力しても出力しない文字がいくつか存在する。例えば、『”(ダブルクォーテーション)』がある。これはあくまで文字列をくくるための記号であり、「“Boys, be ambitious.”」と出力しようとしてSystem.out.print(""Boys be ambitious"")と入力しても『”(ダブルクォーテーション)』は表示せず、エラーが帰ってきてしまう。このような特殊な文字を出力するため使うのが、エスケープシーケンスである。例えば『”(ダブルクォーテーション)』を出力したい場合は『\"』と入力することでそれが可能になる。ほかにも主なエスケープシーケンスである『\n』を用いた改行や『\t』を用いた水平タブ、『\\』を用いた「\(ドルマーク)」の出力など、特殊な記号や文字等を出力するためにエスケープシーケンスを実際に入力し、扱うことを目的とする。
|
|
キーワード
|
① コメントの利用 ② エスケープシーケンス
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第6回の授業では、プログラム中にメモを残すためのコメントの書き方について学修した。復習として、コードの理解を助けるために適切な場所にコメントを残す意識を持ち、1行コメントと複数行コメントの使い分けができるようにしておく。特に、処理の目的や内容、作成者の情報などを明示するためにコメントを活用し、他の人が見てもわかりやすいコードを書くことを心がける。また、特殊な文字を出力するためのエスケープシーケンスについても学修した。復習では、改行やタブ、ダブルクォーテーションなどの文字を正しく表示させるために、それらに対応するエスケープシーケンスを使えるようにする。
◆次回授業の予習 第7回の授業「変数の基本」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
7
|
変数の基本
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第7回の授業では、『値の記憶とコンピュータの仕組み』、『変数の宣言』、『変数の初期化』をテーマとして扱う。変数とは、コンピュータのメモリ上のデータ領域に名前を付けて管理するためのもので、必要に応じて値を変更できる入れ物のような存在である。一方、定数は変わらない固定の値そのものを指し、計算に使っても結果が常に一定である。Javaにおいて変数を使うには、まず「変数の宣言」が必要であり、『データ型名 変数名;』という形式で書く。また、変数の「初期化」とは、宣言と同時に値を代入することを指しす。このように初期化された変数は、その後の計算などに利用することが可能である。この単元では、変数と定数の違い、宣言の仕方、初期化の方法を理解することが求められている。
|
|
|
コマ主題細目
|
① 値の記憶とコンピュータの仕組み ② 変数の宣言と代入 ③ 変数の初期化
|
|
細目レベル
|
① 変数とはデータの領域に名前を付けたもののことである。コンピュータのメモリ上にデータを保管しておくためのものである。コンピュータのメモリとはコンピュータの五大装置のうちの主記憶装置のことを指し、処理を行っている間はその処理が主記憶装置に置かれているようになる。膨大なデータを扱う場合は、コンピュータのメモリの範囲に名前を付けて使うときに名前で呼び出せるようにしておくのがよい。変数はいわゆる入れ物であるため、その中にどのような値が入っているかは特に問題がない。基本的な変数の意味について理解できるところまで確認する。
|
② 変数がなければコンピュータは値を記憶できない。そのため、具体的な値を考える前にまず値を入れるハコである変数を用意する。変数を用意することをJavaでは「変数を宣言する」という。変数を宣言するのには1行で『データ型名 変数名;』と記述する。例えば、整数の値を記憶させるためのNumberという変数を用意するには『int Number; 』と記述すればよい。同様に文字を記憶させるためのletterという変数を用意するには『char letter; 』と記述すればよい。このように変数を宣言すると、その名前の変数をプログラム内で使用することが可能になる。変数の基本的な値の宣言とその代入の方法が理解できるところまで確認する。
|
③ 変数を宣言する際に『int num;』で宣言し、『num = 3;』で代入することをこれまで学修した。しかし、実際にはこれらの宣言と代入を同時に実行できる。これを「変数の初期化」という。上記の2つに分かれた宣言と代入は『int num =3; 』と記述することで同時に処理、つまり変数を初期化できる。つまり、変数の初期化は『型名 識別子=式;』と記述すればよい。変数の宣言と代入、初期化の関係が理解できるところまで確認する。
|
|
キーワード
|
① 変数 ② 変数の宣言 ③ 変数の代入 ④ 変数の初期化
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第7回の授業では、変数と定数の違いについて学修した。復習として、変数と定数の概念的な違いを理解し、それぞれがどのような場面で使うかを整理しておく。また、Javaにおける変数の宣言方法についても学んだ。変数は使用する前に必ず宣言する必要があり、その際にはどのような種類のデータを扱うのかを明示する必要がある。復習では、変数の宣言の構文とその意味を正しく理解し、適切なデータ型を選んで使用できるようにする。そして、変数の初期化についても学修した。復習では、変数の初期化がどのような目的で使われるのか、またその記述方法について確認し、プログラム内で適切に活用できるようにする。
◆次回授業の予習 第8回の授業「変数の扱い方」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解できなかった部分に下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
8
|
変数の扱い方
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第8回の授業では『変数名の決定』、『値の再代入と定数』について学修する。具体的には変数名の決定においてJava言語ではいくつか覚えておく必要がある命名規則がある。例えば使える記号種類や数字の扱い方、そして変数名にすることのできない予約語などがあるということである。また、変数に値を再代入するときにJava言語ではどのような挙動をするのかについて理解し、定数への再代入をした際の挙動についても確認する。
|
|
|
コマ主題細目
|
① 変数名の決定 ② 値の再代入と定数
|
|
細目レベル
|
① 変数を宣言すると特定の値をその変数の中に記憶させられる。宣言する際の注意点として変数名に命名規則があることに注意が必要である。先頭は英字、ドル記号($)、またはアンダースコア(_)で始まらなくてはならない。2文字目以降は英字、ドル記号($)、アンダースコア(_)に加えて数字も利用可のとなる。ただし、すでに登録してあるJavaの予約語を利用することはできない。Javaの予約語とはJava言語の開発において必要な手続きを示すものであり、そのような言葉を変数名にしてしまうと予約語を利用することができなくなってしまう。そこで予約語の一覧表を確認し、変数名としてどのようなものがふさわしいのか確認する。
|
② 変数の中に特定の値を記憶させることを、「値を代入」するという。例えば、整数の値を記憶させるためのnumという変数を『int num;』で宣言する。そしてnumに3という値を代入するには『num = 3;』と記述すればよい。またnumに3を代入したときに、別の7という数字を代入できる。つまり、『num = 7;』と再度記述すればよい。このとき、numに入っていた3という情報は上書きし、7のみがnumに残ることになる。また、変数の値を異なる変数に代入することも可能である。このときは、変数に代入した値は移動せず、コピーしたことになるのでそこも注意が必要である。また、変数に対して定数が存在する。これは変わらない値のことであり、最初に代入した値を保持するものである。そのため、再代入はコンパイルエラーになる。このコマ主題細目では、実際にプログラムを用いて値を代入する方法を理解することが目標である。
|
|
キーワード
|
① データ型 ② 変数名の決定 ③ 変数への再代入 ④ 定数
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第8回の授業では、Javaで扱う基本データ型の種類を学修した。復習として、Javaの基本データ型が8種類あり、それぞれの特徴(扱えるデータの種類や大きさ)が異なることを整理し、どのようなデータ型にどのような値が代入できるのかを確認しておく。また、変数名をつける際の命名規則についても学んだため、変数名の先頭に使用できる文字や、使用できない予約語などを確認し、適切な名前の付け方を確認しておく。さらに、変数に値を代入する方法についても学修した。復習では、値の上書きやコピーの仕組みについてプログラムを読みながら確認しておく。
◆次回授業の予習 第9回の授業「リテラルの基本」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
9
|
リテラルの基本
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第9回の授業では、『さまざまなリテラル』、『数値リテラルの基本』をテーマとして扱う。リテラルとはプログラムに直接記述する値のことであり、真偽値リテラル、文字リテラル、文字列リテラル、数値リテラルがある。それぞれの値を代入するためのデータ型が決定しており、データ型とリテラルに齟齬があれば問題が発生する。リテラルを記述する上での記述方法とさまざまな注意点を理解することを目的とする。
|
|
|
コマ主題細目
|
① さまざまなリテラル ② 数値リテラル
|
|
細目レベル
|
① リテラルとは、プログラムのソースコード中に直接的に書かれている具体的な数値や文字、文字列の値のことであり、変数に代入する値のことである。表記の仕方によってデータ型の識別が可能になるようにそれぞれの書式が言語によって異なっている。このリテラルの分類として理論値リテラル、文字リテラル、文字列リテラル、指数リテラル、浮動小数点リテラルなどがある。整数リテラルはそのまま整数値をそのまま入力した場合は10進数となる。論理値リテラルはtrueとfalseの2つのみであり、boolean型の変数に代入可能である。TRUEやFalseのような大文字と小文字の違いも区別するため、boolean型の変数には大文字を含んだリテラルも代入ができない。char型には1文字のみのリテラルを格納できる。方法としては『''(シングルクォーテーション)』で囲まれた1文字をそのまま入力するか、『\u』に続く16進法を用いた文字コードを用いて入力することでデータ型へのリテラルの代入が可能にある。
|
② 数値リテラルとして整数リテラルと浮動小数リテラルが存在する。整数リテラルはbyte、short、int、longの順番に保存可能なデータ量が増えていく。このうちlong型はリテラルの末尾にLをつけることで代入に問題が起こりにくいので、つけるようにする。浮動小数リテラルはfloat型とdouble型の2種類が存在し、float型に代入する際にはfをつける必要がある。そして数が大きいときにはその桁数がわかりやすいように_(アンダースコア)を用いた表現の記述が可能である。具体的なアンダースコアの扱い方とその注意点について理解できるところまで確認する。
|
|
キーワード
|
① リテラル ② 整数リテラル ③ 浮動小数リテラル
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第9回の授業では、さまざまなリテラルをプログラム中に記述する方法について学修した。具体的には整数リテラル、浮動小数リテラル、文字リテラル、文字列リテラル、論理値リテラルを学修した。特に整数リテラルと浮動小数リテラル、文字リテラルについてはただプログラム内に記述するのではなく、文字コードを用いた記述方法について学修をした。復習では特殊な方法で記述されているリテラルを読み、コンパイル等の問題がないのか、具体的には何が書かれているのかを理解するできるようにする。
◆次回授業の予習 第10回の授業「特殊な数値リテラル」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
10
|
特殊な数値リテラル
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第11回の授業では、『特殊な数値リテラル』をテーマとして扱う。リテラルとは変数に代入する値そのもののことである。整数リテラル、浮動小数リテラル、文字リテラル、文字列リテラルなどが存在する。また、整数リテラルには10進数、2進数、8進数、16進数など記述方法が存在し、10進数以外は先頭にbや0や0xをつけることでどの表記かわかるようになっている。さらに浮動小数リテラルも普通に浮動小数を記述する方法と10を基数とした指数表現をする場合が存在する。さまざまな記述方法を理解し、プログラムを読めるようにする。
|
|
|
コマ主題細目
|
① 整数リテラルとN進法 ② 基数表現を用いたリテラル
|
|
細目レベル
|
① 数の表し方は10進数以外も存在する。第10回の授業で学修した通り、2進法、8進法、16進法がJava言語でも利用される数の表し方である。細目レベル①で記述した通り、整数リテラルは普通に打ち込んだ場合は10進数として理解されるが、整数値の先頭に0bを入力した場合は2進数、整数値の先頭に0を入力した場合は8進数、整数値の先頭に0xまたは0Xを入力した場合は16進数を意味する。そのため、0bの後ろには0と1のみが並び、0の後ろには0から7まで、0xの後ろには0から9とaからfが並ぶことになる。
|
② 動小数点リテラルは小数点以下の小数部分を持つ数字である。プログラムに直接浮動小数値を記述するような浮動小数リテラルの記述方法が一般的であるが、桁数が非常に大きい数値や、非常に小さい小数点以下の値を扱うような場合は「仮数×基数^指数」の形で表すことがある。基数はJava言語では10が用いられ、「特定の値×10のn乗」といった形で表現する。Java言語などのプログラムでは10のn乗を「e」を用いて表現する。これを踏まえて桁の大きい値や小数点以下の小さな値を「仮数e指数」の形でプログラムに表現できるようにする。
|
|
キーワード
|
① 整数リテラル ② N進数表現 ③ 浮動小数リテラル ④ 基数表現
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第10回の授業では、整数リテラルとN進法について学習した。これにより、プログラム中に直接記述される数値(リテラル)の意味と、その表記方法によって異なる進数(10進数・2進数・8進数・16進数)として扱われる仕組みを理解することができた。特に、Javaでは先頭に0bを付けると2進数、0を付けると8進数、0xまたは0Xを付けると16進数として認識されることを確認した。復習として、10進数・2進数・8進数・16進数の各表記を使って同じ数値を表現し、それらをSystem.out.println()で出力して値が一致しているか確認するプログラムを自分で作成する。また、異なる進数同士で演算(例:加算)を行い、その結果がどうなるかを検証することで、N進法の扱いに慣れるように練習する。あわせて、表記ミスによるエラーや想定外の動作にも注意を払いながら、正しくリテラルを記述する力を身につける。 ◆次回授業の予習 第11回の授業「Java Bronze問題演習1ー変数とリテラルー」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
11
|
Java Bronze問題演習1ー変数とリテラルー
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第12回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第8~11回の授業で学んだ「変数」と「リテラル」であるが、これまでに学んだJava言語に関する知識に関する問題も出題されるのでここまでの単元の復習も兼ねている。
|
|
|
コマ主題細目
|
① JavaSE Bronze問題演習1-変数とリテラル-
|
|
細目レベル
|
① 変数に関するJava Bronze SE形式の問題演習を行う。具体的には以下のような問題を解き、その解説を聞くという内容である。
例題 次のコードがあります。
1. public class Test { 2. public static void main(String[] args) { 3. byte a = 100; 4. short b = 50000; 5. int c = 10000000; 6. long d = 123456789L; 7. } 8. }
コンパイルした結果として正しものは次のどれですか。1つ選択してください。
A. コンパイルに成功する B. 3行目に問題があるためコンパイルエラーとなる C. 4行目に問題があるためコンパイルエラーとなる D. 5行目に問題があるためコンパイルエラーとなる E. 6行目に問題があるためコンパイルエラーとなる F. 複数行に問題があるためコンパイルエラーになる
正しい選択肢を選択できること、その根拠をもって回答できることが重要である。また、わからない問題や間違えた問題は実際にプログラムを作成し、実行することで出力の結果を理解できるように復習する。
|
|
キーワード
|
① 変数の宣言と代入 ② 変数の初期化 ③ データ型 ④ さまざまなリテラル
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第12回の授業では、「変数」と「リテラル」を中心的なテーマとしたJavaSE Bronze形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第13回の授業「算術演算子」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
12
|
算術演算子
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第13回の授業では、『四則演算子』、『商とデータ型』をテーマとして扱う。Java言語では計算結果を直接出力でき、基本的な加減乗除に加えて剰余演算も可能である。加法には「+」、減法には「-」、乗法には「*」、除法には「/」、剰余には「%」を用いる。計算式をそのまま出力するには括弧で囲う必要があり、囲わない場合は文字列として連結することがあるため注意が必要である。四則混合の演算では、加減乗除が混在する計算において正しい順序で演算することを学ぶ。基本的には乗除を先に、加減を後に計算するというルールがあり、これに括弧を加えることで意図した順序に変更できる。Javaを用いてその計算結果を正確に出力させるとともに、記述したプログラムが出力する結果を読み取る力を身につける必要がある。
|
|
|
コマ主題細目
|
① 演算子の基本 ② 商とデータ型 ③ 文字列の結合
|
|
細目レベル
|
① 出力したい文字を直接『"(ダブルクォーテーション)』や『''(シングルクォーテーション)』で囲うことで標準出力が可能であることを確認した。また文字列のみならず数値の計算結果を出力することも可能である。この授業では基本的な足す、引く、かける、割る計算(加減乗除)に加え、あまりを求める剰余計算について確認する。具体的には、+演算子を用いて加法を、-演算子を用いて減法や負の数を、*演算子を用いて乗法を、/演算子を用いて除法を、%演算子を用いて剰余を計算する。例えば100 + 200の計算結果である300を標準出力させるには『System.out.print(100 + 200);』とすることで可能となる。また、100を3で割ったあまりである1を標準出力させるには『System.out.print(100 % 3)』とすることで可能となる。また、演算子には計算の優先順位があり、()が最も優先され、次に*、/、%、そして最後に+、-である。この優先順位はこれまでに算数や数学で習ってきた演算順序と変わりがないので、プログラムを動かしながら確認する。演算子の扱い方とその計算の順序が理解できるところまで確認する。
|
② り算において整数のみを扱うような場合はデータ型について特に考える必要がないが、小数を含む計算においてはデータ型を考えることが必要になってくる。例えば、13÷5の計算をしたいとき、「13/5」と記述し、System.out.prinln()メソッドで出力すると、2が返ってくる。本来は2.6が正しい計算結果となるがこのようになるのは、計算で用いているリテラルが整数リテラル、つまりint型であるためである。Java言語ではint型同士の計算結果はint型になるため、整数値である2までしか計算を行わないのである。もし、2.6という小数の結果にするには計算に浮動小数リテラル、つまりdouble型を用いる必要がある。例えば「13.0/5.0」のように両方とも浮動小数型にするか、「13.0/5」のように片方を浮動小数型にすると計算結果として2.6という値が得られる。小数を含む計算、または計算結果が考えられる場合は、データ型を意識することでより正しい理解をすることが可能である。
|
③ また、文字列とともに標準出力することも可能であり、『System.out.println("計算結果"+(100 + 200));』と入力することで「計算結果300」と出力することが可能になる。ただし計算させたいときは計算式を( )で囲わなければならない。『System.out.println("計算結果"+ 100 + 200);』と入力した場合、「計算結果100200」と出力する。これは2つの数字の文字列を並べるという意味で+演算子が使われたためである。このような出力について学び、正しく出力ができるようになることを目的とする。また、変数に代入した値でも計算できることを確認する。このコマ主題細目では、四則演算の計算方法を理解すること、四則演算の計算結果を正しく出力する方法を理解することが必要である。
|
|
キーワード
|
① 四則演算子 ② 剰余算 ③ 文字列の出力
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆◆今回授業の復習 第12回の授業では、四則演算子の使い方について学修した。復習として、加減乗除や剰余計算をJavaのコード内で正しく使えるように、演算子の記号や記述のルールを整理しておく。乗除を加減よりも先に計算するという基本的な演算の順序を確認し、カッコを使った優先順位の変更についても理解しておく。Javaのプログラムを実際に書きながら、計算結果が想定通りになるかを確かめることで、演算の処理順序をより正確に身につける。また、他者が作成した四則混合のコードを読み、どのような順番で計算が行われ、どのような結果になるかを考える練習も行う。特に、文字列と数値を連結して出力する場合には、括弧を適切に使わないと意図しない結果になることを理解し、どのように出力するかを確認しながら練習する。また、演算結果を標準出力する方法や、変数を用いた計算の仕方も再確認する。
◆次回授業の予習 第13回の授業「さまざまな演算子の扱い方」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
13
|
さまざまな演算子の扱い方
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第13回の授業では、『0による除法』、『複合代入演算子』をテーマとして扱う。0による除法に関しては、数学と同様にJavaでも注意が必要である。数学では x ÷ 0 は未定義とし、検算が成立しないため禁止している。Javaでも同様に、整数型(intなど)で0による除算を行うと ArithmeticException という例外が発生し、プログラムがエラーを返す。一方で、浮動小数点型(floatやdouble)では例外は発生せず、正の値を0で割ると「Infinity」、負の値では「-Infinity」と出力する。複合代入演算子は、代入演算子と算術演算子を組み合わせたもので、変数の値を更新する際に使う。これにより、変数に格納した値を基に再計算し、その結果を再び同じ変数に格納できる。こうした演算子の意味を正確に理解することが目的である。
|
|
|
コマ主題細目
|
① 0による除法 ② 複合代入演算子
|
|
細目レベル
|
① コ学校教育で扱う算数や数学において、x÷0という計算はしてはいけない、と習う。なぜならは算数や数学においてx÷0に対して何かしらの解を与えるとどこかで矛盾を抱えてしまうためである。例えば、算数における除法は検算の際に乗法を用いる。〇÷2=3を検算する際には〇=3×2=6のように求めることができる。しかし、〇÷0=△の場合、△×0は0であり、〇に戻ることはない。そのため算数や数学においてはx÷0を行ってはいけない、というように習う。これは大学の授業においてもおなじであるが、ではJavaにおいてx÷0の計算をさせようとした場合どうなるのかを本単元では確認する。例えばint型などの整数値を0で除算した場合はArithmeticExceptionという例外が発生し、エラーが吐き出さる。また、整数型ではないfloatやdoubleのような浮動小数点を含む場合は整数型の場合とは異なる結果を出力する。floatやdoubleの正の数である場合、出力はInfinityとなり、floatやdoubleの負の数である場合は-Infinityを出力する。このコマ主題細目では、0による除算の意味を理解すること、Java言語における0による除法をした場合の出力を理解することが必要である。
|
② 「=」という演算子は代入演算子と呼び、変数に対して値を代入するときに使用する演算子である。この代入演算子と算術演算子を組み合わせた演算子のことを複合代入演算子と呼ぶ。例えば『a += 2 』のように+=と書いた場合、aに2を加算した結果を再びaに代入することができる。実際に『int a; a= 3; a += 2』と入力し、出力するとa = 5を出力する。つまり、最初に代入した値と異なる変数を代入してある状態にできるる。同様に、『a -= 2 』のように-=と書いた場合、aに2を減算した結果を再びaに代入できる。『a *= 2 』のように*=と書いた場合はaに2を乗算した結果を、『a /= 2』のように/=と書いた場合はaに2を除算した結果を、『a %= 2 』のように%=と書いた場合はaを2で除算したあまりの結果を再びaに代入できる。このように特定の変数に格納した変数を改めて計算し、変数に格納した値を変更できるのが複合代入演算子である。この単元においても自らプログラミングし、求めたい計算をすることも重要であるが、それと同じように自分ではない誰かが書いたソースコードを読んで、どのような結果が得られるかを理解することが非常に重要である。よってこのコマ主題細目では、複合代入演算子の意味を理解することが必要であり、複合代入演算子を用いて変数に代入した値が何であるかソースコードを読み理解できることが目標である。
|
|
キーワード
|
① 0による除法 ② 実行時エラー ③ 複合代入演算子
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第13回の授業では、0による除法について学修した。復習では、数学と同様に整数を0で割ることができず、Javaではエラー(例外)が発生することを理解する。また、浮動小数点型の場合はエラーにならず、Infinityや–Infinityを出力するという挙動の違いについても確認する。これらの違いを理解し、プログラム上でどのような場合にエラーが出るのか、またどう対応すべきかを考えられるようにしておく。また、複合代入演算子についても学習した。復習として、加減乗除や剰余といった基本の演算子に代入演算子を組み合わせた書き方がどのような意味を持つのかを整理し、コードの中で正しく使えるようにする。複合代入演算子を使うことで、変数の値を簡潔に更新できる点に注目しながら、演算の流れを追えるようにする。また、自分の書いたコードだけでなく、他人のソースコードを読み、変数の値がどのように変化するかを読み取る力も養っておく。
◆次回授業の予習 第14回の授業「インクリメントとデクリメント」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
14
|
インクリメントとデクリメント
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第14回の授業では、『インクリメントとデクリメント』をテーマとして扱う。インクリメントとデクリメントは、変数の値を1増減させる演算子である。インクリメント(++)は値を1加算し、デクリメント(--)は1減算する。これらは前置と後置で動作が異なり、たとえば「++i」は処理の前に1加算し、「i++」は処理の後に1加算する。同様に、「--i」は処理の前に1減算、「i--」は処理の後に1減算する。コードを書く力だけでなく、記述したコードを正確に読み取り、変数の最終的な値を理解する力も求められる。インクリメントとデクリメントの動作を理解し、コードの中でそれがどのように影響するかを正確に把握することを目的とする。
|
|
|
コマ主題細目
|
① インクリメントとデクリメント ② 前置と後置の挙動の違い
|
|
細目レベル
|
① 第リメントは--演算子のことである。これらの演算子は数値が代入された変数に対して利用ができ、インクリメントは代入されている値を1増やし、デクリメントは代入されている値を1減らすという手続きが実行される。例えば『int i = 1』と変数を初期化したあとに『i++』と記述することで、iの値が2に増えるということである。インクリメントとデクリメントの意味を理解し、基本的な扱い方を学修する。
|
② インクリメントとデクリメントには前置と後置が存在する。前置は『++i』と記述され、後置は『i++』と記述される。この前置と後置の違いは1増減するタイミングである。結論からいうと前置はその処理に入ったときに1増減の処理され、後置はその処理が行われたタイミングで1増減の処理が行われる。このコマでは計算などにおける増減のタイミングを確認し、インクリメント、デクリメントに関する前置と後置による実行結果の違いを確認する。
|
|
キーワード
|
① インクリメント ② デクリメント ③ 前置と後置
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第14回の授業では、インクリメント(++)およびデクリメント(--)について学習した。復習として、それぞれの演算子が変数の値を1つ増減させること、また前置(++i、--i)と後置(i++、i--)によって処理する順番が異なることを理解しておく。特に、演算子の位置によって出力結果や処理の流れが変化するため、実際にどのように動作するかを意識しながらコードを読み解く力を身につける。 また、自分でインクリメントやデクリメントを用いたコードを書くことに加えて、他者が記述したコードを読み、最終的に変数に代入する値や出力する内容がどうなるかを正しく判断できるように練習する。演算の流れを追いながら、処理結果を論理的に説明できるようにする。
◆次回授業の予習 第15回の授業「Java Bronze SE問題演習2-演算子-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
15
|
Java Bronze SE問題演習2-演算子-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第16回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第13~15回の授業で学んだ「演算子」であるが、これまでに学んだ文法に関する複合問題も出題されるのでここまでの単元の復習も兼ねている。
|
|
|
コマ主題細目
|
① Java Bronze SE問題演習2-演算子-
|
|
細目レベル
|
① 演算子に関するJava Bronze SE形式の問題演習を行う。具体的には以下のような問題を解き、その解説を聞くという内容である。
例題 次のコードがあります。
1. class Test { 2. public static void main(String[] args) { 3. int a = 2; 4. int b = 4; 5. System.out.print((10 + 3 * 2 ) + “ “); 6. System.out.print((++a * b++); 7. } 8. }
コンパイル、実行した結果として正しいものは次のどれですか。1つ選択してください。
A. コンパイルエラー B. 26 8 C. 26 15 D. 16 8 E. 16 12 F. 16 15
正しい選択肢を選択できること、その根拠をもって回答できることが重要である。また、わからない問題や間違えた問題は実際にプログラムを作成し、実行することで出力の結果を理解できるように復習する。
|
|
キーワード
|
① 算術演算子 ② インクリメントとデクリメント ③ 実行時エラー
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第15回の授業では、演算子をテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第16回の授業「入力受付」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
16
|
インクリメントとデクリメント【基本文法】【演算子】
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第16回の授業では、『入力受付』をテーマとして扱う。キーボードからの入力を受け取ることで、プログラム実行中にユーザーが値を指定できるようになる。特定の実行時にプログラムが停止し、ユーザーの入力を待つ状態になる。入力した文字列はstrに代入され、以降の処理で利用できる。数値を入力したい場合は、入力した文字列を『Integer.parseInt(str)』でint型に変換して使う。つまり、キーボード入力は基本的に文字列として読み込まれるため、必要に応じて型変換が必要となる。この単元では、実行時の入力処理の方法と、その入力を変数として扱うための型変換の理解が求められる。
|
|
|
コマ主題細目
|
① キーボードによる値の入力
|
|
細目レベル
|
① 変数をプログラミングコード中で初期化し特定の値を代入していたが、その他にもプログラミングコードの実行中に、ユーザーにキーボードからいろいろな文字を入力させることも可能である。例えば、『import java.util.Scanner;』とプログラムの先頭に記述を入れ、mainメソッド内でScannerクラスの宣言を『Scanner scanner = new Scanner(System.in);』と記述することで、文字入力機能を使用することができる。そして入力待ちをするところで『String str = scanner.nextLine();』と記述する。この文が処理した際に、実行画面がユーザーからの入力を待つ状態になり、実行が止まる。この状態で「こんにちは」とキーボードで入力しエンターを押すと『str』という変数に「こんにちは」が代入した状態になる。そのため、『print.out.println(str + "と入力しました")』と続けて入力しておけば、「こんにちはと入力しました」と出力する。なお、このstrは識別子であるため、自分で好きな識別子に変更してよい。また、「こんにちは」のような文字列ではなく、キーボードを使った数値の入力も可能である。『int num = scanner.nextInt();』と入力することでnumという変数に入力した数字を代入することが可能である。このコマ主題細目では、プログラム実行時のキーボードによる入力受付の方法を理解することが必要である。
|
|
キーワード
|
① 入力受付 ② Scannerクラス
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第16回の授業では、キーボードからの入力方法について学修した。これにより、プログラムの実行中にユーザーから値を受け取り、それを変数に代入して処理する方法を理解することができた。復習として、キーボードから文字列を1つ入力して「〇〇と入力しました」と出力するプログラムを自分で作成する。また、数値の入力に対応し、入力した2つの整数の合計を表示するプログラムも作成してみる。文字列と数値の入力の違いに注意しながら、入力値に応じた処理ができるように練習を行う。
◆次回授業の予習 第17回の授業「Scannerクラスとimport」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
17
|
Scannerクラスとimport
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第17回の授業では、『Scannerクラスとimport』をテーマとして扱う。ここまでっ作成してきたプログラムはすべてクラスを宣言し、そのクラスの中にpublic static void main(String[] args)…から始まっていた。これはJava言語の基本であるクラスとそこに含まれるメインメソッドを記述していた。Scannerクラスであり、そのプログラム内にはさまざまなメソッド(処理)が記述されている。それを我々は呼び出して使用していた。このようにすでに用意されたクラスを利用する際にはクラスをimportする必要がある。このコマではScannerクラスを通じてクラスとそのメソッドについて理解する。
|
|
|
コマ主題細目
|
① クラスの定義とメソッド ② importとは
|
|
細目レベル
|
① 前のコマでScannerクラスを使って文字入力の受付を行った。このような「便利な道具の設計図」をクラスと呼ぶ。さらに言えばクラスが設計図であれば、Scannerクラスは「文字入力を扱う道具の設計図」といえる。Java言語ではほとんどの機能はこの「クラス」という単位で用意されている。Scannerクラスには文字列を読み込むための「nextLine()」、整数を読み込むための「nextInt()」、小数を読み込むための「nextDouble()」などのさまざまな機能が含まれている。これらの機能をメソッドと呼ぶ。つまりクラスは便利な機能、つまりメソッドをまとめたもの、という認識で大きくは問題がない。ただしどのクラスも使用するには「Scanner sc = new Scanner(System.in);」のような一文が必要である。最初のScannerは設計図(クラス)の名前、scは設計図から作った具体的な道具の名前、newは設計図から実物を新しく作りましたよというキーワードである。まとめればScannerという設計図を使って、scという入力のための道具を1つ作成したということである。
|
② 便利な設計図を使うには「Scanner sc = new Scanner(System.in);」という記述が必要であると説明したが、もう一つおまじないとして記述していたのがimport文である。このimport文がないままコンパイルするとScannerの記述に対して見つかりませんというエラーが起こる。つまりJava言語ではScannerがどこにあるかを教えてあげる必要がある、ということである。そこで必要なのがimport文である。Scannerクラスはjava.util.Scannerというのが正確な住所であり、それをプログラム中に記述することで改めて利用することができるようになる。import文がない場合は毎回正式な名前を書く必要があるが、importすればそれ以降、簡単に省略できるためimportの使用が推奨されている。
|
|
キーワード
|
① クラス ② メソッド ③ import
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第17回の授業では、クラスとメソッド、そしてimportについて簡単に学修した。クラスが便利な機能であるメソッドを集めた設計図であること、それを具体的に利用するためにnewというキーワードを用いること、そして利用したいクラスが存在する場所を明確に示す必要があることを理解することができた。自身でScannerを利用しているプログラムを作成し、その挙動を再度確認する。また、クラスについて人に説明できるようにしておく。
◆次回授業の予習 第18回の授業「暗黙的型変換」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
18
|
暗黙的型変換
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第19回の授業では、『拡大変換』、『暗黙的型変換』をテーマとして扱う。拡大変換は、基本データ型の間で自動的に行われる型変換のことで、boolean型を除いたすべての基本型で適用される。特に、代入時に小さい型から大きい型への変換は自動的に処理する。また、演算時には最も大きい型に統一して計算が行われる。これを防ぐには、あらかじめどちらかをdouble型にしておく必要がある。このように、拡大変換の仕組みと必要性を理解することが求められる。このとき、どの型に合わせるかはJava言語が自動的に判断し、調整してくれるので、明示的に変換先の型を記述する必要はない。このようなものを暗黙的型変換と呼ぶ。
|
|
|
コマ主題細目
|
① 拡大変換 ② 暗黙的型変換
|
|
細目レベル
|
① 本データ型のデータはboolean 型を除いて全ての基本データ型に型変換できる。そのうち64bitのデータであるdouble型の変数に対して、それより小さい32bitのデータであるint型のデータ10を代入する場合、データは自動的にdouble型のデータ10.0に変換してから double 型の変数に代入することになる。このようにデータの保存に利用されるbit数が大きくなるような型変換のことを拡大変換と呼ぶ。つまり、拡大変換はbyte型→short型、short型とchar型→int型となり、int型以降はint型→long型→float型→double型と右にあるデータ型に拡大するような型変換を指す。また、計算時においても暗黙的に拡大変換し、計算結果の値は計算する値の一番大きいデータ型に自動的に変換することになる。例えば5÷2=2.5という計算をプログラミングするときに『int x = 5; int y = 2; double result = x / y; System.out.println(result);』とすると値は2.0と出力する。これはint型とint型では解答がint型になるため、2.5の0.5を切り捨てる。その後、double型へと変換するため、2.0となったということである。
|
② 拡大変換は最終的にどのデータ型にするかを明記する必要がなく、Java言語が判断し、より最適な型に修正をしていた。このように最終的な型を明記せずにデータの型を変換することを暗黙的な型変換と呼ぶ。しかし、その分Java言語では最終的な計算結果がどのような型になるのかの判断をできていないと想定とこと案る結果が得られる場合がある。例えば、先ほどの2.0となった計算式で、2.5という一般的に正しい計算結果をするにはこれを『int x = 5; double y = 2; double result = x / y; System.out.println(result);』とすればよい。これはJava言語では異なるデータ型同士の計算を行うとき、bit数の大きい型に一致させるためである。つまり拡大変換し、データ型をそろえた上で計算が行われるためである。
|
|
キーワード
|
① 拡大変換 ② 暗黙的型変換 ③ char型の型変換
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第18回の授業では、暗黙的型変換について学習した。復習として、基本データ型においてデータが自動的に別の型へ変換するケースを理解する。特に、拡大変換では小さな型から大きな型へ自動的に代入できることを確認し、どのデータ型がどの型に変換可能かを把握しておく。また、計算時にも最も大きい型に合わせて型変換することを理解し、意図した結果が得られるように型の選択に注意する。復習として、変数の型を確認した上で、計算結果がどのような出力になるのかを理解できるようになるよう確認をする。また、型変換におけるchar型の挙動を理解する。
◆次回授業の予習 第19回の授業「明示的型変換」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
19
|
明示的型変換
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第19回の授業では『縮小変換』、『明示的型変換』をテーマとして扱う。明示的型変換(キャスト)は、boolean型を除く基本データ型同士で、開発者が意図的に型を指定する型変換のことを指す。暗黙的型変換ができない場合でも、キャストを使えば任意の基本型へ強制的に変換できる。たとえば、double型のリテラル20.5をbyte型にキャストすると、小数点以下は切り捨てられ、値は20となる。また、範囲外の値をキャストした場合には、データの一部が切り捨てられる。つまりキャストは小数点の切り捨てやビット単位でのデータ調整を伴う処理であり、演算結果の型を調整する際にも使用する。明示的型変換の仕組みと、変換時に起こるデータの変化を正しく理解することが求められる。
|
|
|
コマ主題細目
|
① 縮小変換 ② 明示的型変換
|
|
細目レベル
|
① 基本的に小さいデータ型に対して大きなデータ型の代入をする際はデータ型の暗黙的型変換は行われないものの、byte型、short型、char型に対してint型の整数リテラル(変数に代入しているデータではなく、数値そのもの)や定数を代入する際には、その数値が代入している変数の範囲内であれば縮小変換が行われる。例えばbyte型の変数に対して、10という数値を代入することを考える。10という数値そのもの、つまり整数リテラルはJavaのデフォルトでint型のデータとなる。つまり、『byte bValue;』でbyte型の変数を宣言した後、『bValue = 10』を実行するのは、byte型変数にint型のデータを代入していることになる。しかし、そこでエラーが起きないのは、10がbyte型の保持できる範囲内(-128~127)なので自動的に縮小変換が行われ、代入することが可能となっている。しかし、『byte bValue; bValue = 500;』とした場合、int型のリテラルである500はbyte型の保持できる範囲外のため、暗黙的な縮小変換を実行できず、コンパイルエラーとなる。保持可能であるかどうかが暗黙的な縮小変換が行われるか否かを決定する。また、保持可能であったとしてもint型の変数をbyte型の変数に代入することはできない。例えば『int iValue = 20; byte bValue; bValue = iValue;』としてもコンパイルエラーとなる。このコマ主題細目では、変数の暗黙的型変換の限界について理解することが目標である。
|
② 基本データ型はboolean型以外であればどの基本データ型にも変換可能であるということを説明した。なお、型変換のことをキャストとも呼ぶ。暗黙的型変換が不可能なパターンでもデータ型のキャストを行うことで、どの基本データ同士でも明示的な型変換が可能である。もちろん、暗黙的型変換が可能なパターンで合ってもこの明示的型変換は利用可能である。『byte bValue= (byte)20.5;』とした場合、double型のリテラルである20.5をbyte型でキャストを行い、代入を行っている。このとき、byte型のデータでは保持できない小数点以下のデータは切り捨てられるため、『System.out.println(bValue);』とすれば20が返ってくることになる。なお計算結果について正しく表示する方法を、キャストを用いて考える。また、範囲を超えた数値をキャストする場合についても説明をする。『byte b = (byte)264;』とした場合、int型のリテラルである264をbyte型のキャストで行い、代入を行っている。ここで、264はbyte型の保持できるデータの範囲を超えているため、byte型の保持できる範囲外のデータが切り捨てられる。この際の具体的な処理方法は次の通りである。int型は32bitであるため、int型の264は2進数表現に直すと「0000_0000_0000_0000_0000_0001_0000_1000」となる。ここでbyte型は8bitの数値であるため下8桁のみを保存し、それ以外を切り捨てるため、変数bには二進数表現で「0000_1000」を保存したことになる。この2進数表現は、10進数で表すと8となるため、byte型の変数bには8を代入することになる。このような型変換は計算結果のデータ型を決定する際にも使う。このコマ主題細目では、変数の明示的型変換の基本的な手順を理解することが必要であり、変数の明示的な型変換による強制的な変換の方法を理解することが目標である。
|
|
キーワード
|
① 縮小変換 ② 明示的型変換 ③ キャスト
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第19回の授業では、縮小変換と明示的型変換ついて学習した。復習として、Javaにおいて異なる基本データ型間で変換する際、キャストを使うことで強制的に型を変えられる仕組みを確認する。特に、小数を整数型に変換する際には小数点以下が切り捨てられること、また数値が変換先の型の範囲を超える場合には意図しない値になることを理解しておく。この復習では、実際に複数のキャストを使ったコードを読み、変換後にどのような値を代入するのかを予測できるようにすることが大切である。さらに、型変換による桁落ちや情報の欠落がどのように起こるかを確認する。
◆次回授業の予習 第20回の授業「Java Bronze SE 問題演習3-型変換-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
20
|
Java Bronze SE 問題演習3-型変換-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第21回の授業では『if文の扱い方』、『比較演算子』をテーマとして扱う。if文は、条件に応じて処理を分岐させるための構文であり、与えられた条件式がtrueの場合にのみ、特定の処理を実行する。if文の正しい構文を理解し、記述されたコードの動作を読み取れるよう演習を行う。比較演算子は、変数の値と他の値を比較し、その結果をboolean型(trueまたはfalse)で返す演算子である。なお、比較と一言にっても数値の大小だけでなく等価性についても判断できる。比較演算子を正しく理解し、ソースコードからその評価結果を読み取る力が求められる。
|
|
|
コマ主題細目
|
① if文の扱い方 ② 比較演算子
|
|
細目レベル
|
① if文は分岐処理を行いたい場合に利用できる。例えば、自動販売機で商品を選んだあと、交通系ICカードで決済を行おうとしたとき、残高が足りていればその決済処理が行われる。もし残高が足りていなければ決済処理は行われないことになる。この場合であればかざした交通系ICカードの残高が足りているかを確認し、trueとfalseのどちらが返ってきたかによって異なる処理、つまり分岐処理が行われていることになる。実際にJavaで分岐処理を行いたい場合、『if(条件){ 処理内容 }』という形で記述する(このシラバスでは改行については省略している)。この場合、条件式の評価がtrueであれば、{ }内に記述した処理を実行することになる。他方、条件式の評価がfalseであった場合は、{ }に記述した処理は実行しない。なお、この処理内容に関する文章が1行であった場合、{ }は不要となる。このように条件によって2つのパターンに分岐し、条件に合致した場合、つまりtrueが返ってきた場合のみ処理を行いたいときにこのif文を使う。なお、この条件式はtrueかfalse、つまりboolean型のデータに置き換えられる式や値でなくてはならない。つまり『if(a==b)』のような比較演算子が使われていれば問題がないが、『if(a=5)』のような代入演算子ではコンパイルエラーとなる。このコマ主題細目では、if文の正しい記述の仕方を理解することが必要であり、ソースコードを読み、出力する内容を理解することが目標である。
|
② 比較演算子とは、ある変数に格納した値とその他の値を比較するときに利用する演算子である。比較演算子はboolean型のデータ、つまりtrueかfalseのどちらであるかを答えてくれる。例えば<(ショウナリと読む)は『a < 10』と入力した場合、変数aに代入した値が10よりも小さい場合はtrueを、そうでない場合はfalseを出力する演算子である。同様に>(ダイナリと読む)は『a > 10』と入力した場合、変数aに代入した値が10よりも大きい場合はtrueを、そうでない場合はfalseを出力する演算子である。上記2つの演算子<、>はどちらもa=10のときにはfalseを出力する。そのため、a=10の場合でもtrueを出力するようにできるよう、<=と>=という演算子も用意されている。例えば『a <= 10』と入力した場合、変数aに代入した値が10以下であればtrueを出力し、それ以外の場合にfalseを出力するようになり、『a >= 10』と入力した場合、変数aに代入した値が10以上であればtrueを出力しそれ以外の場合はfalseを出力するようになる。 また、大小の比較のみならず、等しいか等しくないかを答えてくれる演算子も存在する。例えば『a == 10』と入力した場合、変数aに代入した値が10であった場合のみtrueを、10以外の値が代入された場合はfalseを出力する演算子である。これとは反対に10以外の値が代入されていた場合にtrueを、10と等しい場合にはfalseを出力させたい場合には『a != 10』と入力すればよい。 この主題題目では、比較演算子の意味を理解することが必要であり、比較演算子を用いて書かれたソースコードから出力する値を理解できることが目標である。
|
|
キーワード
|
① if文 ② 論理演算子 ③ eqauls()
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第21回の授業では、比較演算子とif文の使い方について学習した。復習として、まず比較演算子の種類とその役割を整理する。特に、大小の比較や等価性の比較の結果がtrueとfalseのどちらを返すかを理解し、各比較演算子の違いを正確に使い分けられるようにする。また、if文を用いた条件分岐の基本的な構文を確認し、条件式の評価がtrueの場合にのみ処理を実行する流れを理解する。条件式にはboolean型の値が必要であること、比較演算子を使用することで正しく条件判定ができることを確認する。復習では、簡単な条件式とif文を含むコードを読んで、実行結果を正しく予測できるようにし、自身でも条件分岐を含むプログラムを書いて、理解を深めることを目指す。
◆次回授業の予習 第22回の授業「elseの扱い方」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
21
|
if文の基本的な扱い方【基本文法】【比較演算子と条件分岐】
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第21回の授業では、『比較演算子』、『if文の扱い方』をテーマとして扱う。比較演算子は、変数の値と他の値を比較し、その結果をboolean型(trueまたはfalse)で返す演算子である。なお、比較と一言にっても数値の大小だけでなく等価性についても判断できる。比較演算子を正しく理解し、ソースコードからその評価結果を読み取る力が求められる。if文は、条件に応じて処理を分岐させるための構文であり、与えられた条件式がtrueの場合にのみ、特定の処理を実行する。if文の正しい構文を理解し、記述されたコードの動作を読み取れるよう演習を行う。
|
|
|
コマ主題細目
|
① 比較演算子 ② if文の扱い方 ③ ④ ⑤
|
|
細目レベル
|
① 比較演算子とは、ある変数に格納した値とその他の値を比較するときに利用する演算子である。比較演算子はboolean型のデータ、つまりtrueかfalseのどちらであるかを答えてくれる。例えば<(ショウナリと読む)は『a < 10』と入力した場合、変数aに代入した値が10よりも小さい場合はtrueを、そうでない場合はfalseを出力する演算子である。同様に>(ダイナリと読む)は『a > 10』と入力した場合、変数aに代入した値が10よりも大きい場合はtrueを、そうでない場合はfalseを出力する演算子である。上記2つの演算子<、>はどちらもa=10のときにはfalseを出力する。そのため、a=10の場合でもtrueを出力するようにできるよう、<=と>=という演算子も用意されている。例えば『a <= 10』と入力した場合、変数aに代入した値が10以下であればtrueを出力し、それ以外の場合にfalseを出力するようになり、『a >= 10』と入力した場合、変数aに代入した値が10以上であればtrueを出力しそれ以外の場合はfalseを出力するようになる。 また、大小の比較のみならず、等しいか等しくないかを答えてくれる演算子も存在する。例えば『a == 10』と入力した場合、変数aに代入した値が10であった場合のみtrueを、10以外の値が代入された場合はfalseを出力する演算子である。これとは反対に10以外の値が代入されていた場合にtrueを、10と等しい場合にはfalseを出力させたい場合には『a != 10』と入力すればよい。 この主題題目では、比較演算子の意味を理解することが必要であり、比較演算子を用いて書かれたソースコードから出力する値を理解できることが目標である。
|
② if文は分岐処理を行いたい場合に利用できる。例えば、自動販売機で商品を選んだあと、交通系ICカードで決済を行おうとしたとき、残高が足りていればその決済処理が行われる。もし残高が足りていなければ決済処理は行われないことになる。この場合であればかざした交通系ICカードの残高が足りているかを確認し、trueとfalseのどちらが返ってきたかによって異なる処理、つまり分岐処理が行われていることになる。実際にJavaで分岐処理を行いたい場合、『if(条件){ 処理内容 }』という形で記述する(このシラバスでは改行については省略している)。この場合、条件式の評価がtrueであれば、{ }内に記述した処理を実行することになる。他方、条件式の評価がfalseであった場合は、{ }に記述した処理は実行しない。なお、この処理内容に関する文章が1行であった場合、{ }は不要となる。このように条件によって2つのパターンに分岐し、条件に合致した場合、つまりtrueが返ってきた場合のみ処理を行いたいときにこのif文を使う。なお、この条件式はtrueかfalse、つまりboolean型のデータに置き換えられる式や値でなくてはならない。つまり『if(a==b)』のような比較演算子が使われていれば問題がないが、『if(a=5)』のような代入演算子ではコンパイルエラーとなる。このコマ主題細目では、if文の正しい記述の仕方を理解することが必要であり、ソースコードを読み、出力する内容を理解することが目標である。
|
③
|
④
|
⑤
|
|
キーワード
|
① 比較演算子 ② 等価演算子 ③ if文 ④ ⑤
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第21回の授業では、比較演算子とif文の使い方について学習した。復習として、まず比較演算子の種類とその役割を整理する。特に、大小の比較や等価性の比較の結果がtrueとfalseのどちらを返すかを理解し、各比較演算子の違いを正確に使い分けられるようにする。また、if文を用いた条件分岐の基本的な構文を確認し、条件式の評価がtrueの場合にのみ処理を実行する流れを理解する。条件式にはboolean型の値が必要であること、比較演算子を使用することで正しく条件判定ができることを確認する。復習では、簡単な条件式とif文を含むコードを読んで、実行結果を正しく予測できるようにし、自身でも条件分岐を含むプログラムを書いて、理解を深めることを目指す。
◆次回授業の予習 第22回の授業「if else文の扱い方」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
22
|
elseの扱い方
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第22回の授業では、『if else文』、『else if文』をテーマとして扱う。if文は、条件式がtrueのときにのみ特定の処理を実行する構文であり、条件がfalseの場合には何も処理しない。しかし、実際のプログラムではfalseの場合にも何らかの処理が求められる場面が多く存在する。そのような場面では、else文を使って、条件がfalseの場合にも別の処理を実行する。加えて、他の条件をさらに利用して分岐文を作成したいときはelse if文を用いて記述することでそれが可能になる。if else文、else if文の正確な書き方と、それらが記述されたプログラムがどのような出力するかをコードから読み取る力を養う。
|
|
|
コマ主題細目
|
① if else文 ② else if文
|
|
細目レベル
|
① if文は条件式によって記述した条件をもとに2つのパターンに分岐し、その条件式がtrueを返した際に処理を実行するものであった。つまり、if文の場合、条件式がfalseの場合は何も処理が発生しないことになる。しかし、現実的な場面ではfalseの場合は異なる処理が必要なことが多い。例えば、②の自動販売機の例でいえば、残高が不足していた場合、決済処理を行わないだけでは購入者は何が起こっているのか理解できない。そのため。残高が不足しているときには残高不足を伝える警告文を提示するなど異なる処理を実行する必要がある。このように条件として記述している条件式の評価がfalseの場合に異なる処理を実行したい場合は、Javaではif else文を利用する。具体的な記述方法としては、『if(条件式){ 処理内容1 }else{ 処理内容2 }』と記述することで条件式がtrueを返す場合は「処理内容1」を実行し、条件式がfalseの場合は「処理内容2」を実行することができる。このコマ主題細目では、if else文の正しい記述の仕方を理解することが必要であり、ソースコードを読み、出力する内容を理解することが目標である。
|
② 条件式がfalseの場合により細かく分岐処理を実行したい場合がある。例えば、交通系ICカードで電車運賃を支払おうとしたとき、残高が足りているか(条件式1)を確認し、足りていれば(trueであれば)決済が行われる(処理内容1)。しかし、足りていない場合(falseの場合)、自動的に残高をチャージするという契約をしているか(条件式2)を確認する。この契約をしていた(trueの)場合は自動的に残高をチャージし支払いが行われる(処理内容2)。もしこのような契約をしていない(falseの)場合は残高不足の警告文を提示する(処理内容3)といった条件分岐をしたい場合がある。このようにfalseのあと、さらに分岐処理を実行したい場合はelse ifを用いる。実際にJavaでは『if(条件式1){ 処理内容1 }else if(条件式2){ 処理内容2 }else{ 処理内容3 }』とすることで実行可能となる。このように条件によって異なる分岐処理を実行する場合の具体的な記述方法を理解し、実行できることを目的とする。このコマ主題細目では、else if文の正しい記述の仕方を理解することが必要であり、ソースコードを読み、出力する内容を理解することが目標である。
|
|
キーワード
|
① if else文 ② else if文
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第22回の授業では、if else文とelse if文の使い方について学習した。復習として、条件式の結果に応じて処理を2つに分ける分岐の仕組みを理解し、条件がtrueのときだけでなくfalseのときにも明確な処理を行えるようにする。加えて、if else文とelse if分の正しい構文を確認し、記述したコードからどちらの処理を実行するかを読み取る練習をする。また、自分でも実際にコードを書き、条件の変化に応じて出力内容がどう変わるかを確認することで、理解を深めることを目指す。条件式の評価結果と、それによって実行する処理の関係を正しく把握できるように演習を行う。
◆次回授業の予習 第23回の授業「乱数と条件分岐」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
23
|
乱数と条件分岐
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第23回の授業では、『乱数の生成』、『乱数の利用』をテーマとして扱う。乱数とはサイコロを振るように想定した範囲内で不規則かつ等確率に現れるように配列されたものである。Java言語ではこの乱数を生成することができる。Randomクラスをimportし、必要なメソッドを用いて乱数を発生させる。また、その乱数の生成を用いて条件分岐に利用するための演習を行う。
|
|
|
コマ主題細目
|
① 乱数の生成 ② 乱数の利用
|
|
細目レベル
|
① 乱数とはプログラムを用いてそうした範囲の数値が不規則かつ、等確率に出現するようになっている数値のことである。Java言語において乱数を生成するにはjava.util.Randomクラスをimportする。そしてRandom r = new Random();を記述し、Randomクラスを使えるようにしたrという変数を作成する。例えばint x = r.nextInt(10)と記述した場合は0~9の整数がランダムに生成され、xの変数に代入される。つまりnextInt()メソッドはnextInt(n)と記述することで0以上n未満の整数値が発生するメソッドになっている。このようにプログラムにおいてランダム性を持たせることでより柔軟なプログラムの作成が可能になる。
|
② 乱数を生成することでプログラムがより柔軟になる。例えば乱数の生成とif文を組み合わせて使うことで画面上でじゃんけんをすることができる。まずint cpuHand = r.nextInt(3)とすることで0、1、2のどれかの数値が乱数として生成される。これらにグー、チョキ、パーを割り当てる。そしてScannerクラスを用いてプログラム実行時に0、1、2のどれかをプレイヤーが入力することでじゃんけんの結果が返ってくるプログラムが作成可能である。このような乱数を利用したプログラムの作成に挑戦する。
|
|
キーワード
|
① 乱数 ② Randomクラス ③ nextInt()メソッド
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第23回の授業では、Randomクラスの使い方について学修した。復習として、乱数を生成するために必要な手続きと、そのプログラムの過程を確認する。特に想定した範囲内で乱数が発生するように指定ができるか、記述されたプログラムから発生する乱数の範囲はどうなっているのかなどを理解できるようにする。また、自分で簡単な乱数の生成を用いたプログラムを作成し、条件によってどのようにプログラムの結果が変化するかを確認し、学修を深める。
◆次回授業の予習 第24回の授業「if文に階層をつける」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
24
|
if文に階層をつける
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第24回の授業では、『if文のネスト』をテーマとして扱う。if文のネストは、ある条件がtrueだった場合に、さらに別の条件を判定したいときに使用する。多段階の条件分岐を実装する場合、if文の中にif文を入れ子にすることで対応する。このような記述を「ネスト」と呼ぶ。ネストした条件を正しく記述し、出力内容を読み取る力を身につけることがこの単元の目的である。
|
|
|
コマ主題細目
|
① if文のネスト
|
|
細目レベル
|
① 「if (もし~ならば)、else(そうでなければ)」のような二社択一の場合は問題ないが、例えば変数scoreの値が100以下であれば有効とし、その上で変数scoreの値が80以上であれば合格という基準があったとする。この場合、まず変数scoreの値が100以下であるかを判定し、判定結果がtrueであった場合に、変数scoreが80以上であるかを判定する必要がある。この場合は、if文の中にさらにif文を入れることがある。これを「条件判断のネスト」、または「条件判断の入れ子」と呼ぶ。『if (score <= 100) { if ( score >>= 80 ); System.out.println(“合格です”)} else { System.out.println(“不合格です”)}}else { System.out.println(“値の範囲が無効です”)})』のように記述することで、変数scoreに入っている値が120であれば「値の範囲が無効です」と出力し、そうでないときに合格か不合格かの判断が行われる。さまざまな条件判断のネストを読み解けるようになることを目的とする。このコマ主題細目では、if文をネストした際の正しい記述の仕方を理解することが必要であり、ソースコードを読み、出力される内容を理解することが目標である。
|
|
キーワード
|
① if文のネスト ② 入力の制限
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第24回の授業では、if文のネストについて学修した。復習として、if文をネストして使う場面では、外側の条件と内側の条件の評価順を意識しながら、実行する処理の流れを追う練習を行う。条件の中にさらに条件があるときに、どのように記述すれば正しい結果が得られるかを理解し、ネストしたif文の読み解きや記述に慣れておく。これらの復習では、自分で複数条件の処理を書くと同時に、与えられたコードを読んでその出力内容を正確に判断する力を身につけられるように演習を行う。
◆次回授業の予習 第25回の授業「特殊なif文の記述」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
25
|
特殊なif文の記述
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第25回の授業では、『ブロックの省略』、『三項演算子』をテーマとして扱う。これまでif文では「if(条件文){処理内容}」と記述してきたが、処理内容が1行に収まるとき、ブロック、つまり{}を省略することができる。また、三項演算子はif文のようにtrueとfalseによって異なる結果を出力することができるプログラムの記述方法である。これまでのif文とは少し異なる記述方法を学修する。
|
|
|
コマ主題細目
|
① ブロックの省略 ② 三項演算子
|
|
細目レベル
|
① if文は条件判定後の処理を実行する際に、その処理が1行であればそのブロックを省略することができる。言い換えればブロックを省略した際には、1つの処理(1つの命令)のコードのみがブロックで囲われたことになる。例えばif文において、『int num = 50; if (num % 2 == 1 ) System.out.println(“numは奇数です”); else System.out.println(“numは偶数です”); System.out.println();』と記述するとelseの前後の3文目『System.out.println(“numは奇数です”);』と5文目『System.out.println(“numは偶数です”)』の部分が{}を省略していると考え、コンパイルエラーがでることがない。ただし、実際に開発する際には、特に指定しない限りブロックの省略は行わず。{}を使用するのを推奨する。基本的は{}を使うのが一般的なため、可読性が下がるのを防ぐためである。このコマ主題細目では、ブロックを省略する際の正しい記述の仕方を理解することが必要であり、ソースコードを読み、出力する内容を理解することが目標である。
|
② 三項演算子はif文を1行で読みやすくするために使う記述法である。例えば『int a = 10; int b;』と2つの変数を設定しておく。続けて『if(a>5){ b =1 } else { b = 0;}』というif文を作成する。このif文ではaが5より大きい場合はbに1が代入され、そうでない場合はb=0が代入されるというプログラムである。この記述と同内容を三項演算子で利用することができる。その場合は『int b = (a > 5) ? 1 : 0;』と記述する。つまり三項演算子は「条件式 ? 真のときの値 : 偽のときの値」となっている。先ほどの例であれば「a > 5」が条件であり、条件がtrueのときは1が返り、条件がfalseのときは0が返ってくるということになる。ただし三項演算子は式なので代入、System.out.printlnなどで使うため、そのままでは使うことができないことを理解することが重要である。
|
|
キーワード
|
① ブロックの省略 ② 三項演算子
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第25回の授業では、特殊なif文の記述方法について学習した。復習として、if文と比較してブロックが省略されている場合のプログラムの挙動、三項演算子を用いた場合のプログラムの挙動を比較して理解することができるようにする。また、ブロックが省略されている際には1行しかブロックとして認識されないため、2行あった場合は2行目は必ず実行されることなど確認しておく。そしてif文で書かれているプログラムをブロックの省略や三項演算子を用いて記述を修正できるように演習を行う。
◆次回授業の予習 第26回の授業「Java Bronze SE 問題演習4-if文-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
26
|
Java Bronze SE 問題演習4-if文-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第26回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第22回から第26回までの授業で学んだ「if文」であるが、これまでに学んだ文法に関する複合問題も出題されるのでここまでの単元の復習も兼ねている。
|
|
|
コマ主題細目
|
① Java Bronze SE 問題演習4-if文-
|
|
細目レベル
|
① if文に関するJava Bronze SE形式の問題演習を行う。具体的には以下のような問題を解き、その解説を聞くという内容である。
例題 次のコードがあります。
1: class Test { 2: public static void main(String[] args) { 3: boolean b = true; 4: if (b = false) 5: System.out.println(b); 6: System.out.println(b) 7: } 8: }
コンパイル、実行した結果として正しいのは次のどれですか。1つ選択してください。
A. コンパイルエラー B. 実行時エラー C. true D. false E. true true F. false false
正しい選択肢を選択できること、その根拠をもって回答できることが重要である。また、わからない問題や間違えた問題は実際にプログラムを作成し、実行することで出力の結果を理解できるように復習する。
|
|
キーワード
|
① if文 ② else文 ③ if文のネスト ④ ブロックの省略 ⑤ 三項演算子
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第26回の授業では、if文に関する具体的なプログラムの作成演習を行った。復習として、今回の授業内に作成したプログラム演習課題を再度、演習を行うとよい。同じようなプログラムを再度作ることで、プログラムを作る際の差分を理解することができる。それよってより効率の良いプログラムの作成につながる。また類似課題の演習を行い、さらなる定着を図る。
◆次回授業の予習 第27回の授業「論理演算子の扱い方」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
27
|
論理演算子の扱い方
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第27回の授業では、『さまざまな論理演算子』、『論理演算子の短絡評価』をテーマとして扱う。論理演算子は、複数の条件を組み合わせて真偽を判断し、条件分岐の制御に用いられる。短絡評価(ショートサーキット評価)を実行する演算子は、左辺の評価だけで結果が確定する場合、右辺の評価を省略する。このような特性は処理の効率化やバグの回避にもつながるため、Javaでは短絡演算子の使用が推奨する。一方で、短絡評価を行わない論理演算子も存在する。論理演算子の意味と短絡評価の有無による処理の違いを正確に理解できるようにする。
|
|
|
コマ主題細目
|
① さまざまな論理演算子 ② 論理演算子の短絡評価
|
|
細目レベル
|
① できる。その中でも短絡評価を行わない論理演算子が存在する。例えば、AとBという2つの条件があり、確認すればそれぞれがtrueかfalseかわかるようなときに、どちらもtrueある場合のみtrueを返す論理演算子は&演算子である。つまり、『A & B』と入力した場合、AとBの両方がtrueの場合のみ、trueを出力する。また、このような論理演算を論理積(AND)という。同様にして、AとBの少なくとも一方がtrueの場合にtrueを出力したい場合は論理和という演算が可能な|演算子を用いて『A | B』と入力すればよい。ほかにもAかBのどちらか一方のみがtrueの場合のみtrueを出力するような排他的論理和という演算が可能な^演算子や、Aがfalseのときはtrueを、Aがtrueのときはfalseを変えず否定という演算が可能な!演算子が論理演算子に含まれる。このコマ主題細目では、論理演算子の短絡評価とそうでない評価の違いを理解できることが目標である。
|
② 比較演算子や等価性演算子、まとめて関係演算子は主に制御構文の条件記述の際に利用することを説明した。この制御構文では、例えば複数の結果がtrueになることで初めて条件をクリアし、次の命令を実行するというような場合もある。この場合ifが増えてプログラミングコードの可読性が低くなりかねない。このような場合に使用できるのが論理演算子である。論理演算子は複数の条件のtrueかfalseかを確認し、その状況に応じてtrueやfalseを出力することができる。論理演算子においては短絡評価(ショートサーキット評価)が可能な演算子が存在する。短絡評価とは論理演算子の左辺のみで全体の結果が判断できるときに右辺を確認せずに結果を出力する評価方法である。例えば&&演算子は、『(条件1)&&(条件2)』と記述し、演算子の両辺の条件がともにtrueであった場合のみtrueを出力する演算子である。つまり、第一変数である左辺のA(コンピューターも左から読み込むため)がfalseであった場合、第二変数である右辺のBを確認するまでもなく最終的な出力はfalseである。つまり、&&は左辺の条件がfalseであったとき、右辺の条件を処理せずに次の処理を実行する。他の言語ではこのような短絡演算子のみ存在する言語があり、Javaにおけるプログラミングでも基本的には短絡演算子を使用することを推奨する。なお、このような短絡評価が可能な演算子は&&演算子の他に||演算子がある。||演算子は『A || B』と入力した場合、AかBの少なくともどちらかがtrueであればtrueを出力するため、AがtrueであればBを確認せずともtrueを出力することになる。短絡評価が可能な演算子の扱い方を理解することを目的とする。このコマ主題細目では、論理演算子の意味を理解することが必要であり、論理演算子の短絡評価の意味を理解することが目標である。
|
|
キーワード
|
① 論理演算子 ② 短絡評価
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第27回の授業では、論理演算子の働きと短絡評価の仕組みについて学修した。復習として、論理演算子を用いることで複数の条件をまとめて評価し、その結果に応じた処理を効率よく記述できることを理解する。特に、短絡評価が可能な演算子では、左辺の評価結果だけで処理の結果が決まる場合、右辺の評価を省略することがある点を確認し、無駄な処理を避ける仕組みを意識する。また、短絡評価を行わない論理演算子の違いと使用目的を整理する。復習では、これらの演算子を用いた条件式を正しく読み取り、実行結果を判断できるようにする。また、短絡評価と非短絡評価の違いが出る具体的な場面を確認し、適切な演算子を選択できるように演習を行う。
◆次回授業の予習 第28回の授業「Java Bronze SE 問題演習5-論理演算子-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
28
|
Java Bronze SE 問題演習5-論理演算子-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第29回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第28回の授業で学んだ「論理演算子」であるが、これまでに学んだ文法に関する複合問題も出題されるのでここまでの単元の復習も兼ねている。特にif文と関連した問題の確認も必要である。
|
|
|
コマ主題細目
|
① Java Bronze SE 問題演習5-論理演算子-
|
|
細目レベル
|
① 論理演算子に関するJava Bronze SE形式の問題演習を行う。具体的には以下のような問題を解き、その解説を聞くという内容である。
例題 次のコードがあります。
int n1 = 22, n2 = 67, n3 = 0, n4 = 47, n5 = 17, n6 = 50; boolean b = true;
実行結果がtrueとなるコードは次のうちどれですか。3つ選択してください。
A. (n2 > n6) || b B. (!b) && (n1 <= n4) C. (n2 < n6)&& (n4 >= n1) D. (n3 < n5) || (n2 <= n1) E. !(n1 < n3) && (n5!= n4)
正しい選択肢を選択できること、その根拠をもって回答できることが重要である。また、わからない問題や間違えた問題は実際にプログラムを作成し、実行することで出力の結果を理解できるように復習する。
|
|
キーワード
|
① 論理演算子 ② 短絡評価
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第28回の授業では、論理演算子をテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第29回の授業「swich文の扱い方」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
29
|
swich文の扱い方
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第29回の授業では、『switch文』をテーマとして扱う。switch文は、1つの条件式の結果によって複数の分岐処理を実行するための制御構文である。if文やif else文では、条件ごとにboolean式を用意しなければならず、3つ以上の分岐には2つ以上の条件式が必要になる。一方、switch文では式を1つ記述するだけで複数の条件分岐が可能となる。それぞれの分岐には「break」をつけて処理を終了させる。switch文を用いることで、より簡潔かつ明確に多分岐処理を記述できる。
|
|
|
コマ主題細目
|
① switch文 ② switch文とbreak
|
|
細目レベル
|
① if文、if else文は1つのboolean式によって2つに分岐するという制御構文であった。もちろんelse if分を用いればfalseのときをさらに2つに分岐ができ、より多くの条件分岐を可能としていた。しかし、ifを使った構文では、3つ以上に分岐する際には少なくとも2つ以上の式が必要となる。先ほどの書き方を確認すると3つの分岐をするには『if(boolean式1){ 処理内容1 }else if(boolean式2){ 処理内容2 }else{ 処理内容3 }』のようにboolean式が2つ必要となる。このような書き方とは異なり、式が1つで3つ以上の分岐を実行したい場合はswitch文を用いる。switch文は、『switch(式){ case 値1: 処理1 break; case 値2: 処理2 break; … }』のように記述するもので、(式)で返ってくる値によって異なる処理をすることができる。例えば『switch(a % 3){ …』と始めることでaを3で割ったときの余り、つまり0か1か2を返すので『case 0: 処理1 break; case 1: 処理2 break; case 2: 処理3 break;』のように3つのパターンに条件分岐し、それぞれが異なる処理を実行できる。このようなswitch文の使い方と記述方法を学修し、実行できるようになることを目的に演習を行う。このコマ主題細目では、swicth文の正しい記述の仕方を理解することが必要であり、ソースコードを読み、出力する内容を理解することが目標である。
|
② switch文においては条件文において複数の条件がbreakキーワードがない場合の挙動について確認する。switch文におけるbreakキーワードは次の条件内容を実施しないという意味である。つまり、breakキーワードがない場合、次の条件文の処理を実施してしまうということになる。breakキーワードがある場合とない場合でどのように挙動が異なるかを確認する。
|
|
キーワード
|
① switch文 ② breakキーワード
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆◆今回授業の復習 第29回の授業では、switch文の使い方について学修した。復習として、switch文が1つの式をもとに複数の条件分岐を簡潔に記述できる構文であることを理解する。特に、if文やelse if文と比較して、分岐条件が多い場合にコードが見やすくなるという特徴に注目し、どのような場面でswitch文を用いるのが適切かを判断できるようにする。また、switch文の正しい記述方法を確認し、caseごとに処理を分けるときには「break」を使って処理の流れを制御する必要があることを意識する。switch文を使ったコードを実際に読み、どのcaseが選ばれてどの処理を実行するかを正確に判断できるようにする。また、自分で簡単なswitch文を使ったプログラムを作成し、条件によって処理がどう切り替わるかを確認しながら学修を深める。
◆次回授業の予習 第30回の授業「switch式の基本」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
30
|
switch式の基本
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第30回の授業では、『switch式』をテーマとして扱う。switch式はarrow演算子(->)を用いて条件に一致した値を返す文法である。switch文とは異なり、defaultが必須であることや、breakキーワードがなくても一致した条件しか実行されないこと、式であるため返す値が必要であるあることを理解できるように学修する。switch式を利用することでswitch文よりもより簡潔にプログラムの記述をすることが可能であり、その利用方法について学修する。
|
|
|
コマ主題細目
|
① while文
|
|
細目レベル
|
① switch式とはswitch文と同様に条件によって複数の処理に分岐をするようなプログラムを作成するときに活用する文法である。switch文と基本的には利用方法は同じである。例えば与えられた数値によって該当する季節を返すようなプログラムであれば『int month = 4; String season = switch (month) {case 3, 4, 5 -> "春"; case 6, 7, 8 -> "夏"; case 9, 10, 11 -> "秋"; case 12, 1, 2 -> "冬"; default -> "不正な月";};』となる。switch文と異なる点として、breakキーワードがなくとも一致した条件以下の処理は実行されない。また、default文が必須であり、一致しなかった場合の処理を明確に記述する必要がある。なお、switch式は読んでごとく式なので代入やSystem.out.println()メソッド内で利用することが可能である。switch式の正しい記述方法とプログラムの挙動について確認する。
|
|
キーワード
|
① switch式 ② arrow演算子 ③ defaultキーワード
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第30回の授業では、switch式の使い方について学修した。復習として、switch式によってどのような値が返ってくるのか、そして値が返ってくることの意味を理解する。さらにswitch式ではswitch文とは似て非なる点が多くあるのでその点について確認し、Java言語のプログラムを読み、その挙動について理解することが重要である。また、自分で簡単なswitch式を使ったプログラムを作成し、条件によって処理がどう切り替わるかを確認しながら学修を深める。
◆次回授業の予習 第31回の授業「Switch式の利用」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
31
|
switch式の利用
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第31回の授業では、『yieldキーワード』をテーマとして扱う。switch式では、条件に一致したときにarrow演算子の右辺の値を返すのが基本である。しかし、値を返すだけでなく特定の出力をした上で値を返すなど複数の処理を実行したい場合がある。そのようなときはyieldキーワードを活用するとよい。yieldキーワードを扱うときにはarrow演算子の右辺にブロックを記述し、実行したい処理を記述する。さらにそのブロック内に返す値を記述するがその前にyieldキーワードを記述しておく必要がある。switch式のより応用的な記述方法について学修する。
|
|
|
コマ主題細目
|
① yieldキーワード
|
|
細目レベル
|
① switch式では条件と一致する値をarrow演算子の右辺に記述することで、その値が帰ってくる文法であることを学修した。しかし、switch式を利用して値を返すだけでなく特定の処理を行いたい場合が存在する。例えば期末テストの点数から成績を判定し、その成績に対するコメントと成績を表示するようなプログラムを作成したい場合がある。これはswitch文を2つ書くことで可能ではあるが、switch式を用いて記述することも可能である。具体的には『String grade = switch (score / 10) { case 10, 9 -> { System.out.println("とても良い成績です"); yield "A"; } case 8 -> { System.out.println("良い成績です"); yield "B";}; 』のようにarrow演算子の右辺にブロックを記述し、そこで実行したい処理と返す値をyeildキーワードとともに記述することで可能となる。switch式において処理と返す値を同時に記述する手法について理解をする。
|
|
キーワード
|
① switch式 ② yieldキーワード
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第31回の授業では、switch式におけるyieldキーワードの使い方について学修した。復習として、作成するプログラムをyieldキーワードを用いてよりわかりやすいコードにすること、そのためにはどのように記述するべきかを確認する。また、yeildキーワードはswitch式でのみ利用できるキーワードであり、switch文とは異なることを理解する必要がある。そのためにプログラムを読み、どのような挙動になるのかを確認する。
◆次回授業の予習 第32回の授業「Java Bronze問題演習6-条件分岐のまとめー」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
32
|
Java Bronze問題演習6-条件分岐のまとめー
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第32回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第30回から第32回の授業で学んだ「switch文」と「switch式」であるが、これまでに学んだ文法に関する複合問題も出題されるのでここまでの単元の復習も兼ねている。
|
|
|
コマ主題細目
|
① Java Bronze問題演習6-条件分岐のまとめー
|
|
細目レベル
|
① 条件分岐に関するJava Bronze SE形式の問題演習を行う。具体的には以下のような問題を解き、その解説を聞くという内容である。
例題 次のコードがあります。
1: class Test { 2: public static void main(String[] args) { 3: long i = 0; 4: switch(i) { 5: case 10: System.out.print(“case10 ”); 6: case 20: System.out.print(“case20 ”); 7: case 30: System.out.print(“case30 ”); 8: default: System.out.print(“default ”); 9: } 10: }
コンパイル、実行した結果として正しいのは次のどれですか。1つ選択してください。
A. コンパイルエラー B. 実行時エラー C. default case10 case20 case30 D. default E. 何も表示されない
正しい選択肢を選択できること、その根拠をもって回答できることが重要である。また、わからない問題や間違えた問題は実際にプログラムを作成し、実行することで出力の結果を理解できるように復習する。
|
|
キーワード
|
① if文 ② 比較演算子 ③ 論理演算子 ④ switch文 ⑤ switch式
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第32回の授業では、論理演算子をテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第33回の授業「Eclipseの基本」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
33
|
Eclipseの基本
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第34回の授業では、『Eclipseの概要』、『Eclipseの開発手順』をテーマとして扱う。EclipseはJavaをはじめとする複数のプログラミング言語に対応した統合開発環境(IDE)であり、プラグインによる機能拡張が可能で、Webアプリケーション開発やデバッグ、品質管理なども行える高機能なツールである。また、Eclipseを使ったJavaプログラミングでは、プロジェクトの新規作成から始まり、Javaパースペクティブでの開発作業を進める。クラス作成後、「Hello, Java!」と表示する基本プログラムを作成し、実行してコンソールに出力することを確認する。
|
|
|
コマ主題細目
|
① Eclipseの概要 ② Eclipseの開発手順
|
|
細目レベル
|
① Eclipseはオープンソースの統合開発環境(IDE:Integrade Development Environment)である。このような統合開発環境には「エディタ」、「コンパイラ」、「デバッガ」というさまざまなツールが備わっている。これらは統合開発環境が出てくるまでは異なるアップリケ―ションを活用していた。我々もこの講義ではエディタはNotepad++を利用し、デバッガやコンパイラはJDKのダウンロードをし、利用していた。これら複数のアプリケーションが一つのアプリケーション、今回であればEclipseを利用して効率的なソフトウェア開発やプログラム開発を支援することが可能になるということである。
|
② EclipseによってJava言語を用いたプログラミングを行う。新規プロジェクト名に任意のプロジェクト名を指定し、完了ボタンをクリックする。新規のプロジェクトを作成したら、「Javaパースペクティブ」を表示する。「パースペクティブ」とは、エディタやメニューバー、ツールバー、ビューなどのレイアウトを定義したもので、「Javaパースペクティブ」の場合はデフォルト設定で、「パッケージ・エクスプローラー」、「問題ビュー」、「アウトラインビュー」などをレイアウトする。次に、Eclipseのメニューより、[ファイル]→[新規]→[クラス]を選択して「新規Javaクラス」ウィンドウを表示します。クラス名を設定し、本講義1週目に行った「Hello, Java!」を画面に表示するプログラムを作成する。そしてプログラムコードを保存する。実行ボタンを押し、プログラムがエラーなく完了し、コンソールビューに「Hello, Java!」を表示することを確認する。このような基本的なプログラムの作成・実行から制御構文、実行時引数の扱い方など、Eclipseを用いてできる内容について詳しく確認をする。このコマ主題細目では、さまざまな目的に応じたプログラムをEclipseを用いて作成することが目標である。
|
|
キーワード
|
① Eclipse ② 統合開発環境
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第33回の授業では、Eclipseの導入方法と基本的な使い方について学修した。これにより、EclipseがJavaをはじめとする多くのプログラミング言語に対応した統合開発環境(IDE)であり、開発の効率化に大きく貢献するツールであることを説明した。特に、日本語化したPleiades All in Oneの導入により、初心者でも扱いやすくなっていることや、プロジェクト作成からクラス作成、プログラムの実行までの一連の流れを体験することで、実際の開発に近い環境でプログラミングが行えることを確認した。復習として、Eclipseを使って新しいJavaプロジェクトを作成し、いくつかのプログラムを実際に入力・保存・実行してみる。また、エディタ内でのコード補完機能やエラー表示、コンソール出力の確認方法など、Eclipseの基本操作に慣れるように練習する。加えて、今後のプログラム演習に備えて、プロジェクトやクラスの作成手順を説明できるようにする。
◆次回授業の予習 第34回の授業「Eclipseによる開発」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
34
|
Eclipseによる開発
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第34回の授業では、『さまざまなショートカット』、『そのほかの便利な機能や設定』をテーマとして扱う。Eclipseは統合開発環境であり、Java言語による開発に適したアプリケーションである。そのため、Java言語の開発を助けるような多くのショートカットキーが存在する。また、開発していく上で効率性を高めるために、ウィンドウの調整や文字の大きさなど、より自分用にカスタマイズすることも可能である。そのような開発効率を高めるための内容を確認する。
|
|
|
コマ主題細目
|
① さまざまなショートカット ② そのほかの便利な機能や設定
|
|
細目レベル
|
① 講義内で指定されたプログラムの作成を行う。その際に必要ないくつかのショートカットを確認する。Javaのクラスを作成すると自動的に書かれてい+E20:J41る「// TODO 自動手生成されたメソッド・スタブ」の1行を消すためにカーソルを合わせてctrl + d を入力する。また、文字列をコンソール上に表示するメソッドであるSystem.out.println()を入力するにはsysoutと記入し、ctrl + spaceキーで補完変換してくれる。また、コメントアウトするときのショートカットも確認する。1行のコメントアウトをするときには、コメントアウトしたい行のにカーソルを合わせてctrl + / で行の戦闘に//が入力され、コメントアウトができる。なお、複数行をコメントアウトするときは、複数行を範囲選択することで可能である。ただし、連続した複数行をコメントアウトするときは、/* */でコメントアウトするのが一般的である。そのようなコメントアウトをする場合には、範囲選択をし、ctrl + spaceキー + / を入力することで可能になる。
|
② Java言語の開発に向けて、そのほかの便利な機能についても確認をする。Java言語においてそのプログラムの可読性を高めるのに重要なのがインデントである。ただ、プログラムが長くなるにつれて、インデントがずれてしまったり、レイアウトが崩れることがある。このようなとききにEclipseのコードフォーマット機能を使うことで自動的に修正をしてくれる。また、ウィンドウのレイアウトの変更も可能である。基本的にはパースペクティブと呼ばれるところから変更する。その変更のリセットも可能なのでそれについても確認する。
|
|
キーワード
|
① ショートカットキー ② コードフォーマット ③ パースペクティブ
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第34回の授業では、Eclipseのを用いて開発する効率を高めるためによく利用されるショートカットキーや、Eclipseの画面の配置についての変更などの細かい設定について学修した。復習として簡単なプログラムの作成を行う。その際になるべくショートカットキーを利用し、ショートカットキーの利用に慣れることを目的とする。今後、さまざまな場面で設定の変更などをしたくなるときもあるので、そのような場面で問題なく設定ができるようにしておくこと。
◆次回授業の予習 第35回の授業「while文の基本」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
35
|
while文の基本
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第35回の授業では、『while文の記述方法』、『while文のトレース』をテーマとして扱う。while文は、特定の条件がtrueである限り、同じ処理を繰り返し実行するための繰り返し構文である。構文は「while (boolean式) { 処理内容 }」の形で記述し、条件式がtrueである間、内部の処理を何度でも実行する。条件の変化を表示させたい場合はループ内で出力処理を記述することで進行状況が確認できる。while文の正しい構文と動作を理解し、記述したコードから処理の流れや出力内容を読み取れるように演習を行う。
|
|
|
コマ主題細目
|
① while文の記述方法 ② while文のトレース
|
|
細目レベル
|
① if文やswich文では条件によって異なる処理をする命令を与え、処理する分をコントロールする方法を学んだ。この授業では、そのようなコントロールではなく、同様の処理を何度も繰り返す方法について学ぶ。Javaではこのような処理を繰り返し文と呼ばれる構文で記述が可能である。繰り返し文にはwhile文、for文、do~while文の3種類が存在する。まずはwhile文についてである。While文は『while(boolean式{処理内容;})』の形で記述することができる。そして、while文内のboolean式の評価がtrueである限り何度でもその内部の処理を繰り返すことができる。例えば『int a=0; while( a<10 ){ a++; }』というように記述し、実行すると変数aの値が10になるまで、つまりboolean式がfalseになるまでインクリメントを繰り返すことになる。もちろん、その変化を逐一確認したい場合は、『int a=0; while( a<10 ){ System.out.println(a+"回繰り返しています"); a++; }』とすれば「1回繰り返しています」「2回繰り返しています」…と出力し、「9回繰り返しています」と表示するようになる。なお、while文のboolean式には直接booleanのリテラル、つまりtrueとfalseを記述することも可能であるが、trueを記述した場合にはfalseになることがないため、実行は無限ループになり、falseを記述した場合には最初からboolean式の評価がtrueではないため、一回も実行することがなくなる。このコマ主題細目では、while文の正しい記述の仕方を理解することが必要であり、ソースコードを読み、出力する内容を理解することが目標である。
|
② while文などはループが繰り返されるたびに変数の値が変化する。その値の変化を正しく追うことが重要である。その変化を確認することをトレースという。while文などの繰り返し文ではトレースを通してプログラム中の値の変化を追えるようになることを目的とする。例えば『int x = 5; while(x > 0){ x--; System.out.println(x + " ");』となっているときに、ループの回数、xの値(開始時)、条件 x > 0、x の値、出力、がそれぞれどう変化するかを確認する。処理内容に四則演算や剰余算が含まれる場合であってもそのプログラムがどのように値を変化させて行くかを確認する。
|
|
キーワード
|
① while文 ② 繰り返し文 ③ トレース
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第35回の授業では、while文について学修した。復習として、while文が条件式の評価結果がtrueである限り、内部の処理を繰り返す構文であることを理解し、その正しい記述方法を確認する。条件式がfalseになったときに処理が終了することを確認する。また、実際に変数を使って繰り返し処理を行い、変数の変化によって繰り返しがどのように制御するかを確認する。コードを読み取り、繰り返しの回数や出力結果を正しく予測できるようにする。あわせて、繰り返しの終了条件を明確に設定することで、意図した回数だけ処理を繰り返すような書き方を身につけられるよう確認する。
◆次回授業の予習 第36回の授業「while文の利用」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
36
|
while文の利用
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第37回の授業では、『無限ループ』、『到達不能コード』をテーマとして扱う。第36回の講義で確認した通り、while文は条件がfalesになったときに終了し、while文の外に実行が移る。ただし、while文の条件がfalseにならない場合はそのプログラムが終了することなく実行されることに注意が必要である。また、while文の条件文がfalseとなっているとき、その処理内容が実行されることはない。それにも関わらず、処理内容が書かれているとき、それは到達不能コードと呼ばれ、コンパイルエラーになる。while文を扱う際の細かな注意点を確認する。
|
|
|
コマ主題細目
|
① 無限ループ ② 到達不能コード
|
|
細目レベル
|
① 繰繰り返し文においては条件がfalseになるまで、つまりtrueの間は繰り返し実行されることを確認した。しかし、プログラムの予期せぬ誤りなどで条件文がtrueから変化せず、falseにならない場合がある。このようなとき、プログラムの実行は終了せず、意図的にその実行を止めるまで実行され続けることになる。このような状況を無限ループと呼ぶ。無限ループになった場合はEclipseに用意されている終了ボタンを押すことで実行を中止することができる。コマンドプロンプト上で実行している際には「Ctrl + c」で実行を中止することができる。プログラムを実行した際に、「表示されない」という処理が無限ループになっているとフリーズしたと思ってしまうが、無限ループしている可能性を考え、その実行を中止するように心がける必要がある。
|
② 先ほどの細目レベルでは、while文の条件がfalseにならない、つまりずっとtrueのままであるときを考えた。その逆で条件が最初からfalseの場合はどうなるかを確認する。その場合、処理が実行されることがなく、そこにどのような処理を書いたとしても実行されることがない。このような実行されることがないことが確定している処理を到達不能コードと呼ぶ。この到達不能コードはコンパイルエラーとなるため、そもそも実行ができないことに注意する。ただし、条件文にfalseが代入された変数が記述されている場合は、あくまで変化することがあると考えることができるため、到達不能コードとして扱われることはない。さらにif文の場合は条件文にfalseが入っている場合はデッド・コードと呼ばれ、実行されないことが決まってしまっているが、到達不能コードとは判断されず、コンパイルエラーにならないことも重要である。
|
|
キーワード
|
① 無限ループ ② 到達不能コード ③ デッド・コード
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
第36回の授業では、while文の注意点について学修した。復習として、while文の条件がtrueになり続け、無限ループとなっている場合のプログラムの処理を止める方法を確認する。また、無限ループとなってしまっている原因を確認し、その修正が行えるようにする。加えて、条件が初めからfalseであったとき、while文では到達不能コードとして扱われコンパイルエラーになること、if文ではデッド・コードとして扱われ、コンパイルエラーにはならないことを確認する。
◆次回授業の予習 第37回の授業「do~while文の基本」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
37
|
do~while文の基本
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第37回の授業では、『do~while文』をテーマとして扱う。do~while文は、条件に関係なく最初の1回は必ず処理を実行する繰り返し構文である。構文は「do { 処理内容 } while (条件式);」のように記述し、処理が条件式より先に実行する点がwhile文との大きな違いとなる。while文では最初に条件がfalseであれば一度も処理を実行しないが、do~while文では条件がfalseでも1回は必ず処理する。do~while文の構文とその動作の違いを理解し、記述したコードの出力結果を正確に読み取る力を身につけられるよう演習を行う。
|
|
|
コマ主題細目
|
① do~while文の記述方法
|
|
細目レベル
|
① while文は最初の時点でfalseであった場合、その後の処理は実行しない。一方でdo whlie文は最初の1回はどんなことがあっても実行する。実際に記述する場合は『do{ 処理内容; }while( 条件式 )』と記述する。先ほど示したwhile文の形式であったwhile( 条件式{ 処理内容; })と見比べるとその違いは分かりやすく、do while文は処理内容が条件式の評価よりも前に来ていることがわかる。そのため、do while式では必ず1回は処理が行われることになる。もちろんwhile文を使って『int a=0; while( a<10 ){ System.out.println(a+"回繰り返しています"); a++; }』と記述した場合とdo while文を使って『int a=0; do { System.out.println(a+"回繰り返しています"); a++; } while( a<10 );』と記述した場合の出力は同じになるが、最初の1度目の強制力が異なっている。このように異なる記述方法を理解しておくこともまた重要である。do-while文のよりさまざまな記述方法を学ぶ。このコマ主題細目では、do~while文の正しい記述の仕方を理解することが必要であり、ソースコードを読み、出力する内容を理解することが目標である。
|
|
キーワード
|
① do~while文 ② トレース
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
今回授業の復習 第37回の授業では、do~while文について学習した。復習として、do~while文は条件に関係なく最初の1回は必ず処理を実行する特徴を持つことを理解し、while文との違いを整理しておく。特に、処理の順序つまり、先に処理内容が書かれ、その後に条件式を評価する)を確認し、その構文を正しく記述できるようにする。復習では、自分でdo~while文を使ったコードを記述し、条件によって処理がどのように繰り返すかを実際に確認することで理解を深める。
◆次回授業の予習 第38回の授業「do~while文」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
38
|
do~while文の注意点
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第38回の授業では、『変数のスコープ』、『到達不能コードとdo~while文』をテーマとして扱う。変数のスコープとは変数を扱うことのできる範囲を指す。基本的には{}内で宣言した変数はその{}内で扱うことができ、その外側ではその変数にアクセスすることができない。そのためdo~while文では処理内で宣言した変数を条件文に用いることができないことに注意が必要である。また、do~while文はwhile文とは異なり、処理が必ず1度は実行されるため、条件文にfalseが記述されていてもコンパイルエラーにはならない。ただしいくつか注意点があるため、その点について確認し理解することを目的とする。
|
|
|
コマ主題細目
|
① 変数のスコープ ② 到達不能コードとdo~while文
|
|
細目レベル
|
① を考えることなく扱えるようになっていたが、if文などでもこのスコープが原因でコンパイルエラーが起きる場合がある。基本的なルールとしては{}内で宣言した変数は{}内で利用可能である。そのため{}内で宣言した変数に{}の外からアクセルすることができない。特にif文やwhile文における処理文内で新たに宣言した変数をその処理の外からアクセスすることはできないためコンパイルエラーが起きる。具体的なスコープ外のコンパイルエラーとなるプログラムを確認し、そのようなエラーが起こらないように修正できることを目的とする。
|
② while文では条件文が初めからfalseである場合、その処理文は到達不能コードとなり、コンパイルエラーが発生することを確認した。到達不能コードはプログラム中で実行されないプログラムのことであった。do~while文は処理文を必ず1度は実行し、その後に条件確認が行われるので、条件文がfalseであったとしてもdo~while文では到達不能コードとは判断されることがなくなる。ただし、do~while文が無限ループであるとき、その処理文のあとに文字列出力などの別の命令文を記述すると到達不能コードと判定され、コンパイルエラーになる。このような到達不能コードをdo~while文について確認し、理解を深める。
|
|
キーワード
|
① 変数のスコープ ② 到達不能コード
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第38回の授業では、do~while文に関連した変数のスコープや到達不能コードについて学習した。復習として、変数のスコープに関する問題の復習をし、プログラムを呼んで変数のスコープに関するコンパイルエラーが起きないかどうかが理解できるようにする。また、到達不能コードについて、コンパイルエラーが起きるかどうか理解できるようにする。特に繰り返し文の中での違いや条件分岐文などにおける違いの理解ができるようにする。
◆次回授業の予習 第39回の授業「for文の基本」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
39
|
for文の基本
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第40回の授業では、『for文』をテーマとして扱う。for文は、指定した処理を繰り返し実行するための構文であり、構文内に3つの要素を持つ。「for(初期化; 条件式; 更新処理){ 処理内容 }」という形式で記述し、最初に初期化によって変数を設定し、その後条件式がtrueである限り処理を繰り返す。繰り返しのたびに更新処理を実行し、条件式がfalseになるとループは終了する。条件が常にtrueのまま変化しない場合、無限ループが発生するため、適切な更新処理が重要となる。for文の正しい書き方と動作の流れを理解し、ソースコードから出力内容を正確に読み取れるように演習を行う。
|
|
|
コマ主題細目
|
① for文 ② ブロックの省略
|
|
細目レベル
|
① for文もwhile文と同様に指定した文を繰り返し処理することができる。実際にfor文を記述するときは3つのかたまりを意識し、『for(かたまり1; かたまり2; かたまり3){文;}』と記述する。かたまり1には「初期化の式」を記述する(例 int i=1;)。次のかたまり2には「繰り返すかどうかを決定するための条件となる式」をboolean型のデータを返す式で記述する(例 i<=5)。このかたまり2に記述した「繰り返すかどうかを決定するための条件となる式」がfalseになるまでfor文を繰り返すという点が非常に重要である。そして最後のかたまり3には「変化のための式」を記述する(例 i++)。つまり、『for(変数の初期化; 条件式; 繰り返し時の更新処理){反復したい処理;}』と記述する。while文と同様で、最初に代入した値がtrueで、その値が変化しないとすれば、for文は止まることなく繰り返し続けてしまうことになる。そのため、いつかはfalseになるような変化を与える必要がある。そして忘れてはいけないこととしてfor文では{}内の文章を繰り返す。例えば『for(int =1, i<=5, i++) {System.out.println("繰り返しています。");} System.out.println("繰り返しが終わりました。")』というfor文を走らせることで、5回「繰り返しています。」という文章を表示し、i=6となるタイミング(i<=5という条件がfalseとなるタイミング)で、「繰り返しが終わりました」という{}の外の文章を表示するということになる。まとめるとfor文は最初に宣言した変数の初期化を行い、条件式の評価をする。評価の際に結果がtrueである場合は反復したい処理と実行し、繰り返し時の更新処理を実行する(先ほどの例であればインクリメント)。そして条件式がfalseになればそこでfor文の処理が終了となる。このコマ主題細目では、for文の正しい記述の仕方を理解することが必要であり、ソースコードを読み、出力する内容を理解することが目標である。
|
② if文では処理内容が1行であればブロックの省略が可能であることを確認した。それと同様にfor文においても『for (int i = 1 ; i <= 3; i++) System.out.print(i); System.out.println(“繰返し処理終了”)』とした場合、forの(条件)以降の処理文が{}を省略している、つまり本来であれば『{ System.out.print(i);}』と判断するため、コンパイルエラーが発生しない。ただし、実際に開発する際には、特に指定しない限りブロックの省略は行わず。{}を使用するのを推奨する。基本的は{}を使うのが一般的なため、可読性が下がるのを防ぐためである。このコマ主題細目では、ブロックを省略する際の正しい記述の仕方を理解することが必要であり、ソースコードを読み、出力する内容を理解することが目標である。
|
|
キーワード
|
① for文 ② ブロックの省略
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第39回の授業では、for文について学習した。復習として、for文が「初期化」「条件式」「更新処理」の3つの要素で構成していることを確認し、それぞれの意味と役割を正しく理解する。条件式がfalseになるまで繰り返す仕組みを意識し、繰り返しが適切に終了するようなコードの構成を身につける。また、for文の繰り返し処理の中でどのように変数が変化していくのかを追い、処理の流れを読み取る力を養う。{}の中で繰り返す処理と、{}の外にある処理の違いを理解し、実行順序がどうなるかを明確にイメージできるようにする。また、すでに記述したfor文を読み、最終的な出力内容を正しく判断できるように練習する。
◆次回授業の予習 第40回の授業「for文の利用」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
40
|
for文の利用
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第41回の授業では、『for文の利用』をテーマとして扱う。第40回の講義でfor文の基本的な記述方法について学修した。この講義ではfor文の細かい文法について確認する。特にfor文ではwhile文とは異なり、(初期化; 条件式; 更新処理)の3つの文を書くことが必要である。これらは省略が可能であり、その際の記述方法について確認する。また、ループ変数のスコープについても確認し、for文の細かなミスをなくすことを目的とする。
|
|
|
コマ主題細目
|
① for文とwhile文の使い分け ② for文の注意点
|
|
細目レベル
|
① for文とwhile文はどちらも繰り返し文であり、大きく差はない。ただし、用途としては少し分かれるのでその方針のみについて理解してもらう。for文では最初から回数や終わりがわかっているような場合に使われる。例えば変数が100まで繰り返す、データがある間だけ繰り返すなどの場合はfor文が好ましい。それに対してwhile文は回数が決まっているのではなく、ある状態になるまで繰り返すような場合に使われる。例えばログイン画面でログインが成功するまでや正しい回答が得られるまでなど、その状態によってtrue/falseが分岐するようなものがよい。そのような点について詳細に説明する。
|
② for文は「for(初期化; 条件式; 更新処理){ 処理内容 }」と記述することを学修した。この初期化、条件式、更新処理については省略が可能である。例えばfor文の記述の前の時点で条件式に使いたい変数を宣言していた場合は記述する必要がない。また、条件式も同様に記述を省略できる。その場合はfor文のtrueとfalseの判定がされない。しかしこの条件文がfalseでない限りfor文は繰り返すためこの記述がない場合はずっとtrueであると判断されるため無限ループになることを確認する。そして更新処理も同じく省略が可能である。もちろんこの更新処理をこの枠ではなく処理文内に記述することで問題なくfor文は実行できることを確認する。ただし、更新処理をしない場合はループ変数の値が変わらないので無限ループになることを理解する。なお、省略する場合、;(セミコロン)を省略することはできないので必ず2つの;(セミコロン)を記述しておく必要がある。また、for文の()内で初期化した変数は、{}内の処理文でしか利用できない。外で扱いたい場合はfor文の利用に先立って変数の宣言を記述しておくことでスコープ外のエラーを防ぐことが可能である。
|
|
キーワード
|
① for文 ② while文 ③ 条件文の省略 ④ 変数のスコープ
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第40回の授業では、for文のさまざまな注意点について学習した。復習として、for文が「初期化」「条件式」「更新処理」の3つの要素で構成していることを確認し、それぞれの意味と役割を正しく理解する。その際に各要素が省略可能であること、加えてその省略によってプログラムがどのような流れで実行されているのかを理解できるようにする。{}の中で繰り返す処理と、{}の外にある処理の違いを理解し、実行順序がどうなるかを明確にイメージできるようにする。また、すでに記述したfor文を読み、最終的な出力内容を正しく判断できるように練習する。
◆次回授業の予習 第41回の授業「Java Bronze問題演習7-繰り返し文-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
41
|
Java Bronze問題演習7-繰り返し文-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第41回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第35~40回の授業で学んだ「while文」「do~while文」「for文」であるが、これまでに学んだ文法に関する複合問題も出題されるのでここまでの単元の復習も兼ねている。
|
|
|
コマ主題細目
|
① Java Bronze問題演習7-繰り返し文-
|
|
細目レベル
|
① 繰り返し文の基礎に関するJava Bronze SE形式の問題演習を行う。具体的には以下のような問題を解き、その解説を聞くという内容である。
例題 次のコードがあります。
1: class Test { 2: public static void main(String[] args) { 3: int x = 4; 4: do { 5: ++x; 6: System.out.print(x + “ “); 7: } while ( x == 5); 8: System.out.println(); 10: } 11:
実行結果がtrueとなるコードは次のうちどれですか。3つ選択してください。
A. コンパイルエラー B. 実行時エラー C. 4 D. 5 E. 4 5 F. 5 6
正しい選択肢を選択できること、その根拠をもって回答できることが重要である。また、わからない問題や間違えた問題は実際にプログラムを作成し、実行することで出力の結果を理解できるように復習する。
|
|
キーワード
|
① while文 ② do~while文 ③ for文
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第41回の授業では、繰り返し文をテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第42回の授業「for文に階層をつける」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
42
|
for文に階層をつける
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第42回の授業では、『for文のネスト』をテーマとして扱う。for文のネストとは、1つのfor文の内部にさらに別のfor文を記述することで、繰り返し処理を多重構造(入れ子構造、ネスト構造とも)で実行する方法である。内側のfor文が外側の1回の繰り返しにつきすべて完了してから外側の次のループへ進む。このようなネスト構造による繰り返しの流れを理解し、正しく記述・出力を読み取る力を養う。
|
|
|
コマ主題細目
|
① for文のネスト
|
|
細目レベル
|
① 条件分岐でネストが行われたように、for文はfor文のループの内側に、for文を記述することが可能である。つまりネストが可能というわけである。例えば『int i, j;』と変数を宣言した上で、『for (i =0; i < 2; i++){ for (j = 0; j < 3; j++) { System.out.println(“ i=”+ i + “ j=” + j); }}』のように記述する。すると先にiを変数としたfor文を処理し、まず変数iに0を代入する。そのとき『i < 2』の条件文はtrueとなり、for文のブロックの中身の処理に移る。そのため、jを変数としたfor文を処理し、変数jに初期値の0を代入する。そのとき、『j < 3』の条件文はtrueであるため、ブロック内の処理が行われる。そしてj++が行われ、jが0→1→2と処理していく。その後j = 3となったときに、for文の条件である『j < 3』がfalseとなり、変数jを扱うfor文の処理から抜ける。なお、このときjは0→1→2と処理しているため、『System.out.println(“ i=”+ i + “ j=” + j);』の処理を3回繰り返す。つまり、この時点でiは0のままだから「i=0 j=0」「i=0 j=1」「i=0 j=2」を改行した状態で出力する処理が終わっている。その後、i++を行った変数iの値が1になる。条件『i < 2』の判定がtrueなのでfor文の処理が行われる。そして再び、jを変数としたfor文を処理し、変数jに初期値の0を代入する。『j < 3』の条件文はtrueであるため、ブロック内の処理が行われる。そしてj++が行われ、jが0→1→2と処理していく。その後j = 3となったときに、for文の条件である『j < 3』がfalseとなり、変数jを扱うfor文の処理から抜けるという流れが行われる。結果、「i=0 j=0」「i=0 j=1」「i=0 j=2」「i=1 j=0」「i=1 j=1」「i=1 j=2」の6行を出力することになる。より内側にネストしたfor文の処理が行われ、外側のfor文が終わるまで内側を繰り返す関係の理解を目的とする。このコマ主題細目では、if文をネストした際の正しい記述の仕方を理解することが必要であり、ソースコードを読み、出力する内容を理解することが目標である。
|
|
キーワード
|
① for文 ② ネスト構造
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第42回の授業では、for文のネストについて学習した。復習として、for文の中にさらにfor文を記述することで、外側のループ1回につき内側のループを複数回繰り返すという構造を正しく理解する。特に、外側と内側で使われる変数の役割の違いや、繰り返しの回数がどのように決定するかを意識する。ネストしたfor文によって、出力結果がどのような順番になるかを読み取れるようになることを目指す。ネストしたfor文を使ったプログラムを作成し、変数の増減や繰り返しの流れを追いながら、処理の順序や出力内容を丁寧に確認する。あわせて、すでに記述したネストしたfor文を正確に読み解き、出力結果を理解できるように演習する。
◆次回授業の予習 第43回の授業「if文とfor文の組み合わせ」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
43
|
if文とfor文の組み合わせ
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第43回の授業では、『if文とfor文の組み合わせ』をテーマとして扱う。これまで学修してきたif文やfor文のネストに加え、この授業ではif文とfor文を組み合わせたプログラムの記述方法を理解することが目的となる。複数の制御構文を組み合わせたコードの動作を正確に読み取り、出力結果を理解する力を養うことが求められている。
|
|
|
コマ主題細目
|
① 制御構文の組み合わせ
|
|
細目レベル
|
① 授業内ではこれまでにif文やfor文のネストを行ってきた。つまり、if文の中にif文を記述したり、for文の中にfor文を記述したりすることをしてきた。この授業ではその復習に加えて、if文とfor文をそれぞれ組み合わせた記述の方法を理解することを目的とする。例えば『boolean b1 = false; for (int i = 0, i < 5, i++){if(b1 == false){ System.out.print(“*”); b1 = true;} else { System.out.print("_"); b1 = false;}}』と記述し、実行した場合は「*_*_*」と出力する。最初にboolean型の変数であるb1にはfalseを代入している。for文の処理へと進み、int型の変数iに0を代入する。『i < 5』という条件文においてtrueであることから、for文のブロック内の処理が行われる。つまりif文の処理へと移る。このとき、if文の条件を確認すると『b1==false』であるため「*」を出力する。その後、『b1=true』の処理を行ってb1にtrueを代入し、if文の1度目の処理が完了する。するとfor文に戻り『i++』によってi=1となる。『i < 5』の条件はtrueであることから2度目のif文の処理が始まり、変数b1にはtrueを代入していることから「_」を出力し、処理が終わる。これを変数iが0→1→2→3→4となって5度if文の処理が行われる。そして変数iが5になったとき、『i < 5』の条件がfalseとなるためfor文の処理が終了する。そのため、「*_*_*」という出力結果となる。このようなプログラムを基本とし、for文のネストとif文を組み合わせるなどさまざまな組み合わせのプログラムについて理解する。このコマ主題細目では、複数の制御文を組み合わせたソースコードを読み、出力の結果を理解することが目標である。
|
|
キーワード
|
① 制御構文 ② トレース
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第43回の授業では、if文とfor文の組み合わせについて学修した。これによって繰り返している中で出力するものを条件によって変化させることなどが可能であることが理解することができた。また、その処理経過をトレースし、プログラムを読んで結果を想定することが可能になった。復習として、さまざまなif文とfor文の組み合わせのプログラムを読み、その出力結果がわかるようにする。
◆次回授業の予習 第44回の授業「Java Bronze SE 問題演習8-if文とfor文の組み合わせ-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
44
|
Java Bronze SE 問題演習8-if文とfor文の組み合わせ-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第44回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第42回、第43回の授業で学んだ「for文に階層をつける」、「if文とfor文の組み合わせ」であるが、これまでに学んだ文法に関する複合問題も出題されるのでここまでの単元の復習も兼ねている。
|
|
|
コマ主題細目
|
① 配列の長さ ② 繰り返し文と配列
|
|
細目レベル
|
① if文とfor文の組み合わせに関するJava Bronze SE形式の問題演習を行う。具体的には以下のような問題を解き、その解説を聞くという内容である。
例題 次のコードがあります。
1. public class Test { 2. public static void main(String[] args) { 3. for( int i = 0; i < 2; i++ ) { 4. for( int j = 5; j <= 8; ++j) { 5. System.out.print(" j=" + j); 6. } 7. } 8. } 9. }
コンパイルした結果として正しものは次のどれですか。1つ選択してください。
A. j=0 j=1 j=0 j=1 B. j=0 j=1 j=2 j=0 j=1 j=2 C. j=5 j=6 j=7 j=5 j=6 j=7 D. j=5 j=6 j=7 j=8 j=5 j=6 j=7 j=8 E. コンパイルエラー
正しい選択肢を選択できること、その根拠をもって回答できることが重要である。また、わからない問題や間違えた問題は実際にプログラムを作成し、実行することで出力の結果を理解できるように復習する。
|
|
キーワード
|
① 分岐文 ② 制御構文 ③ ネスト
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第44回の授業では、繰り返し文をテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第45回の授業「処理を途中で終了する」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
45
|
処理を途中で終了する
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第45回の授業では、『break文』をテーマとして扱う。break文は、繰り返し処理などの制御構文において、通常の処理の流れを強制的に中断し、そのブロックから抜け出すために使う文である。つまり本来設定した繰り返し回数を待たずに処理を途中で終了させることが可能になる。breakはswitch文でも使用されることがあり、そこでも処理の流れを分岐の外に抜けさせる役割を果たす。この単元では、break文の動作を含むコードを読み、処理結果とその理由を正しく理解することが求められる。
|
|
|
コマ主題細目
|
① break文
|
|
細目レベル
|
① ここまでに学んだことから各種の構文には一定の処理の流れがあることがわかる。しかし、ときにはこのような処理の流れを強制的に変更したい場合がある。Java言語には繰り返しの流れを強制的に変更する文として、break文とcontinue文がある。まず先にbreak文を学ぶことにする。breakという記述はすでにswitch文の際に利用した。このbreakはfor文の中でも使用することができる。これはfor文の処理の流れを強制的に終了し、そのブロックから抜けるための文である。例えば、『for(int i =1; i<10; i++){ System.out.println(i + "番目の処理です。");}』と記述し実行すれば「1番目の処理です。」「2番目の処理です。」…「9番目の処理です。」と9回処理を繰り返すことになる。しかし、先に『int res = 5;』とし、変わらず『for(int i =1; i<10; i++){ System.out.println(i + "番目の処理です。");』と記述したあとに『if(i == res) break;}』とした場合を考える。この場合は先ほどの例のように処理を繰り返すものの、変数resに5の値を代入しており、変数iと変数resが一致したときに『break;』の処理が行われるようになっているため、「1番目の処理です。」「2番目の処理です。」…「5番目の処理です。」のように5番目までしか出力しなくなる。このようにbreak文は本当であればまだ繰り返すことができるにも関わらず、強制的に終了し、ブロックの処理をから抜けることができる。過去にも触れているが再度このことを意識し、switch文でも『break;』の処理を詳しく理解する。このコマ主題細目では、break文が含まれたソースコードを読み、出力する値を理解できることが必要である。
|
|
キーワード
|
① break文
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第45回の授業では、break文の使い方について学習した。これにより、繰り返し処理の途中でも特定の条件を満たしたときに強制的に処理を終了し、ループのブロックから抜け出す方法を説明した。特に、for文の中で条件を設定し、その条件に一致した際にbreak;を用いることで、想定した回数よりも少ない回数で処理を止めることが可能であることを確認した。復習として、1から10までの数を繰り返し出力するfor文を作成し、任意の変数に指定した数値に達した時点でbreak文によってループを終了させるプログラムを自分で作成してみる。また、switch文におけるbreak文の役割も改めて確認し、breakがないと処理がどのように変化するのかを確認しながら、実際の挙動を比較して理解を深める。条件によって処理を途中で終了させたい場面で、break文をどのように活用するかを意識して練習する。
◆次回授業の予習 第46回の授業「処理を途中で飛ばす」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
46
|
処理を途中で飛ばす
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第46回の授業では、『continue文』をテーマとして扱う。continue文は、繰り返し処理の中で特定の条件に当てはまった場合に、その時点以降の処理を飛ばして次のループに進むための文であるbreak文のように繰り返し自体を終了させるのではなく、特定の処理だけを飛ばしてループを継続させる点が特徴である。この授業では、continue文を含んだコードの動作を正しく読み取り、実際の出力内容を理解することが求められている。
|
|
|
コマ主題細目
|
① continue文
|
|
細目レベル
|
① break文とは異なる方法でfor文などの流れを変えるのがcontinue文である。このcontinue文は、繰り返し内の処理を飛ばし、ブロックの先頭位置戻って次の処理を続けるという流れを作る文である。例えば、break文の際に使用した例とほぼ同じではあるが、『for(int i =1; i<=10; i++){ System.out.println(i + "番目の処理です。");}』と記述し実行すれば「1番目の処理です。」「2番目の処理です。」…「10番目の処理です。」と10回処理を繰り返すことになる。先ほどとは違い、条件文が<=になっているため、10回行われている。この例を以下のように変更した場合、どのように出力が変わるかを考える。『int res = 5;』とし、for文の文字出力の処理の前に『if(i == res) continue;』を記述する。つまりfor文は『for(int i =1; i<10; i++){ if(i == res) continue; System.out.println(i + "番目の処理です。");』となっている。このとき、変数resには5の値を代入しているため、変数iが5のとき条件文『i==res』がtrueとなり、if文の処理が行われ、continueが処理する。するとcontinueに続く文、つまり『System.out.println(i + "番目の処理です。");』の部分は処理することなく飛ばし、ブロックの先頭、つまりfor文の続きの処理へと進む。よって「5番目の処理です。」の文章は出力せず、「1番目の処理です。」…「4番目の処理です。」とそれに続けて「6番目の処理です。」…「10番目の処理です。」を出力することになる。このようにcontinue文は処理したときにブロック内のあとの処理を飛ばす役割がある。このコマ主題細目では、countinue文が含まれたソースコードを読み、出力する値を理解できることが必要である。
|
|
キーワード
|
① continue文
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第46回の授業では、continue文の使い方について学修した。これにより、繰り返し処理の中で特定の条件に該当した場合に、その回の処理だけをスキップし、次の繰り返しに進む方法を説明した。特に、for文の中で条件を設定し、その条件を満たしたときにcontinue;を使うことで、以降の処理を行わずに次のループに移行する動きについて具体的に確認できた。復習として、1から10までの数を繰り返し出力するfor文を作成し、あらかじめ指定した数の場合は処理をスキップして表示するプログラムを自分で作成する。また、continue文とif文の組み合わせを工夫し、偶数のみ・奇数のみ・特定の複数の値を除外して出力する練習問題も合わせて実施することで、continue文の活用方法をより深く理解するようにする。処理の流れを意識しながら、出力結果がどう変わるのかをしっかり確認する。
◆次回授業の予習 第47回の授業「Java Bronze問題演習9-制御文の流れー」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
47
|
Java Bronze問題演習9-制御文の流れー
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第47回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第45、46回の授業で学んだ「break文」、「continue文」であるが、これまでに学んだ文法に関する複合問題も出題されるのでここまでの単元の復習も兼ねている。
|
|
|
コマ主題細目
|
① Java Bronze問題演習9-制御文の流れー
|
|
細目レベル
|
① 制御文の流れに関するJava Bronze SE形式の問題演習を行う。具体的には以下のような問題を解き、その解説を聞くという内容である。
例題 次のコードがあります。
1. public class LoopTest { 2. public static void main(String[] args) { 3. int sum = 0; 4. for (int i = 1; i <= 5; i++) { 5. if (i == 3) continue; 6. sum += i; 7. } 8. System.out.println(sum); 9. } 10. }
コンパイルした結果として正しものは次のどれですか。1つ選択してください。
A. 10 B. 12 C. 14 D. 15 E. コンパイルエラー F. 実行時エラー
正しい選択肢を選択できること、その根拠をもって回答できることが重要である。また、わからない問題や間違えた問題は実際にプログラムを作成し、実行することで出力の結果を理解できるように復習する。
|
|
キーワード
|
① break文 ② continue文
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第47回の授業では、制御文の流れをテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第48回の授業「配列とは」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
48
|
配列とは
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第48回の授業では、『配列のデータ構造』をテーマとして扱う。配列は、同じ型の複数の値をまとめて管理するためのデータ構造であり、多数の変数を個別に宣言する手間を省くことができる。配列を使うには、まず「配列変数の宣言」を行い、次に「配列要素の確保」を実行する。このとき各要素は添字(インデックス)によって0から順に番号が割り振られる。この単元では、配列の基本構造や各要素への値の代入方法を正しく理解することが求められる。
|
|
|
コマ主題細目
|
① 配列のデータ構造
|
|
細目レベル
|
① 例えば30人のテスト結果を変数に代入するには『int test1 = 50; int test2 = 60; …』のように30の変数を初期化する必要がある。しかし、このように何度も初期化が縦に並んでしまうとコードが複雑に見え、読みにくくなってしまう。このような場合は値を複数まとめて記憶することができる「配列」を用いるとよい。配列とは、同じ型のハコ(変数)をいくつも並べた形式のものである。配列を扱うには2つの手順が必要である。第一に、配列を扱う変数を用意する。配列を扱う変数を配列変数と呼び、配列変数を用意することを配列の宣言という。例えば整数を扱うための配列変数を宣言する場合は『int[] test; 』と記述する。int型の値を格納する配列型はint[]型と呼ばれている。第二に、配列変数に同じ型のハコを用意する必要がある。この箱を配列の要素と呼び、配列の要素を用意することを配列要素の確保と呼ぶ。先ほどの配列変数に5つの要素を用意する場合は『int[] test; 』のあとに『test = new int[5];』と記述すればよい。この用意した5つの要素はそれぞれ区別ができるようになっており、それぞれtest[0]、test[1]、test[2]、test[3]、test[4]と自動的に名前がつけられている。[]の中の番号は添字と呼ばれている。Javaの配列の添え字は0から始まることに注意が必要である。配列の各要素に代入するには代入演算子を使用し、『test[0] = 85; test[1]=65 …』のように記述することで配列変数の各要素に値を代入することができる。このコマ主題細目では、配列の構造を理解し、配列の各要素への代入方法を理解する必要がある。
|
|
キーワード
|
① 配列変数 ② 配列変数の宣言 ③ 要素への代入
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第48回の授業では、配列の基本的な構造と扱い方について学修した。配列は、同じデータ型の値を複数まとめて扱うことができ、変数を多数並べて記述するよりも、コードの可読性や保守性を高めることができる。配列を利用するには、まず配列変数を宣言し、次にその配列に必要な要素数を指定して確保する必要がある。加えて、各要素にはインデックス(添字)を指定することで値を代入・取得できることを確認した。復習として、配列の宣言・要素の確保・値の代入といった一連の手順を、実際に自分でコードを書いて確認する。また、Javaにおける添字が0から始まることに注意し、配列の添字の取り扱いに慣れることも重要である。配列の基本的な記述と動作を繰り返し確認しておくようにする。
◆次回授業の予習 第49回の授業「配列とプログラム」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
49
|
配列とプログラム
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第49回の授業では、『配列の記述の工夫』『配列の長さ』をテーマとして扱う。配列の記述には簡略化の方法があり、配列変数の宣言、要素の確保、値の代入を一括で実行できる。また、配列は初期化と同時に値を設定できるという点で、通常の変数と同じように扱うことが可能である。さらに、配列変数同士の代入も可能である。また、配列の一部の要素だけを変更することも可能である。加えて配列の要素数を確認したい場合は、配列変数に.lengthを付けて記述することで可能となる。これを使えば、配列の要素数を明示的に書かずとも、その長さに応じた処理を柔軟に実行できるようになる。
|
|
|
コマ主題細目
|
① 配列の記述の工夫 ② 配列の長さ
|
|
細目レベル
|
① ここまでで配列における基本的なプログラミングの方法を学んだ。この単元では、より簡単に記述する方法をこの単元では学んでいく。例えば、配列変数に値を代入するには配列変数の宣言と要素の確保の2つの手順を踏んでいた。しかし、実際には『int[] test = new int[5];』と記述することで5つの要素を持つint[]型の配列変数を宣言し、要素を確保することができる。また、配列変数を宣言し、要素を確保し、加えて値を代入するという3つ実行を同時に実行できる。つまり、変数の初期化のように、配列もまた初期化することができるということである。例えば『int[] test = (80,60,50,70,90)』のように記述することでint[]型の配列変数を作成し、その配列変数に5つの要素を確保し、それぞれ順番に80、60、50、70、90を順番に代入することができる。これによって配列を初期化することができたということである。また、特定の配列変数に他の配列変数の値を代入することも可能である。例えば、3つの要素、10、20、30の値を要素に代入しているtest1があるとする。この配列変数の各要素の値を異なる配列変数test2に移したい場合は『test2 = test1』と記述すればよい。このように記述することで、配列変数の値を異なる配列変数に代入できる。また、配列の特定の要素のみに他の値を代入することも可能である。例えば、test1の第2要素である20という値を60に変えたいとき、『test1[2] = 60』と記述することで、test1の第2要素のみを修正すること可能である。配列変数の代入は変数と同じくすべて代入演算子を用いればよいことがわかる。このコマ主題細目では、配列の宣言方法について理解する必要がある。
|
② また、配列変数においていくつの要素を持っているかを知りたい場合は、長さの知りたい配列変数に続けて『.length』と記述することで可能になる。例えば先ほどの3つの要素を持ったtest1の長さを知りたいときは『test1.length』と記述することで、その長さを表示する。また、このlengthを使うと長さの指定を具体的な数字を入力できるので、要素の個数が異なる表示をプログラミングの修正なしに実行できる。例えば『int[] no ={1, 5, 2}; int len = no.length; System.out.println("現在の受検者は“+len+”人です。“);』のように記述すれば最初に配列に入れた数を返すようなプログラミングが作成可能である。このコマ主題細目では、配列の要素の個数を知る方法を理解する必要がある。
|
|
キーワード
|
① 配列の初期化 ② 配列の長さ ③ length()メソッド
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第49回の授業では、配列の記述方法について、より簡潔に記述するための工夫を学修した。これまでのように、配列変数の宣言と要素の確保、値の代入を別々に行う方法に加え、初期化を用いて一括で記述する方法も理解した。また、配列変数同士の代入や、配列の特定の要素に別の値を代入する方法も確認した。こうした記述方法の工夫により、プログラムの簡潔さと可読性が向上することがわかった。復習として、要素数が異なる配列や、配列の一部要素だけを変更するような配列の初期化や代入を含むプログラムの演習を行う。また、配列変数の代入の挙動(参照渡し)についても注意を払い、出力結果がどのようになるかを確認する。
◆次回授業の予習 第50回の授業「制御構文で配列を扱う」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
50
|
制御構文で配列を扱う
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第50回の授業では、『配列と繰り返し文』、『配列と制御文』をテーマとして扱う。繰り返し文と配列を組み合わせることで、複数のデータを効率的に扱うことができる。添字をループ変数として使えば、各要素にアクセスできる。配列の長さの取得方法と、それを繰り返し処理に活用する方法を理解できるように演習を行う。加えて繰り返し処理のみならず条件分岐も含めた制御構文を行う。
|
|
|
コマ主題細目
|
① 配列と繰り返し文 ② 配列と制御文
|
|
細目レベル
|
① 配列が便利である点をいくつか紹介する。まず繰り返し文に配列を用いることで多くの変数の値を少ない記述で表すことができる。5つの数字を異なる変数として初期化し、それを「出席番号1番の学生の点数は〇点です。出席番号2番の学生の点数は〇点です。…」というように並べて表示したいとすれば、配列を用いない場合は以下の通りに記述できる。『int test1 = 50; System.out.println("出席番号"+ 1 + "番の学生の点数は"+ test1 +"点です"); int test2 = 60; System.out.println("出席番号" + 2 + "番の学生の点数は"+ test1 +"点です");』を5回繰り返して記述すれば良い。しかし、このようにプログラミング中に同じようなコードがいくつも並ぶのは読みにくく、かつ理解がしにくくなってします。そのため、①で行ったようにtest[0]~test[4]までの配列変数の要素に値を代入し、文字列の表示をfor文を用いた繰り返しで処理するとよい。つまり、『for(int i=0, i<5, i++){ System.out.println("出席番号"+(i+1)+"番の学生の点数は"+"test[i]+"です");』と記述すれば各要素を栗化して出力するようになる。このときに大事なことは各要素を指定するときの添え字に変数を使えばよいということである。また、配列の長さを自分で変更せずとも、最後まで処理をしたいときにはlengthでそのデータの長さを取得すればよい。例えば毎回受検者数の異なるテストを最後まで処理したいときは『for(int i=0, i< test.length, i++){…』のように条件を記述することで、毎回の受験者の異なるテストで毎回必ず受験者の数だけ繰り返すことが可能になる。このコマ主題細目では、制御文中に配列変数を用いたソースコードを読み、出力する値を理解できることが目標である。
|
② 配列と繰り返し文に加えて、条件分岐も同様に扱うことができる。例えば、int[] scores = {85, 40, 72};for (int i = 0; i < scores.length; i++) { if (scores[i] >= 60) { System.out.println("合格"); } else { System.out.println("不合格");}}というプログラムを作成すればすべての得点に対して合格や不合格を出力することができる。このように繰り返し文と条件分岐を含めたプログラムの挙動とその作成演習を行う。
|
|
キーワード
|
① 繰り返し文 ② 条件分岐文 ③ 配列変数
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第50回の授業では、配列の長さを取得するためのプログラミングの使い方について学修した。これにより、配列が何個の要素を持っているかを明確に知ることができ、要素数の変更に柔軟に対応できるコードを作成できることを理解した。また、配列と繰り返し文を組み合わせることで、同じような処理を繰り返す場面において、コードを簡潔かつ読みやすく記述できることも学んだ。復習として、配列の各要素に値を代入し、for文 を用いて出席番号ごとの点数を出力するプログラムを自分で作成する。さらに、配列名.length を活用して、要素数に応じた繰り返し処理を行えるように意識して練習する。加えて、配列の要素数を変更してもエラーが出ないような柔軟なコードを書けるように工夫する。
◆次回授業の予習 第51回の授業「配列のソート①」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
51
|
配列のソート①
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第51回の授業では、『バブルソート』をテーマとして扱う。配列の要素を並び替える「ソート」について説明している。ソートの中でも例として、数値の配列を大きい順に並べ替える処理を、配列内の値同士を比較しながら、順に入れ替えていく操作を解説する。具体的にはJavaではfor文のネストを用いて、先頭から順に比較・交換を繰り返すことでソートが実現できる。最終的な目的は、こうした配列のソート手法を理解することにある。
|
|
|
コマ主題細目
|
① バブルソート
|
|
細目レベル
|
① 配列は各要素に1つずつの値を格納した状態の並び替えに関するコードを利用すると便利である。値の順番を並び替えることをソート(sort)という。Javaではソートの方法は多くある。例えば、5つの数字、40、70、30、60、20の順に要素に格納した配列変数があるとする。そして、この配列変数に格納した要素を大きい順に並べ替えたい場合を考える。この際に、ソートは以下の手順で実行する。まず要素の添字の小さい順に配列変数に格納した値を2つ、今回であれば40と70の大きさを比べる。すると今回は70の方が大きいので70を先頭に持ってくる。その後、70を残りの30、60、20と大きさを比べ、70がもっとも大きいので変更せず、70が最も左になる。次のは要素が2番目と3番目、つまり40と30を比べると40の方が大きいので順番を変える必要がない。しかし、次に40と60を比べると60の方が大きいので40と60を交換する。このようにして、ある値と、その値が格納した配列変数の要素の添字よりより大きい添字の配列変数の要素に格納した値を比べ、それよりも大きいかどうかを1対で比較し続けることで配列のソートが可能となる。これをJavaでは『for (int i = 0; i < a.length - 1; i++) { for (int j = 0; j < a.length - 1 - i; j++) { if (a[j] > a[j + 1]) { int tmp = a[j]; a[j] = a[j + 1]; a[j + 1] = tmp; } } }』のように記述することで、可能となる。このコマ主題細目では、配列のソートの手法を理解することが目標である。
|
|
キーワード
|
① ソート ② バブルソート
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
今回授業の復習 第51回の授業では、配列のソートの仕組みについて学修した。特に、Javaにおけるソート処理では、2重のfor文を用いて要素同士を比較し、条件に応じて値を交換することで並び替えが可能になることを説明した。また、比較と交換の繰り返しにより、配列内の値を昇順または降順に整えるロジックを具体的に学んだ。復習として、任意の数値を格納した配列を用意し、それを昇順にソートするプログラムを自分で作成してみる。ソートの流れを意識しながら、実際に手を動かしてコードを書くことで理解を深める。加えて、for文のネストの中でどのように変数が変化するかを追いながら、変数の役割や動きについても復習する。さらに、ソート処理後の配列をfor文で出力し、並び替え結果を正しく反映しているか確認する練習を行う。
◆次回授業の予習 第52回の授業「配列のソート②」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
52
|
配列のソート②
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第52回の授業では、『バブルソート』をテーマとして扱う。配列の要素を並び替える「ソート」について説明している。ソートの中でも例として、数値の配列を大きい順に並べ替える処理を、配列内から取り出した値と配列内の値を比較しながら、最小値を保持し、値を順に代入していく操作を解説する。具体的にはJavaではfor文のネストを用いて、先頭から順に比較・交換を繰り返すことでソートが実現できる。最終的な目的は、こうした配列のソート手法を理解することにある。
|
|
|
コマ主題細目
|
① アルゴリズム ② 選択ソート
|
|
細目レベル
|
① アルゴリズムとは問題を解決するための手順の集まりを指す。プログラムとアルゴリズムは異なり、言語に依存しない問題解決のための手続きをアルゴリズムと呼ぶ。例えば、特定の歴史的事象について西暦何年に起きたかを充てるさいには2分探索法が用いられる。2分探索法では真ん中よりも大きいか否かで回答を絞っていくという手続きがとられる。ソートにもいくつかの手法があり、バブルソートでは前から順番に次の値と比べて大きければ次の値と交換するという手続きが行われていた。他にもソートには選択ソートというものがある。要素番号の小さい値をプールし、次の値と比較する。その比較の結果、より小さい値が代入されていればプールする値を変更する。最後まで確認できれば最初の要素にプールされた値を入れるという作業を行う。このように、ある問題(今回であれば大きい順に並べるという問題)を解決するためのさまざまな方法をアルゴリズムと呼ぶ。
|
② 配列は各要素に1つずつの値を格納した状態の並び替えに関するコードを利用すると便利である。値の順番を並び替えることをソート(sort)という。Javaではソートの方法は多くある。例えば、5つの数字、40、70、30、60、20の順に要素に格納した配列変数があるとする。そして、この配列変数に格納した要素を大きい順に並べ替えたい場合を考える。この際に、ソートは以下の手順で実行する。まず要素の添字の小さい順に配列変数に格納した値を2つ、今回であれば40と70の大きさを比べる。すると今回は70の方が大きいので70を先頭に持ってくる。その後、70を残りの30、60、20と大きさを比べ、70がもっとも大きいので変更せず、70が最も左になる。次のは要素が2番目と3番目、つまり40と30を比べると40の方が大きいので順番を変える必要がない。しかし、次に40と60を比べると60の方が大きいので40と60を交換する。このようにして、ある値と、その値が格納した配列変数の要素の添字よりより大きい添字の配列変数の要素に格納した値を比べ、それよりも大きいかどうかを1対で比較し続けることで配列のソートが可能となる。これをJavaでは『for(int n = 0; n < test.length-1; n++) {for (int m = n+1; m < test.length, m++) {if (test[m] < test[n]) {int tmp = test[m]; test[m] = test[n]; test[n] = temp;}}}のように記述することで、可能となる。このコマ主題細目では、配列のソートの手法を理解することが目標である。
|
|
キーワード
|
① アルゴリズム ② 2分探索法 ③ 選択ソート
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第52回の授業では、配列のソートの仕組みについて学修した。特に、Javaにおけるソート処理では、2重のfor文を用いて要素同士を比較し、条件に応じて値を交換することで並び替えが可能になることを説明した。また、比較と交換の繰り返しにより、配列内の値を昇順または降順に整えるロジックを具体的に学んだ。復習として、任意の数値を格納した配列を用意し、それを昇順にソートするプログラムを自分で作成してみる。ソートの流れを意識しながら、実際に手を動かしてコードを書くことで理解を深める。加えて、for文のネストの中でどのように変数が変化するかを追いながら、変数の役割や動きについても復習する。さらに、ソート処理後の配列をfor文で出力し、並び替え結果を正しく反映しているか確認する練習を行う。
◆次回授業の予習 第53回の授業「2次元配列の基本」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
53
|
2次元配列の基本
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第53回の授業では、『2次元配列とは』をテーマとして扱う。多次元配列とは、配列の中にさらに配列を格納する構造であり、1次元配列を拡張して2次元以上のデータを扱うことが可能となる。例えば、2教科(国語と算数)の点数を5人分記録する場合、2×5の構成で『int[][] test = new int[2][5];』のように宣言・確保する。また、各要素への代入は要素の指定のほか、1次元と同様に{}で初期化することも可能である。2次元配列の基本的な文法について確認する。
|
|
|
コマ主題細目
|
① 2次元配列とは
|
|
細目レベル
|
① 配列は1列に複数のハコが並んでいるイメージであるが、これをさらに拡張し、配列変数を並べる、つまり配列変数を配列することができる。つまり、2次元に変数を配列することが可能である。例えば、国語と算数のテストを5名ずつが受験し、テスト結果の点数が2科目×5人分なので10ある。その形で配列を用意するには、『int[][] test; test = new int[2][5];』と記述することで配列の宣言し、配列要素の確保をすることができる。大まかな記述の仕方は配列変数とは変わらない。そのため、『int[][] test; test = {{80,30,50}{60,20,40}};』とすることで2×3の多次元配列変数を初期化することができる。このとき横を行、縦を列と呼び、2行3列の2次元配列と呼べる。
|
|
キーワード
|
① 2次元配列
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第53回の授業では、多次元配列の使い方について学修した。これにより、1次元の配列では表現しきれない複数のデータを、行と列といった形で整理・管理できるようになることを理解した。特に、int[][] 配列名 = new int[行番号][列番号];のように宣言、初期化を行い、個別の値には配列名[行番号][列番号]という形式でアクセスできることを確認した。また、初期化は{}を用いても可能であり、さまざまな初期化の方法について確認する。
◆次回授業の予習 第54回の授業「2次元配列の応用」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
54
|
2次元配列の応用
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第54回の授業では、『2次元配列の長さ』、『2次元配列と制御文』をテーマとして扱う。多次元配列は次元ごとの配列の長さが異なる可能性があり、その長さを調べるには『test[添字].length』を用いる。なお、配列の行数を調べるには『test.length』で調べることが可能である。この授業では、こうした多次元配列の構造や操作方法を理解することが求められている。また、2次元配列の各要素をすべて出力するにはfor文のネストを用いて出力するのが一般的である。そのような多次元配列とそれに関する制御文の扱い方を確認する。
|
|
|
コマ主題細目
|
① 2次元配列の長さ ② 2次元配列と制御構文
|
|
細目レベル
|
① 1次元の配列の長さはlengthで調べることが可能であった。2次元配列は各行によって長さが異なることもある。その場合、各行の長さを調べたいときには『test[添字].length』という記述にすることで明らかになる。もし配列の行数を調べたい場合は添え字を省き、『test.lenght』とすることで調べることが可能である。この主題細目では多次元配列の長さに関する知識の確認まで行う。
|
② 2次元配列の各要素を出力するには1次元配列と同様にfor文のネストを利用する。例えば『for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { System.out.print(a[i][j] + " "); }』とすることですべての要素を出力することが可能である。最初のfor文では各行すべてにアクセスする。その後、各行のすべての要素にアクセスするために異なる変数を用意する。そしてSystem.out.println()メソッドを利用し、すべての要素にアクセスし、表示する。このように制御構文を用いて2次元配列のすべての要素へのアクセス方法を確認し、理解するところまで行う。
|
|
キーワード
|
① 2次元配列の長さ ② 制御構文
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第54回の授業では、多次元配列の発展的な扱い方について学修した。これにより、1次元の配列では表現しきれない複数のデータを、行と列といった形で整理・管理できるようになることを理解した。また、その配列の長さについて、行数と各行の列数を確認する方法について確認した。復習として、さまざまなサイズの配列を初期化し、その長さを確認することができるようにする。そのようなプログラムを作成することができるようにする。
◆次回授業の予習 第55回の授業「Java Bronze問題演習10-配列-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
55
|
Java Bronze問題演習10-配列の基礎-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第55回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第49回から第55回の授業で学んだ「配列」であるが、これまでに学んだ文法に関する複合問題も出題されるのでここまでの単元の復習も兼ねている。
|
|
|
コマ主題細目
|
① Java Bronze問題演習11-制御文の流れー
|
|
細目レベル
|
① 配列と制御文に関するJava Bronze SE形式の問題演習を行う。具体的には以下のような問題を解き、その解説を聞くという内容である。
例題 次の配列の要素をすべて出力するコードとして正しいものを選びなさい。
int[ ] array = {1, 2, 3, 4, 5};
A. for( int i = 1, i < array.length; i++){ System.out.println(array[i]); }
B. while( int i = 0, i < array.length){ System.out.println(array[i]); i++; }
C. for( int i = 0, i < array.length; i++){ System.out.println(array[i]); }
D. while( int i = 1, i < array.length){ System.out.println(array[i]); ++i; }
正しい選択肢を選択できること、その根拠をもって回答できることが重要である。また、わからない問題や間違えた問題は実際にプログラムを作成し、実行することで出力の結果を理解できるところまで行う。
|
|
キーワード
|
① 配列変数 ② 多次元配列
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第55回の授業では、制御文の流れをテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第56回の授業「プログラム演習11-制御文の流れー」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。◆今回授業の復習 第55回の授業では、配列と制御文をテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第56回の授業「実行時引数の指定①」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
56
|
実行時引数の指定①
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第56回の授業では、『実行時引数とは』『コマンドプロンプトと実行時引数』をテーマとして扱う。実行時引数を利用することで、プログラム実行時に外部から値を受け取り、それを処理に活用できる。引数はすべてString型の配列argsに格納されるため、数値として扱うにはint型へ変換が必要となる。『Integer.parseInt(args[i])』で変換しながら合計を算出し、平均は合計を要素数で割ることで求められる。このようにして、実行時に受け取ったデータを活用する処理を行うことができる。理解すべきポイントは、引数がString型であることと、それを数値に変換して使用する方法である。
|
|
|
コマ主題細目
|
① コマンドプロンプトと実行時引数
|
|
細目レベル
|
① コンパイル後に実行する際、引数を入力することで、その引数を利用した出力をすることも可能である。例えば、定期テストの5科目の数値を実行時に入力することで、その合計点や平均点を返すプログラムの作成をする。普段であればプログラムのクラス名が「Average」である場合、実行時は『java Average』とすればよかった。しかし、これに実行時の引数、5科目分の点数として80、70、60、85、90を使いたいとき、実行時は『java Average 80 70 60 85 90』のように入力することでクラス名に続いた引数を利用することができる。この時、引数はString型の配列変数argsに格納されることに注意が必要である。つまり、これらの引数は数字として扱われないことに注意する。そのため、合計を求めるには『{ int sum = 0; for (int i = 0; i < args.length; i++) {sum += Integer.parseInt(args[i]);}』と記述する必要がある。『Integer.parseInt(args[i])』によってString型の配列変数argsの要素を順にint型に変換している。その値をsumに代入されている値に足して代入することで合計点を求めることができる。また、『int ave = sum / args.length;』とすれば平均点も同時に求めることができるため『System.out.println(sum); System.out.println(ave);』により実行時引数の合計点と平均点を求め、表示することが可能となる。このコマ主題細目では、実行時引数の扱い方について理解することころまで行う。
|
|
キーワード
|
① 実行時引数 ② 実行時引数の渡し方 ③ parseInt()メソッド
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第56回の授業では、実行時引数の扱い方について学修した。これにより、プログラムの実行時に外部から値を渡し、それを活用して動的に処理する方法を理解することができた。特に、引数はString型の配列として受け取られるため、数値として扱うにはInteger.parseInt()でint型に変換する必要があることを学んだ。復習として、実行時にいくつかの値を引数として受け取り、その合計点や平均点などを出力するプログラムを自分で作成してみる。また、配列の長さを活用して、数の数を変更しても正しく処理できるような柔軟なコードを書くよう意識する。加えて、引数が文字列型であることに注意し、数値として正しく処理しているかどうかを確認しながら、実行結果の検証を練習する。
◆次回授業の予習 第57回の授業「実行時引数の指定②」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
57
|
実行時引数の指定②
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第57回の授業では、『実行時引数の指定②』をテーマとして扱う。Eclipseを用いて実行時引数と入力受付を扱うプログラムの作成方法を確認する。実行時引数はString型の配列として受け取り、添え字を使って値を取得する点はコマンドプロンプトと同じだが、Eclipseでは実行手順が異なる。実行時引数の扱いに続き、キーボードからの入力受付もEclipse上で確認し、理解をすることを目的とする。
|
|
|
コマ主題細目
|
① エクリプスと実行時引数 ② さまざまな実行時引数
|
|
細目レベル
|
① 実行時引数と入力受付を扱ったプログラムの作成方法について確認する。初めに実行時引数の扱い方について確認する。第47回、第48回で勉強した実行時引数と内容としては同様である。つまり、実行時に記述した引数argはString型の配列であり添え字を使うことで呼び出すことができる。しかしEclipseではコマンドプロンプトと実行方法が異なるため、実行方法が異なる。実行時引数を扱うにはEclipseではプロジェクトの実行手順から「実行時引数」を選択する。そして「メイン」タブの「プロジェクト」と「メイン・クラス」が実行したいものか確認する。次に引数のタブを選び、「プログラムの引数」へ任意の値を入力する。単体の値はもちろん、半角スペースで区切れば複数の値を渡すことも可能である。Eclipseによる実行時引数の扱い方までを行う。
|
② 実行時引数を用いたプログラムでは半角スペースを利用することで複数の実行時引数を設定することができた。ただし「Java Bronze」を1つの引数として利用する場合、これまでの引数の記述方法では設定ができなかった。そのため、実行時引数を半角スペースを開けたものにするには""で挟むことで設定することができる。これはコマンドプロンプトの場合も同様であり、実行時引数を””を用いて設定することが可能である。さまざまな実行時引数のパターンを確認し、その実行結果を確認できるようになるまでを行う。
|
|
キーワード
|
① 実行時引数 ② 複数の実行時引数
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第57回の授業では、実行時引数と入力受付の扱いについて学習した。これにより、プログラム実行時に外部から値を受け取る方法と、実行中にキーボードから値を入力する方法の違いや使い分けを理解することができた。特に、Eclipseでは実行時引数を設定するために「実行構成」画面から「引数」タブを開き、値を入力する必要があること、そしてString[] argsを使ってその値を取得できる点を確認した。復習として、プログラム実行時引数を用いたプログラムを実行し、その結果がどのように出力されるのかを確認する。
◆次回授業の予習 第58回の授業「繰り返し構文の発展」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
58
|
多次元配列【基本文法】【多次元配列】
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第58回の授業では、『拡張forループ』をテーマとして扱う。拡張forループは、配列やリストの全要素に対して簡潔に処理するための構文である。通常のfor文では添字を使って配列の各要素にアクセスするが、拡張forループでは『for (型 変数 : 配列)』の形で直接要素を取り出せる。例えば、ペットの種類を格納した配列arrayから要素を順に出力する場合、拡張forループでは『for (String str : array)』とすることで、各要素をstrに代入しながら処理を繰り返す。この構文により、より簡潔で読みやすいコードを書くことができる。この単元では、拡張forループと従来のforループの違いを理解し、それぞれの使い方と出力結果を把握することが求められる。
|
|
|
コマ主題細目
|
① 拡張forループ
|
|
細目レベル
|
① 配列やリストなどの全要素に対するループ文の書き方を学ぶ。例えばペットの種類dog、cat、fishを要素に含む1次配列の変数arrayを『String[] array = {“dog”, ”cat”, “fish”};』と初期化する。これらの変数に含まれる要素を順番に出力するプログラムコードを作る。拡張forループを使用せず、これまでのループ文を用いて作る場合は、配列を初期化したあと『for (int i = 0; i < array.length; i++) { System.out.println ("kinds of pet " + array[i]);}』とすることで「kinds of pet : dog」「kinds of pet : cat」「kinds of pet : fish」を改行して出力する。このfor文を拡張forループで記述する場合、条件の部分を『for (String str : array)』と記述を変えることで同じ出力結果を得ることができる。これは拡張forループが処理する前にarrayをString型の変数strに代入して、要素がある分だけ処理できるためである。つまり、変数array内に要素がある限りtrueであり、要素がなくなったときにfalseになるということである。この主題細目では、forループ、拡張forループの使い分けを理解することが必要であり、拡張forループを用いたソースコードを読み、出力する結果を理解できることを目標とする。
|
|
キーワード
|
① 拡張forループ ② for-each文
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第58回の授業では、拡張forループの使い方について学修した。これにより、配列やリストのすべての要素を簡潔に処理できる書き方を説明した。通常のfor文では添え字を使って各要素にアクセスするが、拡張forループでは「配列内の要素を順に取り出して処理する」という考え方で、よりシンプルなコードを書くことができる点が特徴である。復習として、文字列型の配列を使って複数のペットの種類などを、拡張forループを使って1つずつ出力するプログラムを作成してみる。また、同じ配列に対して通常のfor文と拡張forループの両方を使い、それぞれの書き方と動作の違いを比べながら理解を深めるようにする。拡張forループが適している場面(全要素を1つずつ処理したい場合)と適していない場面(添え字が必要な場合)についても整理しながら練習を行う。
◆次回授業の予習 第59回の授業「Java Bronze問題演習11-実行時引数と拡張forループ-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
59
|
Java Bronze問題演習11-実行時引数と拡張forループ-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第59回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第56回から第58回の授業で学んだ「実行時引数」「拡張forループ」であるが、これまでに学んだ文法に関する複合問題も出題されるのでここまでの単元の復習も兼ねている。
|
|
|
コマ主題細目
|
① 初期値のある配列宣言と要素数
|
|
細目レベル
|
① 実行時引数と拡張forループの利用に関するJava Bronze SE形式の問題演習を行う。具体的には以下のような問題を解き、その解説を聞くという内容である。
例題 次のコードがあります。
1. public class Test { 2. public static void main(String[] args) { 3. int sa[ ] = {2, 4, 6, 8}; 4. int s = 0; 5. for (s : sa) 6. System.out.print(s + “ ”); 7. } 8. }
コンパイルした結果として正しものは次のどれですか。1つ選択してください。
A. コンパイルエラー B. 実行時エラー C. 何も表示されない D. 2 4 6 8 E. 2
正しい選択肢を選択できること、その根拠をもって回答できることが重要である。また、わからない問題や間違えた問題は実際にプログラムを作成し、実行することで出力の結果を理解できるように復習する。
|
|
キーワード
|
① 実行時引数 ② 拡張forループ
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
【復習・予習課題】 ◆今回授業の復習 第59回の授業では、実行時引数と拡張forループをテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第60回の授業「Eclipseによるデバッグ」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
60
|
Eclipseによるデバッグ
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第60回の授業では、『バグとデバッグ』、『コンパイルエラーと実行時エラー』、『ブレークポイントとステップオーバー』をテーマとして扱う。バグとはプログラムに潜む意図しない挙動を引き起こすプログラムである。このようなプログラムを修正する作業をデバッグと呼ぶ。Java言語におけるプログラムにはコンパイルエラーと実行時エラーがあり、そのようなプログラムの修正が必要である。そのようなプログラムの修正をするためにEclipseにはステップオーバーという機能が実装されている。特に繰り返し文内のステップオーバーの扱い方について確認する。
|
|
|
コマ主題細目
|
① バグとデバッグ ② ブレークポイントとステップオーバー
|
|
細目レベル
|
① プログラムを作成していく上で、プログラム作成者の意図していない挙動が起こることがある。このような意図していない挙動をするプログラムはバグと呼ばれる。このようなバグはプログラムを作成する上で多く存在するが、これを修正する必要がある。バグを修正することをデバッグと呼ぶ。このデバッグはプログラマの作業のうち多くの割合を占める。この作業を以下に効率的に行うかが重要である。
|
② プログラムにバグがあったときの原因調査として利用するEclipseのツールがデバッガ(debugger)というものである。このデバッガは実行を一時停止するプログラムの行であるブレークポイントをダブルクリックで設定することができる。そして実際にブレークポイントで停止すると値の確認やインスペクションが可能である。また、一時停止の状態から再度、プログラムを動かすことも、終了することも可能である。例えばステップインやステップオーバーなど一行単位の確認を行うことなど、さまざまな動作が可能である。このコマでは実際にプログラムのデバッグを経験し、今後の開発に生かせるように演習を行う。
|
|
キーワード
|
① バグ ② デバッグ ③ ブレークポイント ④ ステップオーバー
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
【復習・予習課題】 ◆今回授業の復習 第60回の授業では、デバッグの基本的な考え方と、Eclipseにおけるデバッガの使い方について学習した。これにより、プログラムに意図しない動作(バグ)が発生した場合に、原因を特定し修正するための手段として「デバッグ」が重要であることを理解した。特に、Eclipseではブレークポイントを設定してプログラムの途中で実行を一時停止させ、変数の値や処理の流れを1行ずつ確認できる機能(ステップイン・ステップオーバーなど)があることを学んだ。復習として、意図的に計算ミスや配列の範囲外アクセスを含む簡単なプログラムを作成し、Eclipseのブレークポイントを活用してどの時点で問題が起きているのかを確認する練習を行う。さらに、デバッグ実行中に変数の中身を確認し、想定と違う値になっている箇所を見つけて修正を行うという一連の流れを体験することで、今後のプログラム開発に役立てられるようにする。
◆次回授業の予習 第61回の授業「Gitの基本」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
61
|
Gitの基本
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第61回の授業では、『Gitの入門』、『Gitの使い方』をテーマとして扱う。Gitとはプログラムの更新や修正をするために不可欠なツールである。特にチームでプログラムを管理するときにその利便性が発揮されるが、それをこのコマでは各個人が扱えることを目的とする。また、そのために具体的なGitの扱い方について確認し、コマンドを用いたプログラムの更新方法について確認する。
|
|
|
コマ主題細目
|
① Gitの入門 ② Gitの使い方
|
|
細目レベル
|
① 作成したアプリケーションやプログラムは一度作って終わりであることはほとんどなくなってきている。作成したアプリケーションに機能を追加したり、バグを修正したり、なんども変更を加えていくのが一般的になってきている。このようなプログラムの修正をチームの誰かが行ったときに、別の人も同じようなプログラムの更新をするなど、その管理が非常に難しくなってしまう。そのようなプログラムの更新に関する管理をするための強力なツールとしてGitが存在する。Gitとはプログラムのソースコードなどの変更履歴を記録、追跡するためのバージョン管理システムのことである。「いつ」「誰が」「どこで」「どのように」変更したのかをすべて記録し、必要に応じて過去の状態に戻したり、変更点を比較することができるのがGitである。このGitの基本的な仕組みを理解するところまで確認する。
|
② Gitの基本的な使い方を確認する。まずはGitを扱うにはメールアドレスと名前の登録が必要である。続いてデフォルトブランチ名を設定し、Gitの一連の操作を確認する。レポジトリに登録したい変更内容を作成するにはまずgit initコマンドを利用する。これによってディレクトリが作成される。次に最初のプログラムのスナップショットを作成する。これをステージングと呼ぶ。ステージングにはgit addコマンドを利用する。次に新しいプログラムをコミットを作成する。作成するにはgit commitコマンドを利用する。このコミットしたプログラムの修正や、修正前後のプログラムの差分を確認する方法などについても学修する。このコマではコマンドプロンプトを利用したGitの活用方法について理解できるところまで確認する。
|
|
キーワード
|
① Git ② Gitコマンド ③ コミット
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第61回の授業では、プログラムの更新などに関するGitの扱い方について学修した。Gitを扱うための準備としてダウンロードやその設定を行った。また、作成したプログラムのアップロードやプログラムの更新におけるさまざまなコマンドの扱い方などを学修した。復習として特定のプログラムを作成し、コマンドを用いてプログラムのアップロードや更新の演習を実施し、手続きの確認を行う。
◆次回授業の予習 第62回の授業「GitHubの利用」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
62
|
GitHubの利用
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第62回の授業では、『GitHubアカウントの取得』、『EclipseによるGitHubの使い方』をテーマとして扱う。さまざまなプログラムを保存、更新を管理するためのツールであるGitHubの利用方法について確認する。その際に、アカウントの取得やトークンの確認を行う。そしてEclipseによるGitHubの利用方法についても確認する。GitHubにプログラムをアップロードするには特定の手続きが必要なのでそれについて学修をする。
|
|
|
コマ主題細目
|
① GitHubアカウントの取得 ② EclipseによるGitHubの使い方
|
|
細目レベル
|
① GitにおけるホスティングサービスとしてGitHubが存在する。これをプログラム作成において利用し、プログラムのアップロードや更新を将来的に自身で管理できるようにするのが重要である。それに際してまずはGitHubを使えるようにするためにGitHubのアカウントの取得を行う。まず、GitHubに各種情報を入力する。次に過去はパスワードで行われていた認証がアクセストークンに変わったため、GitHubでアクセストークンを作成し、Eclipseに設定する必要がある。トークンは作成後、必要になる場面があるのでメモ帳などを利用して残しておくことが重要である。基本的なGitHubの設定ができるところまで確認する。
|
② Eslipseを用いて作成したプログラムをGitHubにアップロードする方法について確認する。手法としてはいくつかあるため、そのうちの一つを確認する。まずパースペクティブをGitに変更する。次にコンピュータ内に新規ローカルレポジトリを作成する。次に作成したプログラムをコミットする。Gitステージングビューが表示されたら++ボタンをクリックして、ステージングされていない変更欄にあるファイルをステージされた変更欄へ移動させる。リモートの作成をし、フェッチ構成で作成後、パスワードとしてトークンを貼り付け、保存とフェッチボタンをクリックし、コミットおよびプッシュを実行する。この際に、コミットメッセージという、プログラムの作成や更新に関するコメントを入力する欄が存在する。ここに必要なコメントを入力し、プッシュが成功したことを確認して画面を閉じる。このコマではEclipseを用いて作成したプログラムをGitHub上にアップロードすることができるところまで確認する。
|
|
キーワード
|
① GitHub ② アクセストークン ③ コミット
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
【復習・予習課題】 ◆今回授業の復習 第62回の授業では、プログラムの更新などに関するGtiHubの扱い方について学修した。GitHub上に作成したプログラムのアップロードをEclipseを通して行える手順を確認し、実際にそのプログラムのアップロードを行った。復習として再度異なるプログラムをGitHub上にアップロードできるように演習する。
◆次回授業の予習 第63回の授業「クラスの基本的な構成要素」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
63
|
クラスの基本的な構成要素
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第63回の授業では、『オブジェクト指向の必要性』、『クラスの構成要素』、『クラスとオブジェクトの関係』をテーマとして扱う。Java言語の大きな特徴の1つであるオブジェクト指向について簡単に説明し、そのオブジェクトの設計図となるクラスの基本的な構成要素について確認する。また、クラスは設計図であり、それを具体的な物体としたものがオブジェクトであり、その関係性が理解できるように学修する。
|
|
|
コマ主題細目
|
① オブジェクト指向の必要性 ② クラスの構成要素 ③ クラスとオブジェクトの関係
|
|
細目レベル
|
① Java言語はオブジェクト指向と呼ばれる言語である。このオブジェクト指向ではプログラムをクラス単位で作成することが重要になる。クラス単位でプログラムを作成することのメリットとして、大規模なプログラムの可読性が高まること、複数人でプログラムを作成することが容易になることが挙げられる。このようなプログラムが連動し、さまざまなアプリケーションは機能していることが理解できるところまで確認する。
|
② クラスは大規模なアプリケーションを分割するようにプログラムを作成することができるが、その基本的な構成要素はすべて同じである。それらの構成要素をクラスのメンバと呼ぶ。また、メンバのうち、クラスに属するデータのことをフィールドと呼び、クラスに属する処理のことをメソッドと呼ぶ。つまりクラスを設計する際にはそのクラスが持つべき処置と情報が何かを考え、整理する必要がある。これらの構成要素を自身で考えることができるように、その演習を行う。クラスのメンバの具体例を考え、作成できるところまで確認する。
|
③ クラスはさまざまなアプリケーションを分割するための手段として使われる。このクラスをもとに作られるのがオブジェクトである。このオブジェクトはインスタンスと呼ばれる。このインスタンスはクラスという設計図をもとにした製品である。このインスタンスを作ることをJava言語では生成するという。インスタンスはクラスをもとに複数生成することができる。これらのインスタンスは同じクラスに基づいて生成されるので構成は同じである。ただし、そのフィールドは作成されるものによって異なる点を意識する。このインスタンス生成の演習を行い、クラスから複数のインスタンスを生成する手続きを理解する。インスタンス生成の具体例を考え、作成できることまで確認する。
|
|
キーワード
|
① クラス ② メンバ ③ オブジェクト ④ インスタンス生成
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
【復習・予習課題】 ◆今回授業の復習 第63回の授業では、クラスの基本的な構成要素について確認した。クラスの利点を理解し、クラスの構成を自身で行う方向性について学修した。また、クラスからインスタンスを生成する具体例を作成することができるようになった。復習として、特定のクラスのメンバを考えること、クラスのメンバからインスタンスを生成するためのフィールドを考えることの演習を行う。
◆次回授業の予習 第64回の授業「クラスの構成」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
64
|
クラスの構成
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第64回の授業では、『クラスの設計とインスタンス生成』、『Java言語のクラス』をテーマとして扱う。前のコマではクラスの設計とインスタンスの生成を分けて学修した。この2つを合わせた演習を行うことで、クラスの構成とインスタンスの生成の流れの定着を図る。また、Java言語はオブジェクト指向の言語であるため、Java言語に標準設計されているクラスにもフィールドとメソッドが存在する。その具体例を確認し、クラスのメンバに対する理解を深める。
|
|
|
コマ主題細目
|
① クラスの設計とインスタンス生成 ② Java言語のクラス
|
|
細目レベル
|
① クラスは特定のまとまりを示す設計図であり、インスタンスはそこから生成される製品である。クラスには、そのクラスに属する情報であるフィールドと、そのクラスに属する処理であるメソッドが存在する。これらのフィールドとメソッドを合わせてメンバと呼ぶ。これらクラスのメンバを設計し、そこからインスタンスを生成する流れについて理解し、その演習を行うことでより深くクラスの設計について理解する。クラスのメンバを設計し、インスタンスを生成するところまで確認する。
|
② Java言語ではこれまでにいくつかのクラスを扱っている。そしてそれらのクラスもオブジェクト指向に基づいて作成されており、フィールドやメソッドを持っている。例えばStringクラスという文字列を扱うためのクラスがある。Stringクラスには文字列を保存するためのフィールド「public final char[];」という変数がある。また、同じ文字列であるかどうかを確認するequals()メソッド、文字列の長さを返すlength()メソッド、文字列の特定の要素の文字を返すcharAt()メソッドなどが含まれている。これらの使い方と役割を確認し、クラスに含まれるフィールドとメソッドの扱い方について理解できるところまで確認する。
|
|
キーワード
|
① クラスのメンバ ② フィールドとメソッド ③ Stringクラス
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
【復習・予習課題】 ◆今回授業の復習 第65回の授業では、クラスの基本的な構成要素について確認した。クラスの利点を理解し、クラスの構成を自身で行う方向性について学修した。また、Stringクラスを例にクラスに含まれるフィールドやメソッドがどのように用意されているのかを確認した。復習としてクラスの設計について再度確認する。また、Stringクラスに実装されているメソッドの内容などを理解する。
◆次回授業の予習 第65回の授業「フィールドの定義とアクセス」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
65
|
フィールドの定義とアクセス
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第66回の授業では、『クラスとフィールドの宣言』、『インスタンスの生成と値の出力』をテーマとして扱う。前の2回の授業においてクラスの基本的な構成、特にメンバと呼ばれるメソッドとフィールドの設計について学修した。このコマではクラスとメンバのうちフィールドの宣言をプログラム内で具体的にどのように行うのかを確認し、その演習を行う。また、クラスからインスタンスを作成し、フィールド変数に値を代入、そしてその変数にアクセスし、出力を行う手続きについて確認する。
|
|
|
コマ主題細目
|
① クラスとフィールドの宣言 ② インスタンスの生成と値の出力
|
|
細目レベル
|
① クラスには基本的な構成要素としてメソッドとフィールドがあることを確認した。このコマでは具体的にフィールド変数を持つクラスの記述方法について学修する。クラスを生成するときは『public class クラス名{}』を基本的な形として利用する。普段であれば『public static void main(String[] args){…}』という記述を忘れないようにしていたが、フィールドのみを持つクラスにおいてはこの限りではない。クラス名の後の{}内に変数を宣言することが可能である。これがフィールド変数と呼ばれる。これまでの『public static void main(String[] args){…}』の{}内に記述してきた変数はフィールド変数とは大きく性質が異なるため、{}内に記述してきた変数をローカル変数と呼ぶ。フィールド変数とローカル変数の違いを理解し、フィールド変数を持つクラスの作成を行えるところまで確認する。
|
② クラスをプログラムとして記述することができれば、それを設計図とした製品にあたるインスタンスを生成することもできる必要がある。インスタンスの生成にはnewキーワードを用いて『new クラス名()』と記述する。これによってインスタンスを生成したあと、フィールド変数の値は代入していない状態になっているので、この変数に新しく値を代入する。その際には.(ドット)演算子を用いて変数にアクセスし、値を代入することができる。また、代入された値を出力するにはSystem.out.println()メソッド内に.演算子を用いて変数にアクセスすることで可能になる。なお、インスタンス生成時にはフィールド変数には規定値と呼ばれる値が代入されており、代入する前の段階で値が代入されていることにも注意が必要である。インスタンス生成とフィールド変数へのアクセスの方法を理解できるところまで確認する。
|
|
キーワード
|
① フィールド変数 ② newキーワード ③ .演算子 ④ フィールド変数の規定値
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第65回の授業では、フィールド変数のみを持つクラスの作成とその扱いについて学修した。フィールド変数はクラス内に直接記述される変数のことであり、その変数へのアクセスはインスタンスを生成後に.演算子を用いて行うことを学修した。復習としてフィールドのみを持つクラスのプログラム作成と、フィールド変数への代入とその値の出力の手順について確認し、プログラムの作成演習を実施する。
◆次回授業の予習 第66回の授業「メソッドの定義と引数・戻り値」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
66
|
制御構文と入力受付【基本文法】【入力の受付】
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第66回の授業では、『クラスのメソッド』、『メソッドのシグネチャ』をテーマとして扱う。クラスのメンバとしてクラスに属するデータをフィールドと呼び、クラスに属する処理をメソッドと呼ぶ。メソッドはフィールド変数とは異なり、必要な値を保存しておくことはできない。必要な値をプログラムを渡すには引数を利用するとよい。引数はメソッドを実行する際に必要な値を渡すことができるものである。また、同じメソッド名で異なる引数でプログラムを実行したいときに引数のシグネチャを変えるとよい。メソッドの基本的な扱い方について学修する。
|
|
|
コマ主題細目
|
① クラスとメソッド ② メソッドのシグネチャ
|
|
細目レベル
|
① クラスに属するデータのことをフィールドと呼び、クラスに属する処理のことをメソッドと呼ぶ。これらをまとめてメンバと呼ぶ。メソッドは前のコマで学修したフィールド変数とは異なり、値を保存しておく必要がないため、その手段を持っていない。また、処理に必要な値は、処理で利用したあとメモリから消すということになる。また、処理の結果も同様に処理終了時にメモリから消えてしまう。そのため、その処理結果を他のプログラムで利用したい場合は、戻り値という形でメソッドを呼び出したところに値が戻す必要がある。そして、この戻り値を呼び出したプログラム側で変数を作ることでその戻り値を保存することができる。このようなメソッドの呼び出し方とその戻り値の扱い方について理解し、プログラムを作成する前段階としてのメソッド設計的なところまで確認する。
|
② メソッドにはその処理に必要な値である引数と、その処理の結果をメソッドの呼び出しもとに返すための戻り値があることを学修した。この引数はどのメソッドを使うか、Java言語が判断する非常に大事な要素になっている。そのためここではJava言語がどのメソッドを使うかの判断基準を理解する必要がある。Java言語が呼び出されたメソッドがどれであるかを判断する基準は「メソッド名」、「引数の型」、「引数の個数」、「引数の順番」の4つである。これらに合致しているメソッドが選択され、実行される。この4つをまとめてメソッドのシグネチャと呼ぶ。メソッドのシグネチャを考え、メソッドを記述する基本的な方法を理解するところまで確認する。
|
|
キーワード
|
① メソッド ② 引数 ③ 戻り値 ④ シグネチャ
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第66回の授業では、メソッドの構成(引数と戻り値)とその基本的な記述方法について学修した。メソッドはクラスに含まれる処理であり、その処理に事前に必要な値を引数、処理が終わった後にプログラムの呼び出し元に返す値を戻り値と呼ぶ。また、メソッドを起動するときにJava言語がどのメソッドを呼び出したかの確認の基準としてメソッドのシグネチャが関係することを確認した。復習としてメソッドを作成する際に考えられるメソッド名とシグネチャの組み合わせを考え、メソッドの実装に向けた準備をする。
◆次回授業の予習 第67回の授業「メソッド定義の基本」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
67
|
メソッド定義の基本
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第67回の授業では、『単一の引数を持つメソッド』、『引数を持たないメソッド』をテーマとして扱う。メソッドの処理を実行する際に必要な値は引数として与える。例えば挨拶のメソッドを作成する際に時間帯によって異なるメソッドを利用する際には引数として時刻を与えると良い。時刻が24時間表記とすればint型で引き数を設定するのがよい。ただし、時間帯によって挨拶が変わらない場合は引数の必要性がなくなる。そのような場合もJava言語では引数なしのメソッドとして作成することが可能である。基本的なメソッドの定義とその呼び出し方法について確認する。
|
|
|
コマ主題細目
|
① 単一の引数を持つメソッド ② 引数を持たないメソッド
|
|
細目レベル
|
① クラスの基本的な構成要素の1つにメソッドがある。メソッドはプログラムが持つ処理のことである。例えばNPCクラスにあいさつをするためのメソッドを作成するとする。クラスの宣言は『public class NPC {}』とする。このクラスの中にメソッドは記述する。NPCにあいさつする時間帯によって返ってくる返事を変更したいとする。その場合、引数として24時間表記の時刻を受け取れるようにし、それによって挨拶を変更する。戻りが挨拶の内容(String型)で時刻をint型で受け取るように引数を持つgreeting()メソッド作成するには『public String greeting(int hour){…}』と記述する。処理内容は引数、つまり時刻によって返す挨拶が変わるプログラムにする。返す値(今回であれば挨拶の内容)はreturnキーワードの後ろに記述すればよい。単一の引数を持つメソッドの基本的な作成をするところまで確認する。
|
② メソッドには引数を設定することでより細かいメソッドの設定が可能になる。ただし、メソッドを特に引数なく記述することも可能である。例えばさきほどの挨拶のメソッドについて、相手がNPCの中でも商人である場合、どのような時間帯であっても「いらっしゃい」など決まった挨拶をすると考えらえる。そのため、時間帯などの処理に必要な引数がないことがわかる。そのため、ここで引数なしの挨拶のメソッドを作成する。例えば戻り値は挨拶の内容(String型)で引数はなしである商人の挨拶用のメソッドgreetingMerchant()メソッドを作成するには『public String greetingMerchant(){…}』とする。引数がない場合は引数がないことを明示的にするため、引数を記述する()は省略しない。また、メソッドを実行するはインスタンスを生成後、そのメソッドに.演算子でアクセスする必要がある。引数のないメソッドの作成とその実行が可能になるところまで確認する。
|
|
キーワード
|
① メソッド ② returnキーワード ③ 引数の設定
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第67回の授業では、メソッドの基本的な記述方法について学修した。特に引数が単一のメソッドと引数を持たないメソッドに限りその記述方法と実行方法を確認した。メソッドの基本としてpublic 戻り値の型 メソッド名(引数の型と変数名){処理内容}という一般的な形を理解し、プログラムできるようになった。また、メソッドを扱う際にはインスタンスを生成し、インスタンス.メソッド名(引数)のように.演算子を用いて記述することも理解した。復習としてメソッドを利用したプログラムを作成し、実際に実行するところまで行う。
◆次回授業の予習 第68回の授業「戻り値を持たないメソッドの定義」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
68
|
戻り値を持たないメソッド
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第68回の授業では、『returnキーワードとvoidキーワード』をテーマとして扱う。戻り値はメソッド、つまり特定の処理を実施したあとにその処理の結果、メソッドの呼び出し元に戻される値のことであった。この戻り値を持たないメソッドの記述が可能である。その際にはメソッド名の前に戻り値の型を記述する代わりにvoidキーワードを用いることで実行できる。戻り値を持たないメソッドの記述方法を具体的に確認する。
|
|
|
コマ主題細目
|
① returnキーワードとvoidキーワード
|
|
細目レベル
|
① 第67回で作成したメソッドでは、挨拶の内容が戻り値となり、それを受け取ってSystem.out.println()メソッドで表示した。このとき、メソッド内で戻り値を介さず、そのまま表示することも可能である。ただし、そのような場合、戻り値がないため、そのようなプログラムの記述方法を学修する必要がある。戻り値はreturnキーワードを用いて記述した。つまり、戻り値がない場合はreturn文の記述が不要になる。また、戻り値の型がメソッド名の前に記述をする必要があったが、ここには戻り値がないことを明示的にするためvoidキーワードを記述する必要がある。それ以外は変わらず、メソッドを実行する際にはインスタンスを生成し、.演算子でアクセスする必要がある。戻り値を持たないメソッドの作成とその実行ができるところまで確認する。
|
|
キーワード
|
① メソッド ② returnキーワード ③ voidキーワード
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第68回の授業では、戻り値がないメソッドの記述方法について学修した。戻り値がないメソッドではreturn文が必要なく、記述してはいけないこと、そしてメソッド名の前の戻り値の型にはvoidを指定することを確認した。復習として戻り値のないメソッドを利用したプログラムを作成し、実際に実行する。
◆次回授業の予習 第69回の授業「複数の引数を持つメソッドの定義」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
69
|
複数の引数を持つメソッドの定義
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第69回の授業では、『複数の引数の設定』、『メソッドのシグネチャと拡大変換』をテーマとして扱う。引数がないメソッド、引数が単一であるメソッドのプログラムについてはこれまで記述し、実行してきた。この授業では引数が複数個必要なメソッドの記述方法と注意点について確認する。また、メソッドのシグネチャで実行するメソッドの選択が行われるが、その際の値の型変換についても確認する。
|
|
|
コマ主題細目
|
① 複数の引数の設定 ② メソッドのシグネチャと拡大変換
|
|
細目レベル
|
① これまでの授業で戻り値を持つものの引数を持たないメソッドと、戻り値を持つ単一の引数を持つメソッド、そして戻り値を持たないメソッドの作成とその実行について確認をしてきた。最後に複数の引数を持つメソッドの確認を行う。複数の引き数を設定するにはメソッド名の後ろの引数について記述する()内に『引数の型 変数名』をカンマ(,)区切りで複数記述すればよい。例えば戻り値がなく、int型の値と文字列型の値を引数として受け取るメソッドを記述するには『void method(int num, String str){…}』のように記述すればよい。メソッドを起動するときはこれまで同様にインスタンスを生成してアクセスすればよいが、変数が片方だけ一致している場合などは実行することができないことを確認する。複数の引数を受け取るメソッドの記述とその実行ができるところまで確認する。
|
② メソッドを実行する際にはJava言語ではシグネチャが確認され、それに一致したメソッドが選択、実行される。例えばmethod(int a, String b)となっていれば呼び出す際には.method(7, "Lucky");のように引数にint型のリテラルと文字列リテラルを記述する必要がある。このように一致した引数の方に完全に一致したプログラムを書く必要があると説明してきたが、いくつかの例外がある。現在学ぶ必要があるのは暗黙的型変換によるシグネチャの一致である。例えばmethod(int a, double d)という引数が設定されているとき、.method(7, 11)でも実行が可能である。これは第二引数である11がint型であるが、double型に暗黙的な型変換が行われ、methodが選択されたためである。なお、method(int a, int b)が同じクラスに記述されている際には暗黙的な型変換が行われないため、そのメソッドが優先的に実行される。メソッド実行の優先順位に関する理解ができるところまで確認する。
|
|
キーワード
|
① メソッド ② 引数 ③ 暗黙的型変換 ④ シグネチャ
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第69回の授業では、複数の引数を持つメソッドの記述方法について、加えてメソッドの選択について学修した。複数の引数を設定するには引数を記述する()内にカンマ区切りで『変数の型 変数名』を記述することで可能であることを確認した。また、メソッドはシグネチャによってどのメソッドを利用するか判断するが、その際に引数の型が暗黙的に型変換され、利用されることを確認した。復習として複数の引数を持つメソッドを利用したプログラムを作成し、実際に実行する。
◆次回授業の予習 第70回の授業「メソッドのオーバーロード」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
70
|
メソッドのオーバーロード
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第70回の授業では、『オーバーロードとは』、『曖昧なメソッドの定義』をテーマとして扱う。これまでも同一クラスに同じメソッド名のメソッドを記述してきた。このような手続きをメソッドのオーバーロードと呼ぶ。このメソッドのオーバーロードはシグネチャによって判断されるのでシグネチャを意識する必要がある。また、メソッドのオーバーロードの際の注意点として、曖昧なメソッドの定義がある。メソッドのオーバーロードについて基本的なところを確認する。
|
|
|
コマ主題細目
|
① メソッドのオーバーロード ② 曖昧なメソッドの定義
|
|
細目レベル
|
① 特定のクラスにおいて引数によって処理を変更するようなことをすることがある。これまでのプログラムでも同一クラスの中に複数のメソッドを用意して記述してきた。このような場合、シグネチャをそろえなければ問題ないことを確認してきた。再度の確認になるが、シグネチャとはメソッド名、引数の型、引数の個数、引数の順番の4つである。このように同一クラスに同一メソッド名を持ち、シグネチャが異なるメソッドを定義することをメソッドのオーバーロードと呼ぶ。同一のメソッドであるかどうかはシグネチャによって判断されるため、シグネチャが同一で戻り値が異なるメソッドを複数設定してもオーバーロードはできない。メソッドのオーバーロードができているかをプログラムを読んで理解し、実際にプログラムの記述ができるようになるところまで確認する。
|
② メソッドのオーバーロードの注意点は前細目レベルでも説明した通り、戻り値が異なっていたとしても、戻り値はシグネチャに含まれないため、オーバーロードができない点である。加えて、この節では曖昧なメソッドの定義というオーバーロードの注意点について確認する。曖昧なメソッドの定義とは、暗黙的型変換によってメソッドが選択されたとき、どちらのメソッドを選択すればよいのかわからないようなメソッドの定義方法になる。具体的にはmethod(int a, double b)とmethod(double a, int b)という2つのメソッドをオーバーロードした場合に、メソッドを.method(1, 2)と呼び出した場合に起こる。この場合、オーバーロード自体は成功しているため、コンパイルエラーは起きない。しかし、第一引数である1が暗黙的な型変換によってdouble型になった場合は後者のメソッドが、第二引数である2が暗黙的な型変換によってdouble型場合は前者のメソッドが選択されることになる。これらは優先順位がないためメソッド定義が曖昧であるとされコンパイルエラーが起きる。ここでは曖昧なメソッドの定義の意味とプログラムを読んで、そのコンパイルエラーが理解できるところまで確認する。
|
|
キーワード
|
① オーバーロード ② シグネチャ ③ 曖昧なメソッドの定義
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第70回の授業では、メソッドのオーバーロードと曖昧な定義について確認した。同一クラス内に同一メソッド名で複数のメソッドを定義することをオーバーロードと呼んだ。オーバーロード異なるシグネチャを記述することで定義可能である。しかし、引数が暗黙的な型変換によって異なる型になる場合、曖昧なメソッドの定義が起こる可能性について確認した。復習としてオーバーロードが実装されたクラスの記述と曖昧なメソッド定義にならないようなプログラムの定義が行えるように演習する。
◆次回授業の予習 第71回の授業「可変長引数」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
71
|
可変長引数
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第72回の授業では、『可変長引数とは』、『可変長引数の注意点』をテーマとして扱う。可変長引数とは特定の型の変数を複数受け取るための仕組みである。可変長引数を用いることで同じ型であれば個数を指定せず受け取ることができる。ただし、可変長引数の設定には1つしか設定できないことやその順番、受け取った後の変数の利用などについていくつかの注意点が存在する。プログラムで可変長引数を正しく扱えるようになるための基本的な知識を学修する。
|
|
|
コマ主題細目
|
① 可変長引数とは ② 可変長引数の注意点
|
|
細目レベル
|
① 可変長引数とはメソッドの引数において、特定の型の値を個数の指定をすることなく受け取る仕組みである。例えばmethod(int a, int b){}というメソッドの定義ではint型の値を2つ受け取ると決まっていたが、可変長引数を用いるとmethod(int... a)と記述することができ、2つの値を受け取ることができる。可変長引数はその名の通り、受け取る値は可変長であるため0個以上であれば何個であっても受け取ることができる。そのためメソッドの呼び出しでint型のみの引数を渡して呼び出せば、シグネチャが一致すると判断され、そのメソッドが実行される。なお、可変長引数は受け取ったあと変数に配列変数として代入されることに注意が必要である。method(int... a)と記述していてもaは配列変数になるということである。可変長引数の働きと可変長引数を設定したメソッドの実行ができるところまで確認する。
|
② 可変長引数は同じ型の値であれば複数受け取れるという非常に便利な仕組みである反面、いくつかの注意点がある。第一に可変長引数はメソッドの引数リストの中で1つしか使うことができない。例えばmethod(int... a, String… b)という設定はコンパイルエラーになる。また、可変長引数は複数の引数リストを設定するときに最後に記述しなければならない。例えばmethod(int... x, String y)のように可変長引数のあとに引数リストを記述することができない。また、可変長引数はオーバーロードにおいて非常に優先度が低いことに注意が必要である。例えばmethod(int a, double b)とmethod(int... a)というように記述することはオーバーロードについて問題ない。これらのメソッドを呼び出す際にmethod(7, 8)とint型の整数リテラルを記述した場合、暗黙的型変換が優先され、method(int a, double b)が実行される。つまり暗黙的型変換→可変長引数という順番にメソッドの選択が行われいていることを理解する。可変長引数をプログラムで扱う際の注意点を理解するところまで確認する。
|
|
キーワード
|
① 可変長引数 ② オーバーロード
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第71回の授業では、可変長引数の扱い方について確認した。可変長引数は同じ型の値であればその個数を指定することなく設定でき、メソッドの呼び出しにおいてより柔軟に対応できるプログラムになっている。復習として可変長引数を設定したメソッドの作成とその実行を確認する。特に可変長引数の扱いには複数の決まりがあるのでそれについて理解し、プログラムのコンパイルエラーに気づけるようにする。
◆次回授業の予習 第72回の授業「thisキーワード」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
72
|
thisキーワード
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第72回の授業では、『thisキーワードとは』、『thisキーワードの省略と衝突』をテーマとして扱う。thisキーワードはインスタンスのメソッド内で使用され、そのメソッドを実行しているインスタンス自身を指すためのキーワードである。ただしthisキーワードは状況に応じて省略が可能な場面があるためその確認をする。その逆にthisキーワードを省略できない場面もある。このようなthisキーワードの扱い方と有無による挙動の変化について確認する。
|
|
|
コマ主題細目
|
① thisキーワードとは ② thisキーワードの省略と衝突
|
|
細目レベル
|
① クラスにはフィールドとメソッドが存在する。このフィールド変数をmainメソッド内からアクセスするには『インスタンス名.フィールド変数』という形で記述する必要があった。フィールドを含むメソッドからアクセスする際にはthisキーワードを利用する。例えばclass Student{ int age; }というように年齢があり、これを出力するメソッドを記述するには public getAge(){System.out.println(this.age)}とすることでフィールド変数のageに代入されている値にアクセスすることができる。thisは実行されたメソッドが含まれているインスタンス自身を指すためのキーワードであり、これによってメソッド内からフィールド変数にアクセスすることができる。フィールド変数にアクセスし利用するメソッドの書き方と挙動の理解ができるところまで確認する。
|
② thisキーワードを用いて自身のインスタンスを指し、それによってメソッドからフィールド変数にアクセス、そして値を表示するなどができることを確認した。ただしこのthisキーワードは省略可能な場合が多い。例えば先ほどの例であるgetAge(){System.out.println(this.age)}はthisを省略しageのみでも成り立つ。これはそのメソッド内にageという変数がなく、インスタンス内にあるフィールド変数を指すとJava言語では判断されるためである。言い換えればこの場合はthisが省略されていると判断し、暗黙的にthisを追加するためである。しかし、メソッド内に同じ名前の変数がある場合はその追加がなされない。例えば public getAge(int age){System.out.println(this.age = age)}としてメソッドを呼び出した場合、引数として与えられたageをフィールド変数のageに代入することになる。このthisを省略した場合は引数を受け取ったageという変数であると判断され、フィールド変数に代入されない。thisを利用する際の省略が可能か否かの判断とそのコードの実行内容が理解できるところまで確認する。
|
|
キーワード
|
① thisキーワード ② thisキーワードの省略
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第72回の授業では、thisキーワードについて確認した。thisキーワードを用いることでフィールド変数にアクセスすることができ、値の出力や保存が可能になった。復習としてthisキーワードを用いたプログラムの作成と、thisキーワードが記述されているプログラムの挙動が理解できるように演習を行う。
◆次回授業の予習 第73回の授業「Java Bronze問題演習12-クラスの基本-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
73
|
Java Bronze問題演習12-クラスの基本-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第73回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第63回から第72回の授業で学んだ「クラスの基本」「フィールドとメソッド」であるが、これまでに学んだ文法に関する複合問題も出題されるのでここまでの単元の復習も兼ねている。
|
|
|
コマ主題細目
|
① Java Bronze問題演習12-クラスの基本-
|
|
細目レベル
|
① クラスの基本やフィールドとメソッドに関するJava Bronze SE形式の問題演習を行う。具体的には以下のような問題を解き、その解説を聞くという内容である。
例題 次のコードがあります。
1. public class Test { 2. int doMethod(int a){ 3. return 1; 4. }
上記のクラスに含まれるメソッドをオーバーロードして定義する場合の記述として、正しいものを選びなさい(2つ選択)。
A. String doMethod(int a) { return "abc"; } B. int doMethod() { return 1; } C. int doMethod(int a, int b) { return 1; } D. int didMethod(int a) { return 1; } E. int doMethod(int x) { return 1; }
正しい選択肢を選択できること、その根拠をもって回答できることが重要である。また、わからない問題や間違えた問題は実際にプログラムを作成し、実行することで出力の結果を理解できるように復習する。
|
|
キーワード
|
① クラスの設計 ② フィールド変数 ③ メソッド
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第73回の授業では、クラスの設計とフィールド、メソッドをテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第74回の授業「コンストラクタの基本」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
74
|
コンストラクタの基本
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第74回の授業では、『コンストラクタの使い方』をテーマとして扱う。コンストラクタはメソッドに似たものである。ただし、インスタンスの初期化と関連しており、インスタンス生成時に自動的に起動する。また、メソッドと異なり戻り値を書くことができず、名前はクラス名と同じになっている必要がある。コンストラクタの基本的な仕組みについて学修する。
|
|
|
コマ主題細目
|
① コンストラクタの使い方
|
|
細目レベル
|
① インスタンス生成時にインスタンスの初期化をする必要がある。このときに実行されるのがコンストラクタである。メソッドと見た目が似ている。ただし名前はクラス名と同じにしておく必要があり、戻り値を記述することもできない。また、コンストラクタはインスタンス生成時、つまりnewキーワードが記述されているときに実行される。コンストラクタを用いることでオブジェクトの生成時にフィールド変数の初期化が可能で、後からフィールド変数に値を代入する必要がなくなる。また、フィールド変数がfinalであったとしてもそこに代入ができるため、最初に代入した値から変更させたくないときはコンストラクタを利用するのがよい。コンストラクタの挙動の理解ができるところまで確認する。
|
|
キーワード
|
① コンストラクタ ② インスタンスの初期化
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第74回の授業では、コンストラクタについて確認した。コンストラクタはメソッドと似て非なること、インスタンスの初期化に関連した処理であることを学修した。復習としてコンストラクタを利用したプログラムの作成演習と、すでに記述されているプログラムを読み、どのような処理が行われるのかを理解できるよう演習する。
◆次回授業の予習 第75回の授業「デフォルトコンストラクタ」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
75
|
デフォルトコンストラクタ
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第75回の授業では、『デフォルトコンストラクタとは』をテーマとして扱う。コンストラクタはインスタンス生成時に自動的に実行される。しかし、これまでのプログラムではこのコンストラクタを書かずにフィールド変数とメソッドのみを記述したクラスを作成してきた。その際に、Javaのコンパイラが自動的に補うのがデフォルトコンストラクタである。デフォルトコンストラクタの必要性とその挙動について学修する。
|
|
|
コマ主題細目
|
① デフォルトコンストラクタとは
|
|
細目レベル
|
① インスタンス生成時にnewキーワードを用いる。このときに自動的に実行されるのがコンストラクタである。例えば『class Student{}』を作成し、『new Student();』とした場合、引数なしのコンストラクタが実行されているはずである。このような問題を解消するためにJava言語に備わっているのがデフォルトコンストラクタである。デフォルトコンストラクタは引数なし、処理なしのコンストラクタであり、プログラムの実行の際にJava言語は自動的にデフォルトコンストラクタを挿入するようになっている。つまり、『class Student{ Student(){} }』となるということである。ただし、デフォルトコンストラクタはコンストラクタが記述されていないときに挿入されるものなのでコンストラクタが明示的に記述されているときは挿入されないことに注意が必要である。デフォルトコンストラクタの必要性とその挙動について理解できるところまで確認する。
|
|
キーワード
|
① デフォルトコンストラクタ ② コンストラクタ
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第75回の授業では、デフォルトコンストラクタについて確認した。デフォルトコンストラクタはクラスにコンストラクタが記述されていないとき、インスタンス生成時にエラーにならないように作られた機能であることを学修した。復習としてデフォルトコンストラクタを利用したプログラムの作成演習と、すでに記述されているプログラムを読み、どのような処理が行われるのかを理解できるよう演習する。
◆次回授業の予習 第76回の授業「コンストラクタのオーバーロード」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
76
|
コンストラクタのオーバーロード
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第76回の授業では、『コンストラクタのオーバーロード』をテーマとして扱う。コンストラクタもメソッドと同様にシグネチャを変えることで異なる処理を行うことができるコンストラクタを同一クラスに複数個、作成することができる。つまりコンストラクタのオーバーロードが可能である。コンストラクタをオーバーロードする際の注意点とコンストラクタの応用的な利用方法について学修する。
|
|
|
コマ主題細目
|
① コンストラクタのオーバーロード
|
|
細目レベル
|
① 第75回の授業でも扱った通り、引数ありのコンストラクタを作成する際には、引数なしのコンストラクタを入れておくことで初期化に関するエラーの可能性を減らすことができた。このようにコンストラクタはシグネチャを変更することで複数のコンストラクタを同一クラス内に定義することができる。これはメソッドと同じく、オーバーロードと呼ばれる。コンストラクタのオーバーロードをすることでより詳細なコンストラクタの設定が可能になる。また、コンストラクタをオーバーロードすることでプログラムの柔軟性が高まる。コンストラクタのオーバーロードの方法とプログラムの理解ができるところまで確認する。
|
|
キーワード
|
① コンストラクタ ② デフォルトコンストラクタ ③ オーバーロード
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第76回の授業では、コンストラクタのオーバーロードについて確認した。具体的にはコンストラクタのシグネチャを変え、同一クラスに複数のコンストラクタを定義できることと、その活用方法について学修した。復習としてコンストラクタのオーバーロードを利用したプログラムの作成演習と、すでに記述されているプログラムを読み、どのような処理が行われるのかを理解できるよう演習する。
◆次回授業の予習 第77回の授業「コンストラクタを呼び出すコンストラクタ」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
77
|
コンストラクタを呼び出すコンストラクタ
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第78回の授業では、『コンストラクタとthisキーワード』をテーマとして扱う。複数のコンストラクタをオーバーロードして定義するとき、他のコンストラクタをコンストラクタ内で呼び出したいことがある。その場合は、コンストラクタ内でthis(引数)を記述することによって可能になる。このとき、このthis()はコンストラクタ内の先頭行で記述する必要がある。コンストラクタ内で他のコンストラクタを呼び出す方法を学修する。
|
|
|
コマ主題細目
|
① コンストラクタとthisキーワード
|
|
細目レベル
|
① コンストラクタをオーバーロードする際に、その処理内容が似ており、同じような処理を行うときあがある。つまりコードが重複しているような場合がある。このような重複を削除し、なるべく初期化処理を共通化したいときにコンストラクタ内でコンストラクタを呼び出したい場合がある。例えばStudentクラスに『Student(String name, int score){ this.name = name; this.score = score; }』といったコンストラクタがあるとする。引数がString型のみの場合、scoreを0にしたいとなればコンストラクタをオーバーロードし、『Student(String name){ this.name = name; this.score = 0; }』と記述すればよい。しかし、これでは『this.name = name;』という処理が重複している。このようなプログラムの重複は煩雑になり、可読性の低下を招く。そのため、コンストラクタ内で先述のコンストラクタを呼び出すことでその問題を解決できる。具体的には『Student(String name){ this(name, 0); }』とすることで、本来は引数がString型のみであったのがint型の0を引数として渡すことが可能になる。コンストラクタ内でコンストラクタを呼び出す方法とその挙動が理解できるところまで確認する。
|
|
キーワード
|
① コンストラクタ ② オーバーロード ③ thisキーワード
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第77回の授業では、コンストラクタにおけるthis()について確認した。コンストラクタ内で異なるコンストラクタを呼び出すにはthis()を扱うこと、そしてこの記述はコンストラクタ内の1行目に記述しなければコンパイルエラーになることを学修した。復習としてthis()を利用したプログラムの作成演習と、すでに記述されているプログラムを読み、どのような処理が行われるのかを理解できるよう演習する。
◆次回授業の予習 第78回の授業「Java Bronze問題演習13-コンストラクタ-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
78
|
Java Bronze問題演習13-コンストラクタ-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第78回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第74回から第77回の授業で学んだ「コンストラクタ」であるが、これまでに学んだ文法に関する複合問題も出題されるのでここまでの単元の復習も兼ねている。
|
|
|
コマ主題細目
|
① Java Bronze問題演習13-コンストラクタ-
|
|
細目レベル
|
① コンストラクタに関するJava Bronze SE形式の問題演習を行う。具体的には以下のような問題を解き、その解説を聞くという内容である。
例題 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。
1. public class Test { 2. public static void main(String[] args) { 3. Station s = new Station(); 4. s.setName("Santa Clara") 5. s.printName(); 6. } 7. } 8. 9. class Station{ 10. private String name; 11. public Station(String name) { 12. this.name = name; 13. } 14. public void setName(String name) { 15. this.name = name; 16. } 17. public void printName() { 18. System.out.println(name); 19. } 20. }
A. 何も表示されない B. 「Santa Clara」と表示される C. コンパイルエラーが発生する D. 実行時に例外がスローされる
正しい選択肢を選択できること、その根拠をもって回答できることが重要である。また、わからない問題や間違えた問題は実際にプログラムを作成し、実行することで出力の結果を理解できるように復習する。
|
|
キーワード
|
① コンストラクタ ② デフォルトコンストラクタ ③ オーバーロード ④ this()
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第78回の授業では、コンストラクタをテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第79回の授業「アクセス制御」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
79
|
アクセス制御
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第79回の授業では、『情報隠蔽とカプセル化』、『アクセス修飾子の基本』をテーマとして扱う。さまざまなアプリケーションを作成する際に重要になるのがアクセス制御の考え方である。フィールドやメソッドに対してどこから使えるようにするのか、誰が触れるのかという範囲を決める仕組みである。それによって情報隠蔽が可能になり、アプリケーションをより快適に利用できるようにする。それらをプログラムで可能にするのがアクセス修飾子である。どの範囲からアクセスできるようにするかを決定するために記述する修飾子である。公開範囲の設定に関する基本的な理解をするための知識を確認する。
|
|
|
コマ主題細目
|
① 情報隠蔽とカプセル化 ② アクセス修飾子の基本
|
|
細目レベル
|
① アクセス制御の目的と基本的な考え方について解説する。アクセス制御とは、クラス内のフィールドやメソッドに対して「どこから利用できるか」を定める仕組みであり、外部からの不正な操作や意図しない変更を防ぐ役割をもつ。具体例として、銀行口座の残高フィールドを外部から自由に変更できてしまう危険性を示し、内部データを守る必要性を説明する。さらに、内部と外部を明確に分け、必要な部分だけを公開することの重要性を述べる。関連概念として「情報隠蔽」と「カプセル化」を取り上げ、情報隠蔽は内部の仕組みを外部から見えないようにする考え方、カプセル化はデータと処理を一つのクラスにまとめ、メソッドを通してのみ操作させる設計手法であることを理解する。これらにより、安全で保守性の高いプログラム設計が実現できるところまで確認する。
|
② アクセス制御をJavaで具体的に実現するためのアクセス修飾子について解説する。Javaには public、protected、(デフォルト)、private の4種類があり、public が最も公開範囲が広く、private が最も制限が厳しい。修飾子はクラス、フィールド、メソッドの宣言時に付与し、アクセス可能な範囲を指定する。具体的には、private を付けたフィールドには外部からアクセスできず、public に変更するとアクセス可能になる。また設計方針として、フィールドは原則 private にして外部から守り、メソッドやコンストラクタは public にして利用の入口とすることが基本である。つまり「フィールドは守り、メソッドで操作する」という原則を徹底することで、安全で再利用しやすいクラス設計が可能になることが理解できるところまで確認する。
|
|
キーワード
|
① 情報隠蔽 ② カプセル化 ③ アクセス修飾子
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第79回の授業では、アクセス制御について確認した。Java言語を用いたプログラムの作成時に考えるべき情報隠蔽やカプセル化についてより詳しく理解した。また、それを実現するためのアクセス修飾子の挙動について基本的な点を学修した。復習としてアクセス修飾子を用いたプログラムの作成と、それを用いて記述されているプログラムの挙動が理解できるように演習を行う。
◆次回授業の予習 第80回の授業「ゲッタとセッタ」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
80
|
ゲッタとセッタ
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第80回の授業では、『フィールドの保護と操作』、『読み取り専用と書き込み専用の設計』をテーマとして扱う。フィールドを保護するにはprivateに設定することが必要である。しかし、それには外部からアクセスができなくなってしまうため、同一クラス内のメソッドやコンストラクタを用いてプログラムを作成する必要がある。また、これをさらに発展的に利用し、読み取り専用、書き込み専用のクラスの設計にし、よりフィールド変数の保護に役立てるのがよい。プログラムを作成する上でのより発展的な方向性の理解について学修する。
|
|
|
コマ主題細目
|
① フィールドの保護と操作 ② 読み取り専用と書き込み専用の設計
|
|
細目レベル
|
① private フィールドを安全に操作するための仕組みとして、ゲッター(getter)とセッター(setter)を説明する。フィールドを private にすると外部から直接読み書きできなくなるが、その代わりに値を取得する get~ メソッドと、値を設定する set~ メソッドを用意することで、必要な操作だけを許可できる。これにより、外部からの無制限なアクセスを防ぎつつ、柔軟な利用が可能となる。さらに、セッター内に条件分岐を設けることで、不正な値(例:負の価格)の代入を防ぐなど、入力値の検証も実現できる。フィールドを public にせず、メソッドを通して管理することで、クラス内部の整合性を保ち、安全で信頼性の高い設計につながることが理解できるところまで確認する。
|
② ゲッターとセッターを応用した「読み取り専用」「書き込み専用」のクラス設計と、それを支えるカプセル化の考え方を扱う。読み取り専用は、コンストラクターで値を一度だけ設定し、ゲッターのみを公開してセッターを作らないことで実現する。一方、書き込み専用はセッターのみを公開し、ゲッターを用意しないことで外部からの参照を防ぐ。これにより、社員IDのように変更すべきでない情報や、パスワードのように外部に見せてはならない情報を安全に扱える。private による保護、コンストラクターによる初期化、ゲッター/セッターによる公開範囲の制御を組み合わせることで、内部実装を隠しつつ外部への影響を抑えられる点が、カプセル化の本質であることが理解できるところまで確認する。
|
|
キーワード
|
① ゲッタ ② セッタ ③ カプセル化 ④ アクセス修飾子
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第80回の授業では、ゲッタとセッタについて確認した。フィールド変数の保護のためにフィールド変数をprivateにした場合のアクセスの方法について学修した。復習としてクラスの設計におけるフィールド変数のアクセス修飾子の選択とprivateとしたときに設定するべきメソッドやコンストラクタについて考え、作成演習を行う。
◆次回授業の予習 第81回の授業「クラスフィールド」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
81
|
クラスフィールド
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第81回の授業では、『staticキーワードとフィールド変数』をテーマとして扱う。フィールド変数はクラスに設計が可能であった。この変数についてはインスタンスを生成するとインスタンスごとにあたいを代入することが可能であったが、staticキーワードを付けることで、インスタンスの外に変数が作成され、すべてのインスタンスで共通した値を1つのみ持つことになる。そのため、初期化した後に異なるインスタンスから上書きをした場合などは値が更新されることに注意が必要である。staticなフィールド変数の挙動について学修する。
|
|
|
コマ主題細目
|
① staticキーワードとフィールド変数
|
|
細目レベル
|
① フィールド変数はクラス内に直接記述される変数であるが、フィールド変数はインスタンスが生成されるたびに異なる値を保存できるようになっていた。そのため、どのインスタンスのフィールド変数にアクセスするかによって異なる値が得られた。それに対してstaticキーワードをフィールド変数につけた場合、クラスのロードの時点でインスタンスとは異なるところに保存領域が設定され、インスタンスを複数設定しても、1つの共通した値を保持するような仕組みになっている。このようなフィールド変数をクラス変数と呼ぶ。このクラス変数を利用することでインスタンス間で同じ値を保持したい場合に活用できる。static変数を扱った場合のプログラムの挙動とその活用について理解できるところまで確認する。
|
|
キーワード
|
① staticキーワード ② クラス変数
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第81回の授業では、クラスフィールドについて確認した。Staticキーワードをフィールド変数に付けた場合の挙動、特に1つの値をインスタンス間で共有することができることについて学修した。また、クラスフィールドのアクセス方法についても確認した。復習としてクラス変数を用いたプログラムの作成演習と、クラス変数を利用したプログラムの挙動が理解できるように問題演習を行う。
◆次回授業の予習 第82回の授業「クラスメソッド」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
82
|
クラスメソッド
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第82回の授業では、『staticキーワードとメソッド』をテーマとして扱う。メソッドはクラスに設計が可能であった。メソッドの呼び出しはインスタンスを経由して行うのが一般的であったが、基本的にインスタンスを生成してもメソッド自体は変わらないため、クラスに1つのメソッドを作成しておいても問題がないものがある。そのようなメソッドをstaticキーワードを用いて作成し、利用するのが非常に便利である。クラスメソッドの基本的な仕組みとその挙動について学修する。
|
|
|
コマ主題細目
|
① staticキーワードとメソッド
|
|
細目レベル
|
① クラスにはメソッドを記述することができた。また、クラス内にメソッドからインスタンス内の変数にアクセスすることなどができた。しかし、クラスには特定のインスタンスに依存しないようなメソッドもある。その場合、インスタンスを経由せずにメソッドを呼び出す方が処理が迅速に行われる。このようなときにstaticをメソッドに付与することで、クラスに保存されたメソッドをそのまま利用することができる。このようなメソッドをクラスメソッドと呼ぶ。クラスメソッドはインスタンスの生成を前提としていないので、プログラムの実行の際のメインメソッドはクラスメソッドになっている。ただし、このクラスメソッドはインスタンスの生成を前提としていないため、thisキーワードなどが利用できないことを理解する必要がある。staticメソッドの記述方法とその利用について理解できるところまで確認する。
|
|
キーワード
|
① staticキーワード ② メソッド
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第82回の授業では、クラスメソッドについて確認した。Staticキーワードをメソッドに付けた場合の挙動、特にインスタンス経由ではなくクラスに直接アクセスすることで実行できることについて学修した。復習としてクラスメソッドを用いたプログラムの作成演習と、クラスメソッドを利用したプログラムの挙動が理解できるように問題演習を行う。
◆次回授業の予習 第83回の授業「Java Bronze問題演習14-アクセス修飾子とstatic-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
83
|
Java Bronze問題演習14-アクセス修飾子とstatic-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第83回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第79回から第82回の授業で学んだ「アクセス修飾子」「staticキーワード」であるが、これまでに学んだ文法に関する複合問題も出題されるのでここまでの単元の復習も兼ねている。
|
|
|
コマ主題細目
|
① Java Bronze問題演習14-アクセス修飾子とstatic-
|
|
細目レベル
|
① アクセス修飾子、staticキーワードに関するJava Bronze SE形式の問題演習を行う。具体的には以下のような問題を解き、その解説を聞くという内容である。
例題 次のプログラムをコンパイル、実行したときの結果として、正しいものを選びなさい。
1. public class Test { 2. static int num; 3. void methodA() { num++; } 4. static void methodB() { num++; } 5. public static void main(String[] args) { 6. methodA; methodB; 7. System.out.println(num); 8. } 9. }
A. コンパイルエラー B. 実行時エラー C. 2 D. 1 E. 0
正しい選択肢を選択できること、その根拠をもって回答できることが重要である。また、わからない問題や間違えた問題は実際にプログラムを作成し、実行することで出力の結果を理解できるように復習する。
|
|
キーワード
|
① アクセス修飾子 ② クラス変数 ③ クラスフィールド
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第83回の授業では、さまざまなキーワードをテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第84回の授業「データの保存形式」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
84
|
データの保存形式
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第84回の授業では、『参照型とデータ管理』、『「==」とequals()メソッド』をテーマとして扱う。これまでは8つのプリミティブ型と参照型であるString型と配列を学修してきた。このプリミティブ型と参照型はそれぞれデータの保存方法が大きく異なる。この点について学修する。また、等価の比較についてこれまでプリミティブ型は==で比較、String型はequals()メソッドとしていたが、String型でも==は利用可能である。その点についても同様に確認する。
|
|
|
コマ主題細目
|
① 参照型とデータ管理 ② 「==」とequals()メソッド
|
|
細目レベル
|
① プJava言語のデータ型には大きくプリミティブ型と参照型が存在する。これらは保存方法の違いによって区別が可能である。Java言語には保存領域としてスタック領域とヒープ領域が存在する。スタック領域には値を1つ直接保存しておくことが可能であり、プリミティブ型のデータが保存可能になっている。一方、複数の文字を格納するString型や複数の値を格納する配列型のデータは、スタック領域にはそのデータを保存できないことわかる。そのため、これら参照型はプリミティブ型とは異なるデータの保存方法が実施されている。例えばヒープ領域に保存したいデータをまとめて保存する。その際にそこへのリンクとなるアドレスがスタック領域には保存されることになる。さらに詳しく説明するとヒープ領域には文字列プールという領域が存在する。String型の変数にリテラルとして文字列を記述し、代入した場合、その文字列プールに存在する文字列は再利用される。このような保存方法の違いに理解ができるところまで確認する。
|
② ここまでの比較演算子に等価であるかいなかを確認する方法として「==」と「.equals()メソッド」を紹介してきた。これらの使い分けはプリミティブ型であれば「==」、String型であれば「.equals()メソッド」としてきたが、実は参照型であっても「==」を使用することができる。その場合、「==」は参照先の同一性を比較するための演算子として扱われる。つまり、与えられている2つが同一の参照先を持っているかどうかを確認することができる。String型は文字列プールに記述されているものは使いまわされるので「String s1 = "Java"; String s2 = "Java"; s1 == s2;」となればその結果はtrueとなる。これに対して新しいインスタンスを生成した場合、つまり「String s3 = new String("Java"); s1 == s3;」とした場合、参照先が異なるため、falseとなる。それに対して.equals()メソッドは保存されている文字列の等価性を確認するためのメソッドであり、「s1.equals(s3);」というプログラムを実行した場合は、保存されている文字列自体が等しいため、trueが返ってくる。「==」による比較と.equals()メソッドによる比較の違いとその扱いが理解できるところまで確認する。
|
|
キーワード
|
① プリミティブ型 ② 参照型 ③ ガベージコレクション ④ equals()メソッド
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第84回の授業では、プリミティブ型と参照型の違いについて保存方法の観点から学修を行った。加えて、それらを比較するための記述である「==」と「.equals()メソッド」の違いについても確認した。特に「==」では参照先の比較であること、つまり同一性に関する比較であり、「.equals()メソッド」は保存されている値の比較であること、つまり等価性に関する比較であることを確認した。復習として、これらを使ったプログラムを読み、結果がtrueとfalseのどちらが返ってくるかが理解できるように復習する。
◆次回授業の予習 第85回の授業「ラッパークラスの基本」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
85
|
ラッパークラスの基本
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第85回の授業では、『ラッパークラスとは』、『autoboxing/unboxing』をテーマとして扱う。8つのプリミティブ型はスタック領域に保存されていたが、プリミティブ型の値を参照型として扱いたいことがある。その要望に応えるべくしてラッパークラスが存在する。つまり、プリミティブ型の値を参照型として扱うことができるようになる。その際にはautoboxing/unboxingの2つが重要であり、それらの挙動と変数の扱い方について学修する必要がある。それらについて詳細に確認する。
|
|
|
コマ主題細目
|
① ラッパークラスとは ② autoboxing/unboxing ③ 引数への設定
|
|
細目レベル
|
① プリミティブ型はbyte、short、int、long、float、double、boolean、charの8種類が存在し、それぞれデータをスタック領域に直接保存し、保持するためのデータ型である。これらは参照型として扱いたい場面が今後出てくる。このような場合に便利なのがラッパークラスである。このクラスではプリミティブ型の値を参照型のように扱うためのメソッドなどが豊富に用意されている。具体的にはそれぞれのプリミティブ型に対応するようにByte、Short、Integer、Long、Float、Double、Boolean、Characterというクラスが用意されている。これらのクラスでプリミティブ型を扱うにはboxingをする必要があることを理解し、ラッパークラスを扱い方を理解するところまで確認する。
|
② ラッパークラスではboxingをするにはvalueOf()メソッドを利用する。例えばInteger型の変数に15というプリミティブ型(int型)の値を代入するには「Integer intNum = Integer.valueOf(15);」と記述すればよい。しかし、毎回プリミティブ型をラッパークラスで扱うためにvalueOfメソッドを記述するのは大変である。その手間を省けるようにラッパークラスにはautoboxing機能が備わっている。例えば「Integer intNum2 = 16;」とすればvalueOf()メソッドを使用しなくともプリミティブ型をラッパークラスに変換することができる。また、ラッパークラス同士の変数に対して算術演算子を利用することはできないが、その手間を省けるようにunboxingというラッパークラスをプリミティブ型に暗黙的に変換するための機能も用意されている。ラッパークラスをプログラム中で意図的に扱えるようにするためのさまざまな機能について理解するところまで確認する。
|
③ このラッパークラスもプリミティブ型や可変長引数などと同様にメソッドの引数として設定ができる。このとき、同一クラスにint型とInteger型を引数とした同名のメソッドがあった場合、その2つのメソッドは共存可能である。つまり、オーバーロードが可能である。このとき、int型の可変長引数を持つメソッドも作成可能である。なお、ラッパークラスの引数を持つメソッドの優先度は可変長引数を引数とするメソッドの優先度よりも高い。つまり、double型の引数、Integer型の引数、int型の可変長引数でオーバーロードされている状態でint型の引数を渡した場合、優先度は高い方から暗黙的型変換、autoboxing、可変長引数という扱いになることを理解する。
|
|
キーワード
|
① ラッパークラス ② Autoboxing ③ Unboxing
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第85回の授業では、ラッパークラスについて学修を行った。ラッパークラスがプリミティブ型を参照型として扱うためのクラスであること、利用できるメソッドが数多く用意されていることなどを確認した。復習として、ラッパークラスを利用したプログラムの作成と、ラッパークラスが使われているプログラムを読み、その実行結果について理解できるように問題演習する。
◆次回授業の予習 第86回の授業「Java Bronze問題演習15-プリミティブ型と参照型-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
86
|
Java Bronze問題演習15-プリミティブ型と参照型-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第86回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第84回、第85回の授業で学んだ「プリミティブ型と参照型」であるが、これまでに学んだ文法に関する複合問題も出題されるのでここまでの単元の復習も兼ねている。
|
|
|
コマ主題細目
|
① Java Bronze問題演習15-プリミティブ型と参照型-
|
|
細目レベル
|
① プリミティブ型と参照型に関するJava Bronze SE形式の問題演習を行う。具体的には以下のような問題を解き、その解説を聞くという内容である。
例題 次のプログラムを実行し、7行目が終了したときにガベージコレクションの対象となるインスタンスはどれか。正しい説明を選びなさい。
1. public class Main { 2. public static void main(String[] args) { 3. Test a = new Test(); 4. Test b = new Test(); 5. Test c = a; 6. a = null; 7. b = null; 8. // more code 9. } 10. }
A. 3行目で生成したインスタンスだけが、ガベージコレクションの対象となる B. 4行目で生成したインスタンスだけが、ガベージコレクションの対象となる C. 3行目と4行目で生成したインスタンスが、ガベージコレクションの対象となる D. ガベージコレクションの対象となるインスタンスは存在しない
正しい選択肢を選択できること、その根拠をもって回答できることが重要である。また、わからない問題や間違えた問題は実際にプログラムを作成し、実行することで出力の結果を理解できるように復習する。
|
|
キーワード
|
① 参照型 ② プリミティブ型 ③ equals()メソッド ④ ガベージコレクション ⑤ ラッパークラス
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第86回の授業では、プリミティブ型と参照型をテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第87回の授業「Java Bronze問題演習16-総合問題演習①-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
87
|
Java Bronze問題演習16-総合問題演習①-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第87回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第1回から第34回までの授業で学んだ「Java言語のプログラムの流れ」、「データの宣言と使用」、「演算子と条件文」である。また、問題によってはJava SE Silverのレベルの問題も含まれる。
|
|
|
コマ主題細目
|
① Java Bronze問題演習16-総合問題演習①-
|
|
細目レベル
|
① 本科目で学修した内容のうち、Java言語に関する基本的な知識に加えて、データの宣言と使用、そして演算子の利用と条件分岐についての問題演習を行う。これらの問題はすべて本科目のコマ主題における「Java Bronze問題演習」から始まる授業回に実施した問題形式と同じであり、選択問題となっている。Java Bronze SEの試験レベルと同様、または少しレベルの高いの問題を演習し、Java言語の理解と資格試験に向けてより多くの問題に触れることを目的とする。
|
|
キーワード
|
① プログラムの基本 ② データの宣言と初期化 ③ 演算子 ④ 条件分岐
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第87回の授業では、基本的なJavaのプログラミングの流れ、変数の宣言と使用、演算子と分岐文をテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第88回の授業「Java Bronze問題演習17-総合問題演習②-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
88
|
Java Bronze問題演習17-総合問題演習②-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第88回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第36回から第60回までの授業で学んだ「繰り返しと繰り返し制御文」、「実行時引数」である。また、問題によってはJava SE Silverのレベルの問題も含まれる。
|
|
|
コマ主題細目
|
① Java Bronze問題演習17-総合問題演習②-
|
|
細目レベル
|
① 本科目で学修した内容のうち、繰り返し文(while文、for文、拡張forループ)と実行時引数についての問題演習を行う。これらの問題はすべて本科目のコマ主題における「Java Bronze問題演習」から始まる授業回に実施した問題形式と同じであり、選択問題となっている。Java Bronze SEの試験レベルと同様、または少しレベルの高いの問題を演習し、Java言語の理解と資格試験に向けてより多くの問題に触れることを目的とする。
|
|
キーワード
|
① while文 ② for文 ③ 実行時引数
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第88回の授業では、繰り返し文と繰り返し制御文、実行時引数をテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第89回の授業「Java Bronze問題演習18-総合問題演習③-」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
89
|
Java Bronze問題演習18-総合問題演習③-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第89回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、主たる内容は第64回から第86回までの授業で学んだ「オブジェクト指向コンセプト」、「クラス定義」、「オブジェクトの生成・使用」である。また、問題によってはJava SE Silverのレベルの問題も含まれる。
|
|
|
コマ主題細目
|
① Java Bronze問題演習18-総合問題演習③-
|
|
細目レベル
|
① 本科目で学修した内容のうち、オブジェクト指向のコンセプトの確認、クラスの定義の方法、オブジェクトの生成と使用についての問題演習を行う。これらの問題はすべて本科目のコマ主題における「Java Bronze問題演習」から始まる授業回に実施した問題形式と同じであり、選択問題となっている。Java Bronze SEの試験レベルと同様、または少しレベルの高いの問題を演習し、Java言語の理解と資格試験に向けてより多くの問題に触れることを目的とする。
|
|
キーワード
|
① クラス ② メンバ ③ コンストラクタ ④ さまざまなキーワード
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第89回の授業では、オブジェクト指向コンセプト、クラスの定義、オブジェクトの生成と使用をテーマとしたJava Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
◆次回授業の予習 第90回の授業「Java Bronze問題演習19」のコマシラバスに目を通し、その基本的な理解を深めておくこと。なお、その際に、読んでも理解しきれなかった部分について下線を引いて把握し、その予習を踏まえた上で授業に臨むこと。
|
|
90
|
Java Bronze問題演習18-総合問題演習④-
|
科目の中での位置付け
|
Java言語の基本的な知識を修得し、それらを踏まえ、目的に応じた適切なプログラミングを行えるようになること、特に基本的な変数の扱い方、制御構文の理解とプログラミング、より複雑な制御構文を組み合わせたプログラミングを行うこと、そしてそれらを包括的に利用し、簡単なアプリケーションを作成するようになることを目標とする。 第90回の授業では、Java Bronze SE問題演習を行う。Java Bronze SEは4択以上からなる選択問題である。その問題形式に慣れることを目的として演習する。また、問題内容の把握を行う。なお、出題範囲を問うことはなく、これまでに学修したJavaに関する知識問題、基本的な文法などから幅広く出題するこれまでに学修した単元のより具体的な内容の確認となるので、間違えることのないよう丁寧に問題を解くことが重要である。
|
|
|
コマ主題細目
|
① Java Bronze問題演習18-総合問題演習④-
|
|
細目レベル
|
① 本科目で学修した内容のうち、Java言語に関する基本的な知識に加えて、基本的な文法すべての範囲の問題演習を行う。これらの問題はすべて本科目のコマ主題における「Java Bronze問題演習」から始まる授業回に実施した問題形式と同じであり、選択問題となっている。Java Bronze SEの試験レベルと同様、または少しレベルの高いの問題を演習し、Java言語の理解と資格試験に向けてより多くの問題に触れることを目的とする。加えて時間配分を意識し、問題を解く、そして見直す時間をとることに注意して演習する。
|
|
キーワード
|
① Java Bronze SE
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施する。
|
|
復習・予習課題
|
◆今回授業の復習 第90回の授業では、ここまでに学修したすべての範囲をテーマとして、Java Bronze SE形式の問題演習を行った。間違えた問題や根拠があやふやであった問題について重点的に確認する。その際には問題を読んで考えるだけでなく、問題文に含まれるプログラムを実際に作成し、実行してその挙動などを確認する。
|