実践プログラミング

科目基礎情報

学校 東京工業高等専門学校 開講年度 令和03年度 (2021年度)
授業科目 実践プログラミング
科目番号 0131 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 学修単位: 2
開設学科 情報工学科 対象学年 4
開設期 前期 週時間数 2
教科書/教材 Web教材
担当教員 北越 大輔

到達目標

数値計算の代表的なアルゴリズムについて理解し,それらをプログラムとして実装できる.
Java言語の習得を通してオブジェクト指向によるプログラム手法の基本を理解し実装できる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安最低限の到達レベルの目安(可)未到達レベルの目安
数値計算の代表的なアルゴリズムについて理解し,それらをプログラムとして実装できる数値計算の代表的なアルゴリズムを理解し、自ら工夫してそれらをプログラムとして実装できる数値計算の代表的なアルゴリズムを理解し、具体的に手順を示すとプログラムを作成できる数値計算の代表的なアルゴリズムを理解し、当該アルゴリズムに関するプログラムを自力で作成できる数値計算の代表的なアルゴリズムを理解せず、または当該アルゴリズムに関するプログラムを自力で作成できない
Java言語の習得を通してオブジェクト指向によるプログラム手法の基本を理解し実装できるオブジェクト指向プログラミングの基本を理解し、実際にオブジェクト指向に基づいたプログラムを作成できるオブジェクト指向プログラミングの基本を理解しているオブジェクト指向プログラミングの基本を理解しているオブジェクト指向プログラミングの基本を理解していない

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

教育方法等

概要:
数値計算の代表的なアルゴリズムについて学習する.
今までに学んだプログラミング技術をもとにして,多くの課題をこなすことで,より実践的な問題解決能力,プログラミング能力を身に付ける.
Java言語を通してオブジェクト指向によるプログラミング手法の基本を学ぶ.
授業の進め方・方法:
原則として,毎回の授業で課題の説明を行い,残りの時間はプログラムを作成する演習時間とする.ただし,数値計算アルゴリズムやアルゴリズムの習得に関わる周辺知識に関する理解度の確認や実行結果の正しさを確認するため,一部の課題ではプログラムの実装に加えてレポートの提出を求める.
当該科目は学修単位科目であり,特に毎回のプログラム課題の条件を満たすべく十分な事後学習を実施することが,課題提出のためには必須である.
注意点:
原則として授業の後半でJavaによるプログラミング演習を行う.課題が授業時間内に終わらないことも予想されるので,自宅にプログラム開発環境を構築することが望ましい.

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス
Java入門(1)
オブジェクト指向プログラミングとは
オブジェクト指向プログラミングの基本を理解し、簡単なJavaプログラムを作成できる
2週 Java入門(2)
メソッドのオーバーロード
ファイル入出力
メソッドのオーバーロードの概念を理解し、ファイル入出力機能を活用したプログラムを作成できる
3週 行列演算(1) 行列の基本演算を実現するプログラムを作成できる
4週 行列演算(2) 行列の転置処理、ベクトルの回転処理について理解し、これらを実現するプログラムを作成できる
5週 行列演算(3)
連立方程式の解法(1)
掃出し法のアルゴリズムを理解し、当該アルゴリズムを実装できる
6週 連立方程式の解法(2) ガウスの消去法のアルゴリズムを理解し、当該アルゴリズムを実装できる
7週 前半の内容の復習 前半の授業内容について復習し,未提出・不完全な課題の提出,および追加課題の提出を実施する
8週 中間試験
2ndQ
9週 連立方程式の解法(3) ガウスの消去法におけるピボット選択処理を理解し、当該処理を実装できる
10週 非線形方程式の解法(1) 非線形方程式の反復解法の概要を理解し、その一つである線形反復法のアルゴリズムを理解した上で、当該アルゴリズムを実装できる
11週 非線形方程式の解法(2) 二分法のアルゴリズムを理解し、当該アルゴリズムを実装できる
12週 非線形方程式の解法(3) はさみうち法のアルゴリズムを理解し、当該アルゴリズムを実装できる
13週 非線形方程式の解法(4) ニュートン法のアルゴリズムを理解し、当該アルゴリズムを実装できる
14週 組合せ最適化問題の解法 組合せ最適化問題の一つであるTSPを対象に、当該問題の準最適解を求めるプログラムを実装できる
15週 課題の総まとめ 後期これまで実施した課題のうち、未完成のものを完成させる
16週 期末試験

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

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎情報リテラシー情報リテラシー任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。3前1
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。4前1,前2
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4前1,前2
変数の概念を説明できる。4前1,前2
データ型の概念を説明できる。4前1,前2
制御構造の概念を理解し、条件分岐を記述できる。4前1,前2
制御構造の概念を理解し、反復処理を記述できる。4前1,前2
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4前1,前3,前4,前5,前6,前8,前9,前10,前11,前12,前13
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。4前1,前3,前4,前5,前6,前8,前9,前10,前11,前12,前13
情報数学・情報理論コンピュータ上での数値の表現方法が誤差に関係することを説明できる。4前3,前4,前9,前10,前11,前12
コンピュータ上で数値計算を行う際に発生する誤差の影響を説明できる。4前3,前4,前9,前10,前11,前12
コンピュータ向けの主要な数値計算アルゴリズムの概要や特徴を説明できる。4前5,前6,前8,前9,前10,前11,前12
分野別の工学実験・実習能力情報系分野【実験・実習能力】情報系【実験・実習】標準的な開発ツールを用いてプログラミングするための開発環境構築ができる。4前1,前2
要求仕様にあったソフトウェア(アプリケーション)を構築するために必要なツールや開発環境を構築することができる。4前1,前2

評価割合

試験課題相互評価態度ポートフォリオその他合計
総合評価割合40600000100
基礎的能力3050000080
専門的能力1010000020
分野横断的能力0000000