プログラミングII

科目基礎情報

学校 沖縄工業高等専門学校 開講年度 2019
授業科目 プログラミングII
科目番号 3108 科目区分 専門 / 選択
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 機械システム工学科 対象学年 3
開設期 通年 週時間数 2
教科書/教材 「実践力を身につける Pythonの教科書」(マイナビ出版)、USBメモリ、教員作成の配布資料を教材として使用する。
担当教員 鳥羽 弘康

到達目標

プログラミング言語Pythonの文法の修得と、数値シミュレーションや、数値計算を行うプログラミングの基礎知識の習得と、主要な数値計算法のプログラムの作成を科目目標とし、次の項目を達成目標とする。
【V-A-7】情報処理:Pythonの文法を理解し、整数型、実数型、文字型などのデータ型を説明でき、データを入力し、算術演算や比較演算を行い条件判断し、結果を出力したり、繰り返し処理と一次元配列、多次元配列を使うプログラムを作成できる。
【Ⅳ-C-3】アルゴリズム:数値計算の方法を理解し、問題の数値解を求めるプログラムを作製できる。マルチプログラミングパラダイムの意味を理解し、命令型プログラミング、手続き型プログラミング、関数型プログラミング、オブジェクト指向プログラミングの違いを説明できる。【Ⅰ】数学:数値解に含まれる誤差を説明できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安必要最低限な到達レベルの目安
評価項目1 Pythonの文法を理解し、数値や文字列等の基本データ型のクラスとコンテナクラスのデータ型を説明でき、データを入力し、各種演算を行って結果を画面やファイルに出力したり、条件判断や繰り返し処理を行うプログラムを作成できる。定期試験の代替の左記項目に関する演習レポートの設問に対して90%の得点をあげることができる。定期試験の代替の左記項目に関する演習レポートの設問に対して70%の得点をあげることができる。定期試験の代替の左記項目に関する演習レポートの設問に対して60%の得点をあげることができる。
評価項目2 数値計算の基礎と計算方法を理解し、問題の数値解を求めるプログラムを作製できる。定期試験の代替の左記項目に関する演習レポートの設問に対して90%の得点をあげることができる。定期試験の代替の左記項目に関する演習レポートの設問に対して70%の得点をあげることができる。定期試験の代替の左記項目に関する演習レポートの設問に対して60%の得点をあげることができる。
評価項目3 数値解に含まれる誤差を説明できる。定期試験の代替の左記項目に関する演習レポートの設問に対して90%の得点をあげることができる。定期試験の代替の左記項目に関する演習レポートの設問に対して70%の得点をあげることができる。定期試験の代替の左記項目に関する演習レポートの設問に対して60%の得点をあげることができる。

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

教育方法等

