プログラミング実習Ⅱ

科目基礎情報

学校 旭川工業高等専門学校 開講年度 平成31年度 (2019年度)
授業科目 プログラミング実習Ⅱ
科目番号 0030 科目区分 専門 / 必修
授業形態 実習 単位の種別と単位数 履修単位: 2
開設学科 電気情報工学科 対象学年 3
開設期 通年 週時間数 前期:2 後期:2
教科書/教材 教科書: 「実践力を身につける Pythonの教科書」クジラ飛行机 著,マイナビ 参考書: 「たのしいプログラミング Pythonではじめよう」Jason R Briggs 著,オーム社 「Python言語によるプログラミングイントロダクション」John V. Guttag 著,近代科学社 「ゼロからはじめるデータサイエンス」Joel Grus 著,O'REILLY など
担当教員 笹岡 久行

到達目標

1. 与えられた問題に対してそれを解決するためのソースプログラムを記述できる。
2. 代表的なアルゴリズムやデータ構造について説明することができる。
3. 機械学習やデータ処理などの実際の問題に応用することができる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1自分の力だけで様々な文法事項を含むプログラムの読み書きができる。書籍等を参考にして,様々な文法事項を含むプログラムの読み書きができる。条件分岐や繰り返しのプログラムを理解できない。
評価項目2自分の力だけで,代表的なアルゴリズムやデータ構造の特徴を理解し,初めて見る問題についても使い分けて,プログラムを作成することができる。書籍等を参考にして,代表的なアルゴリズムやデータ構造の特徴を理解し,説明することができる。代表的なアルゴリズムやデータ構造の特徴を説明することができない。

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

学習・教育到達度目標 電気情報工学科の教育目標② 説明 閉じる
学習・教育到達度目標 本科の教育目標② 説明 閉じる

教育方法等

概要:
プログラミング言語の1 つであるPythonはスクリプト言語であるが,データ解析や人工知能の分野等の非常に多くの利用されている。本授業ではプログラミング言語であるPythonの文法事項の修得に加え,この言語の特徴の1 つであるオブジェクト指向の概念の理解を目指す。そして,その応用として,種々のアルゴリズムを用いたプログラムの作成方法についても説明する。そして,プログラム作成等の演習には可能な限り多くの時間を割く予定である。
授業の進め方・方法:
教科書,参考書や配布資料にあるサンプルプログラムを通して文法事項を確認する。そして,それを基にして各自でプログラムの作成を行う。また,演習を通してその定着を図っていく。
注意点:
・自学自習時間(60時間)は,日常の授業(30時間)に対する予習復習,レポート課題の回答作成時間,試験のための学習時間を総合したものとする。
・評価については,合計点数が60点以上で単位修得となる。
・これまでのプログラミング実習の授業を履修したことにより,プログラミングに必要な基礎知識は既に理解されているものとして授業を進める。
・本科目ではこれまでに身に付けた知識を基に,自らプログラムを作成することにより多くの時間を費やす。これはプログラミング言語の修得には机上の文法学習だけでは不十分であり,自分でできるだけ多くのプログラムを作成することが必要となるからである。
・授業時間以外の自学自習による演習には十分な時間を割いて欲しい。

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 Pythonとは プログラミング言語Python の特徴が説明できる。開発環境をコンピュータにインストールして,開発環境を構築することができる。Pythonの対話モードの利用して,計算を実行することができる。
2週 変数と文字列 変数の扱い方が説明できる。文字列の扱い方が説明できる。コマンドラインからのプログラムの実行方法を説明することができる。
3週 制御構造① if文の使い方が説明できる。
4週 制御構造② for文の使い方が説明できる。break文とcontinue文の使い方が説明できる。
5週 演習「制御構造の利用」 制御構造を利用した簡単なプログラムを作ることができる。
6週 データ構造① リストを用いたデータ構造について説明できる。
7週 データ構造②
次週、前期中間試験を実施する
辞書型を用いたデータ構造について説明できる。
8週 前期中間試験 学んだ知識の確認ができる。
2ndQ
9週 前期中間試験の返却と解説
文字列の操作
学んだ知識の再確認と修正ができる。
文字列操作を含むプログラムの読み書きができる。
10週 関数 関数を定義することができる。無名関数の役割について説明できる。
11週 イテレータ
例外処理
関数を定義したプログラムを読み書きすることができる。イテレータを用いて繰り返しを処理するプログラムを作成することができる。例外処理の特徴を説明できる。
12週 関数を用いたプログラムの演習
自分で簡単な関数を定義し,プログラムを作成することができる。例外処理を考慮したプログラムを自分で作ることができる。
13週 モジュール
ファイル処理
代表的なモジュールの使い方が説明できる。ファイル処理の入出力処理について説明することができる。
14週 ファイル処理を用いたプログラムの演習 ファイル処理を行う簡単なプログラムを作ることができる。
15週 演習「ファイル処理」 ここまで学んできた文法事項を用いたプログラムを作成することができる。
16週 前期末試験 学んだ知識の確認ができる。
後期
3rdQ
1週 デスクトップアプリの作成① デスクトップアプリの作成方法を説明できる。
2週 デスクトップアプリの作成② デスクトップアプリの作成することができる。
3週 Webアプリの作成① Webアプリの作成方法を説明できる。
4週 Webアプリの作成② Webアプリの作成することができる。
5週 機械学習① 様々な機械学習ライブラリの特徴を説明できる。サンプルを利用して機械学習のプログラムを動作させることができる。
6週 機械学習② 学習データを自分で選び,機械学習のプログラムを動作させることができる。
7週 演習
次週、後期中間試験を実施する
ここまで学んできた文法事項を用いたプログラムを作成することができる。
8週 後期中間試験 学んだ知識の確認ができる。
4thQ
9週 試験答案返却と解説
オブジェクト指向とは
学んだ知識の再確認と修正ができる。
オブジェクト指向の特徴を説明できる。
10週 クラスとインスタンス変数 代表的な探索アルゴリズムが説明できる。
ポリモーフィズムの働きについて説明できる。アクセス修飾子の違いについて説明できる。
11週 継承について 継承について説明することができる。スーパークラスと派生クラスについて説明することができる。
12週 演習「オブジェクト指向の利用」 これまでの学んできた事項を用いてプログラムのアルゴリズムを作成することができる。
13週 アルゴリズム① 代表的なアルゴリズム(整列・探索)が説明できる。
14週 アルゴリズム② 代表的なアルゴリズム(整列・探索)が説明できる。
15週 学年末試験 学んだ知識の確認ができる。
16週 試験答案返却と解説 学んだ知識の再確認と修正ができる。

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

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎情報リテラシー情報リテラシー同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。3後13,後14
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。3後13,後14
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。3後13,後14
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。2前2
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。2前10,前11,前12
変数の概念を説明できる。2前1,前2
データ型の概念を説明できる。2前2,前6,前7
制御構造の概念を理解し、条件分岐を記述できる。2前3,前4
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。2前5,前15,後7,後13,後14
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。2前1
ソフトウェアアルゴリズムの概念を説明できる。2後13,後14
与えられたアルゴリズムが問題を解決していく過程を説明できる。2後13,後14
整列、探索など、基本的なアルゴリズムについて説明できる。2後13,後14
分野別の工学実験・実習能力情報系分野【実験・実習能力】情報系【実験・実習】与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。2前1
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。2前1

評価割合

試験レポート合計
総合評価割合6040100
基礎的能力453075
専門的能力15015
分野横断的能力01010