プログラミング実習Ⅱ

科目基礎情報

学校 旭川工業高等専門学校 開講年度 平成30年度 (2018年度)
授業科目 プログラミング実習Ⅱ
科目番号 0039 科目区分 専門 / 必修
授業形態 実習 単位の種別と単位数 履修単位: 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 の特徴が説明できる。開発環境をコンピュータにインストールして,開発環境の整えることができる。
2週 Pythonの対話モード 対話実行モードの使い方が説明できる。また,ソースプログラムのコマンドラインからの実行方法が説明できる。
3週 変数と制御構造 「if文」 変数の扱い方が説明できる。if文の使い方が説明できる。
4週 制御構造 「for文」 for文の使い方が説明できる。
5週 制御構造 「break文とcontinue文」 break文とcontinue文の使い方が説明できる。
6週 制御構造の演習 制御構造を利用した簡単なプログラムを作ることができる。
7週 リスト
次週、前期中間試験を実施する
リストを用いたデータ構造について説明できる。学んだ知識の確認ができる。
8週 答案返却と解説
辞書型
学んだ知識の再確認と修正ができる。
辞書型を用いたデータ構造について説明できる。
2ndQ
9週 文字列の操作
関数
文字列操作を含むプログラムの読み書きができる。関数を定義することができる。
10週 関数を用いたプログラムの演習 無名関数の役割について説明できる。関数を定義したプログラムを読み書きすることができる。
11週 イテレータ
例外処理
イテレータを用いて繰り返しを処理するプログラムを作成することができる。例外処理の特徴を説明できる。
12週 モジュール 代表的なモジュールの使い方が説明できる。
13週 ファイル処理 ファイル処理を行う簡単なプログラムを作ることができる。
14週 ファイル処理を用いたプログラムの演習 ポリモーフィズムの働きについて説明できる。アクセス修飾子の違いについて説明できる。
15週 演習 ここまで学んできた文法事項を用いたプログラムを作成することができる。
16週 前期末試験 学んだ知識の確認ができる。
後期
3rdQ
1週 デスクトップアプリの作成 1 デスクトップアプリの作成方法を説明できる。
2週 デスクトップアプリの作成 2 デスクトップアプリの作成することができる。
3週 Webアプリの作成 1 Webアプリの作成方法を説明できる。
4週 Webアプリの作成 2 Webアプリの作成することができる。
5週 機械学習 1 様々な機械学習ライブラリの特徴を説明できる。サンプルを利用して機械学習のプログラムを動作させることができる。
6週 機械学習 2 学習データを自分で選び,機械学習のプログラムを動作させることができる。
7週 演習
次週、後期中間試験を実施する
学んだ知識の確認ができる。
8週 試験答案返却と解説
オブジェクト指向とは
学んだ知識の再確認と修正ができる。
オブジェクト指向の特徴を説明できる。
4thQ
9週 継承について 継承の働きを説明できる。
10週 探索アルゴリズム 代表的な探索アルゴリズムが説明できる。
11週 整列アルゴリズム 代表的な整列アルゴリズムが説明できる。
12週 演習 1 これまでの学んできた事項を用いてプログラムのアルゴリズムを作成することができる。
13週 演習 2 これまでの学んできた事項を用いてプログラムを作成することができる。
14週 演習 3 他人が作成したプログラムを読み,アルゴリズムを説明できる。
15週 学年末試験 学んだ知識の確認ができる。
16週 試験答案返却と解説 学んだ知識の再確認と修正ができる。

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

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

評価割合

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