ソフトウェア演習

科目基礎情報

学校 徳山工業高等専門学校 開講年度 令和04年度 (2022年度)
授業科目 ソフトウェア演習
科目番号 0062 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 情報電子工学科 対象学年 3
開設期 通年 週時間数 2
教科書/教材 Javaで入門 初めてのプログラミング 基礎からオブジェクト指向まで;「JavaFX & Java 8プログラミング Javaによる新しいGUIプログラミング入門」; 新・明解 Javaで学ぶアルゴリズムとデータ構造
担当教員 荻原 宏是

到達目標

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

ルーブリック

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

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

教育方法等

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

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

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

授業計画

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

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

分類分野学習内容学習内容の到達目標到達レベル授業週

評価割合

演習(例題)演習(課題)合計
総合評価割合6040100
専門的能力6040100