プログラミングII

科目基礎情報

学校 沖縄工業高等専門学校 開講年度 令和04年度 (2022年度)
授業科目 プログラミング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)プログラミング演習を通して、数値計算プログラミングの理解を深める。
注意点:
講義では、座学の後に直ちに演習に入るため、受講者には文法等の基礎的事項の記憶が要求される。また、演習では、座学で説明した内容の実践を行うため、講義への集中と指示への追従が必要となる。なお、定期試験(前期中間、前期期末、後期中間)の得点を60%、課題レポートの得点を20%、小テストの総得点を10%、講義での学習への取り組みの姿勢を10%として評価し、年間の総合得点を計算する。居眠り、テキストやノートPC等の忘れ物、は学習への取り組みの姿勢の評価で減点の対象とする。総得点の60%以上で単位を認定する。
・この科目の主たる関連科目はプログラミングⅠ(2年)、制御工学(4年)、CAE(5年)である。(モデルコアカリキュラム)
・対応するモデルコアカリキュラム(MCC)の学習到達目標、学習内容およびその到達目標を【】内の記号・番号で示す。

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 講義ガイダンス、Python概要 プログラミングパラダイム、Python基本思想、命令型プログラミングのプログラム構造、統合開発環境を学習する。
2週 文法の概要とプログラム作法 インタプリタの使用法、データの宣言と簡単な計算法を学習する。
3週 データの宣言と数値型の演算 オブジェクト指向のクラスとデータ型、数値を扱うデータ型のクラスと数値を使う演算を学習する。
4週 文字列の演算とデータの表示 オブジェクト指向のクラスの構成要素と使い方、文字列のデータ型のクラスと演算法、コンソール窓への表示法を学習する。
5週 コンテナクラスとデータの入力 他のデータ型のクラスを使う演算、キーボードからの入力法を学習する。
6週 条件分岐による場合分け ブール型と関係演算子と論理演算子、条件分岐のif構文を学習する。
7週 条件式による繰り返し while構文の繰り返し処理を学習する。
8週 イテレータによる繰り返し(遠隔)
for構文とイテレータ、文字列・リスト・タプル型のクラスの処理を学習する。
2ndQ
9週 演習(1) 1.~8.迄のまとめの演習を行う。
10週 コンテナクラスと繰り返し処理 リスト・タプル・集合と辞書型等のコンテナクラスのデータに対する繰り返し処理を学習する。
11週 内包表記、関数とその定義 コンテナクラスのデータの表記に使う内包表記の利用法と、手続き型と関数型プログラミングの考え方と、関数の定義と関数の呼び出し方を学習する。
12週 関数の応用 再帰関数と呼び出し方、引数の省略と可変引数、関数内の変数のスコープと、無名関数の定義に使うラムダ式を学習する。
13週 NumPy による多次元配列の処理 数値計算ライブラリNumPyの概要、多次元配列の宣言と、多次元配列間の演算、多次元配列の処理を学習する。
14週 割り込みと例外処理、ファイル入出力 割り込みとエラー例外処理の概念と方法、テキストファイルの入出力、with構文のコンテキストマネージャを学習する。
15週 PandasとMatplotlibによるデータ解析と視覚化 データサイエンスライブラリPandasの概要とExcelファイル入出力、Matplotlibの概要、データのプロット法を学習する。
16週
後期
3rdQ
1週 Scikit-learnによるマシンラーニング 機械学習ライブラリScikit-learnの概要、Scikit-learnのサポートベクターマシンによる教師あり学習の基礎を学ぶ。
2週 演習(2) 10.~16.迄のまとめの演習として、Scikit-learnのサポートベクターマシンによる教師あり学習の演習を行う。
3週 数値計算の基礎 数値の表現と誤差、数値計算における誤差の発生を理解する。
4週 連立1次方程式(1) Gauss法、Gauss-Jordan法の直接解法を学習する。
5週 連立1次方程式(2) LU分解法の直接解法を学習した後、ファイルに記憶されている拡大係数行列を入力するプログラミング演習を行う。
6週 連立1次方程式(3) LU分解法の直接解法のプログラミング演習を行う。
7週 連立1次方程式(4) 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