Software Practice

Course Information

College Tokuyama College Year 2022
Course Title Software Practice
Course Code 0062 Course Category Specialized / Compulsory
Class Format Lecture Credits School Credit: 2
Department Department of Computer Science and Electronic Engineering Student Grade 3rd
Term Year-round Classes per Week 2
Textbook and/or Teaching Materials Javaで入門 初めてのプログラミング 基礎からオブジェクト指向まで;「JavaFX & Java 8プログラミング Javaによる新しいGUIプログラミング入門」; 新・明解 Javaで学ぶアルゴリズムとデータ構造
Instructor Ogihara Hiroyuki

Course Objectives

1. 日本人学生が1,2年次に学習するJava 言語の基礎的内容を理解し,説明することができる.
2. 日本人学生が3年次に学習するアルゴリズムとデータ構造の発展的内容を理解し,説明することができる.

Rubric

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
Java言語の基礎的内容を理解できる.Java 言語の基礎的内容を理解し, 自分の力ででプログラムを作成できる.Java 言語の基礎的内容を理解し, 教科書を見ながらプログラムを作成できる.Java 言語の基礎的内容を理解できない.
Java言語の発展的内容を理解できる.Java 言語の発展的内容を理解し, 自分の力ででプログラムを作成できる.Java 言語の発展的内容を理解し, 教科書を見ながらプログラムを作成できる.Java 言語の発展的内容を理解できない.

Assigned Department Objectives

Teaching Method

Outline:
 3年次に編入する留学生に対して,日本人学生が学習する以下の内容の補習を行う.
 ・1年次:「基礎プログラミングⅠ」,「基礎プログラミングⅡ」,「基礎プログラミング演習」
 ・2年次:「プログラミング」,「プログラミング言語」
 ・3年次:「アルゴリズムとデータ構造」
 なお,プログラミング言語にはJava言語を用いる.
Style:
 概ね以下の手順で学習を行う.
 1. 教員が1,2,3年次の授業で用いる教材を提示する.
 2. 教材を用いて学習する.
 3. 演習(例題)を解く.
 4. 演習(課題)を提出する.
Notice:
 最終評価=演習(例題)60%+演習(課題)40%

Characteristics of Class / Division in Learning

Active Learning
Aided by ICT
Applicable to Remote Class
Instructor Professionally Experienced

Course Plan