概要:
各期間の課題レポートの平均点を定期試験の評点とする。 年間の成績は全11回の課題レポートの総得点を90%、学習への取り組みの姿勢を10%として評価する。総得点の60%以上で単位を認定する。居眠り、テキストやノートPC等の忘れ物は学習への取り組みの姿勢の評価で減点の対象とする。総得点の60%以上で単位を認定する。
授業の進め方・方法:
本講義では教員作成の資料を用いて座学と演習を併用して進める。講義ではPythonの文法を中心に説明した後、学生が各自持参したノートPCと統合開発環境を使い、学んだことを直ちに実践に移すプログラミング演習に入る。時間を要する思考力よりも、即応力の向上をはかる。具体的には、(1)前期にプログラミング言語Pythonの文法の解説を行い、(2)後期に数値シミュレーションの基礎となる代表的な数値計算法の解説を行う。前期、後期共に、(3)ノートPCでのPythonプログラミング演習を通して、Pythonによる数値計算プログラミングの理解を深める。
注意点:
講義では、座学の後に直ちに演習に入るため、受講者には文法等の基礎的事項の記憶が要求される。また、演習では、座学で説明した内容の実践を行うため、講義への集中と指示への追従が必要となる。なお、定期試験(前期中間、前期期末、後期中間)の得点を60%、課題レポートの得点を20%、小テストの総得点を10%、講義での学習への取り組みの姿勢を10%として評価し、年間の総合得点を計算する。居眠り、テキストやノートPC等の忘れ物、は学習への取り組みの姿勢の評価で減点の対象とする。総得点の60%以上で単位を認定する。
・この科目の主たる関連科目はプログラミングⅠ(2年)、制御工学(4年)、CAE(5年)である。
(モデルコアカリキュラム)
・対応するモデルコアカリキュラム(MCC)の学習到達目標、学習内容およびその到達目標を【】内の記号・番号で示す。

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 講義ガイダンス、Python概要 プログラミングパラダイム、Python基本思想、命令型プログラミングのプログラム構造、統合開発環境を学習する。
2週 文法の概要とプログラム作法 インタプリタの使用法、データの宣言と簡単な計算法を学習する。
3週 データの宣言と数値型の演算 オブジェクト指向の考え方、数値を扱うデータ型のクラスと数値を使う演算を学習する。
4週 文字列の演算とデータの表示 文字列のデータ型のクラスと演算法、コンソール窓への表示法を学習する。
5週 コンテナクラスとデータの入力 他のデータ型のクラスを使う演算、キーボードからの入力法を学習する。
6週 条件分岐による場合分け ブール型と関係演算子と論理演算子、条件分岐のif構文を学習する。
7週 条件式による繰り返し while構文の繰り返し処理を学習する。
8週 イテレータによる繰り返し
for構文とイテレータ、文字列・リスト・タプル型のクラスの処理を学習する。
2ndQ
9週 演習(1) 1.~8.迄のまとめの演習を行う。
10週 集合型と辞書型と内包表記 集合型と辞書型のクラスの処理と内包表記の利用法を学習する。
11週 関数の基本 手続き型プログラミングのプログラム構造、関数の定義と使い方、関数の引数と引数の省略と可変引数、再帰関数を学習する。
12週 関数の応用 関数型プログラミングの考え方、関数における変数のスコープと、無名関数、ジェネレータによるイテレータ生成、デコレータによる関数の改造を学習する。
13週 例外処理とファイル入出力、pandas概要 割込の扱いとエラー例外処理、ファイルの入出力とpandasによるエクセルデータの入出力を学習する。
14週 演習(2) Scikit-learnのSVMによる機械学習の演習(1)を行う。
15週 演習(3) Scikit-learnのSVMによる機械学習の演習(2)を行う。
16週 前期期末試験 実施しない。
後期
3rdQ
1週 数値計算の基礎 数値の表現と誤差、数値計算における誤差の発生を理解する。
2週 方程式の解(1) Newton-Raphson法、Regula false法による方程式の解法を学習する。
3週 方程式の解(2) 2分法(Bisection法)と2変数2分法による方程式の解法を学習する。
4週 NumPyの概要 数値計算ライブラリNumPyの概要と行列の扱いを学習する。
5週 連立1次方程式(1) Gauss法、Gauss-Jordan法の直接解法を学習する。
6週 連立1次方程式(2) LU分解法の直接解法を学習する。
7週 連立1次方程式(3) Gauss-Seidel法の間接解法を学習する。
8週 逆行列 LU分解法による逆行列解法を学習する。
4thQ
9週 最小2乗法 最小2乗法による点集合の多項式近似法を学習する。
10週 補間法 Newtonの補間法を学習する。
11週 数値積分(1) Newton-Cotes型公式(台形・シンプソン)の積分法を学習する。オブジェクト指向プログラミングの考え方を理解する。
12週 数値積分(2)、数値微分 補外型公式のRomberg積分と差分近似法による数値微分法を学習する。
13週 常微分方程式(1) Runge-Kutta法による1階常微分方程式の解法を学習する。
14週 常微分方程式(2) Runge-Kutta法による連立1階常微分方程式の解法を学習する。
15週 常微分方程式(3) Runge-Kutta法による連立多階常微分方程式の解法を学習する。
16週 学年末試験 実施しない。

評価割合

試験小テストレポート態度合計
総合評価割合00901000100
基礎的能力002000020
専門的能力007000070
分野横断的能力000100010