Theme Goals
1st Semester
1st Quarter
1st ガイダンス【環境構築】 ・本授業の進め方や成績評価等について理解できる.
・Visual Studio Codeによるプログラミング開発環境を構築できる.
2nd printとprintlnの使い方【画面に文字を表示する】 ・printメソッドやprintlnメソッドを用いて文字を画面に出力できる.
・数値計算や文字列連結の結果を出力できる.
3rd データ型と変数【変数の宣言】 ・データ型と変数について理解し,変数の宣言を正しく行うことができる.
・変数の初期化や代入ができる.
4th Scannerの使い方【データの読み込み】 ・Scannerを用いてキーボードから値を読み込み,変数に代入することができる.
5th if文とswitch文【条件分岐】 ・if文の表記方法,else文との組合せ方を理解できる.
・switch文の表記方法を理解できる.
6th for文【決まった回数の繰り返し】 ・for文の表記方法を理解できる.
・if文と組み合わせた表記方法を理解できる.
・複数のfor文を交えた表記方法を理解できる.
7th 定数と乱数【便利な書き方】 ・定数と乱数の表記方法を理解できる.
8th while文【決まっていない回数の繰り返し】 ・while文,do-while文の表記方法を理解できる.
・break,continueの使い方を理解できる.
2nd Quarter
9th 配列【たくさんのデータを扱う方法】 ・配列の宣言,値の代入方法について理解できる.
・for文と組み合わせた表記方法を理解できる.
10th 多次元配列【さらにたくさんのデータを扱う方法】 ・2次元配列の宣言について理解できる.
・for文と組み合わせた表記方法を理解できる.
11th 文字列操作【文章を扱う】 ・文字列の比較や文字列の長さの取得方法を理解できる.
・文字列の置換や削除,大文字・小文字の変換方法を理解できる.
12th メソッド【プログラムを部品化する】 ・メソッドの宣言,引数と戻り値の関係について理解できる.
・値を返さない voidメソッドについて理解できる.
13th クラス【設計図】 ・クラスの概念について理解できる.
・複数のクラスをもつプログラムの表記方法について理解できる.
14th インスタンス【クラスの実体化】 ・クラスとインスタンスの関係について理解できる.
・インスタンス変数,インスタンスメソッドについて理解できる.
15th コンストラクタ【インスタンス生成時に実行されるメソッド】 ・コンストラクタについて理解できる.
・セッター,ゲッターについて理解できる.
16th クラスの継承【スーパークラスとサブクラス】 ・クラスの継承について理解できる.
・スーパークラスとサブクラスの表記方法について理解できる.
2nd Semester
3rd Quarter
1st JavaFX【環境構築】 ・JavaFXによるGUIプログラミング開発環境を構築できる.
・Applicationクラスとstartメソッドについて理解できる.
2nd JavaFXのウィンドウの構造【ステージ,シーン,コントロール】 ・Stageクラスのメソッドについて理解できる.
・Sceneクラスのメソッドについて理解できる.
3rd イベント処理【ボタン処理】 ・Buttonクラスのメソッドについて理解できる.
・ラムダ式の表記方法について理解できる.
4th レイアウト(基本)【レイアウトペイン】 ・基本となるレイアウトペインについて理解できる.
・VBOX,HBOXクラスについて理解できる.
5th レイアウト(応用)【レイアウトペイン】 ・様々なレイアウトペインの違いについて理解できる.
・AnchorPane,BorderPane,GridPaneを組み合わせてプログラムを作成できる.
6th GUI部品【文字列の入力と項目の選択】 ・文字列を入力するTextFieldクラスについて理解できる.
・プルダウンメニューを選択するComboBoxクラスについて理解できる.
7th 図形描画【図系の表示,マウスイベント】 ・図形描画のためのShapeクラスについて理解できる.
・マウスイベント処理のためのMouseEventクラスについて理解できる.
8th 画像の表示【画像の取り扱い】 ・画像表示のためのImageViewクラスについて理解できる.
・画像のPath,サイズ等を取り扱うImageクラスについて理解できる.
4th Quarter
9th 線形探索【探索アルゴリズム】 ・探索アルゴリズムで最も単純な線形探索について理解できる.
・線形探索と番兵法における配列の走査の終了条件の違いについて理解できる.
10th 二分探索【探索アルゴリズム】 ・二分探索のアルゴリズムについて理解できる.
・線形探索と二分探索の計算量の違いについて理解できる.
11th ハッシュ法【探索アルゴリズム】 ・探索に加えて挿入と削除も行うことが出来るハッシュ法について理解できる.
・バケットの重複の対処方法であるチェイン法,オープンアドレス法について理解できる.
12th アルゴリズムの時間計算量【オーダ表記】 ・オーダと代表的な計算量について理解できる.
・線形探索,二分探索とハッシュ法の計算量の違いについて理解できる.
13th 様々なソート(1)【探索アルゴリズム】 ・単純なソート法であるバブルソートについて理解できる.
・代表的な高速アルゴリズムの一つであるクイックソートについて理解できる.
14th 様々なソート(2)【探索アルゴリズム】 ・データ間の階層構造,親子関係,包含関係を表現する木構造について理解できる.
・ヒープソートのアルゴリズム,またその他のソートとの計算量の違いを理解できる.
15th 線形リスト【リスト構造】 ・線形リストと配列のアクセス・追加・削除における時間計算量の違いを理解できる.
・線形リストに関するいくつかの多肢選択問題に正しく回答することができる.
16th 総括 ・全授業の振り返りを通して、自身の理解度を確認できる.

Evaluation Method and Weight (%)

演習(例題)演習(課題)Total
Subtotal6040100
専門的能力6040100