授業の形態
|
講義、演習又は実験、TA有り
|
|
アクティブラーニング
|
学生が議論する、学生が自身の考えを発表する、フィールドワークなど学生が体験的に学ぶ、学生が文献や資料を調べる
|
|
授業内容と方法
|
*本科目(工共114)は、工学科「知能情報コース」の学生が受講可能である。
可読性が高くインタプリタのあるスクリプト言語Pythonを、講義・演習・課題を組み合わせた実習形式で実施する。 言語仕様を学ぶだけではなく、「実現したいことを理解し、説明できるレベルまで整理し、コンピュータが処理できる形に翻訳する」というプログラミング開発一連の流れを体験する。 レポートを通して学んだことを整理させると共に、レポート作成技術について学ぶ。 なお、プログラミングとはある種の工芸(創造的な芸術)であり唯一の正解がある問題ではない。一方で、その工芸品を作る手段や過程にはある程度の共通項があるのも事実である。そこで、「考えていることを話合いながら作業する」ペア・プログラミングを導入することでプログラミングにおける躓き明確化やテクニック共有を促す環境を構築し、明文化され難い観点への気づきを支援する。また、2名で演習に取り組むことを通して他者と協働する力を養う。
|
|
URGCC学習教育目標
|
コミュニケーション・スキル、情報リテラシー、問題解決力、専門性
|
|
達成目標
|
1. 提示された課題を口頭および報告書として説明することができる。[コミュニケーション能力, 専門性] 2. Pythonの基本的な宣言・式・関数・制御文・関数・スコープ・ファイルI/Oを理解し,用いることができる。[実践性] 3. (クラス、)モジュール、関数の表面的な違いを意識し、コードを読み書きできる。[実践性] 4. 開発中に得られたErrors、 Warningsを元に、どのようにデバッグしたら良いかを考え、実行に移すことができる。[実践性] 5. 第三者の書いたコード(100行程度)を読み、動作を説明することができる。(小作品理解)[実践性, 専門性, コミュニケーション能力] 6. プログラミングの概念と設計方法を理解し、KISS原則を意識した構造化プログラミング(100行程度)を実践することができる。(小作品制作)[実践性, 専門性, 課題解決能力と創造性] 7. 第三者にとって保守管理し易くするためにコード規約を意識し、適切なコメントを記述、単体テストを用意することができる。(小作品仕上げ)[実践性, 専門性]
|
|
評価基準と評価方法
|
レポートおよび課題(80%)、ミニテスト(10%)、ペア・プログラミング演習(5%)、により評価する。 プログラミング・プロセスを重視する。課題に対する考察の課程が分るような表現法を考え、レポートとしてまとめること。
|
|
履修条件
|
情報工学科システムを使うため、原則として情報工学科学生のみ履修可能である。他学科の学生は事前に相談すること。
|
|
授業計画
|
毎週教科書に関するミニテストを実施する。第1回に関しては事前にPrefaceを読んでくること。それ以降はレポートの進み具合を鑑みながら調整する。
第1回: 卓上プログラミングによる開発設計概観、Pythonインタプリタの起動と逐次処理・変数の利用 第2回: Pythonインタプリタとスクリプトの体験1、ペア・プログラミングの導入 第3回: Pythonインタプリタとスクリプトの体験2: 文字列とif文、関数の利用 第4回: 関数の利用2、ループ処理(while文) 第5回: ループ処理(for文)、range()関数とリストによるシーケンス集合表現、浮動小数点問題 第6回: 関数とスコープ、仕様、ユニットテスト、モジュール 第7回: KISS原則とDRY原則、doctest補足、再帰と木構造 第8回: File I/O, Tuples, Jupyter Notebook, 振り返り 第9回: 統合環境PyCharm、デバッガ、振り返り 第10回: リスト操作、文字列操作と調べ方 第11回: これまでの振り返り(演習) 第12回: ディクショナリと関数オブジェクト 第13回: テストとデバッグ、関数設計 第14回: 例外とアサーション、matplotlibとpandas入門 第15回: バージョン管理システム Git入門
|
|
事前学習
|
講義用Webページ、教科書で予習しておくこと。第1回についてはPrefaceを読んでくること。第2回以降については授業は講義用Webページにて指示する。
|
|
事後学習
|
講義で実習したことを復習し、時間内にできなかった課題は次の授業までに行うこと。 また、ほぼ2週間に1度の割合で課題レポートを設定する予定である。その際には締切日を守り、提出すること。
|
|
教科書にかかわる情報
|
|
978-0262529624
|
2017年度まで使用していた教科書でもある程度対応可能ですが、内容がやや古い点に注意が必要です。
|
John V. Guttag
|
MIT Press
|
2016
|
|
|
|
|
教科書全体備考
|
|
|
参考書にかかわる情報
|
|
9784274064067
|
|
Mike Gancarz著 ; 芳尾桂監訳
|
オーム社
|
2001
|
BA51204260
|
|
477412222X
|
|
小森裕介著
|
技術評論社
|
2005
|
BA6983850X
|
|
9784822284657
|
|
平澤章著
|
日経BPマーケティング (発売)
|
2011
|
BB05704566
|
|
9784130624527
|
|
増原英彦, 東京大学情報教育連絡会著
|
東京大学出版会
|
2010
|
BB02373101
|
|
9784623060450
|
|
山田剛史, 林創著
|
ミネルヴァ書房
|
2011
|
BB06394555
|
|
9781449355739
|
|
Mark Lutz
|
O'Reilly
|
2013
|
BB13587093
|
|
4873117380
|
Python3の構文から一通り学ぶための入門書。
|
Bill Lubanovic 著,斎藤康毅 監訳,長尾高弘 訳,
|
オライリー・ジャパン
|
2015
|
|
|
|
|
参考書全体備考
|
|
|
使用言語
|
日本語
|
|
メッセージ
|
受動的な学びだけでは学びになりません。高い学費を払っているのだから学費以上のものを勝ち取るように、大学というリソースを活用しよう。 シラバスや授業計画は計画時点のものです。授業の進展具合に応じて調整することを想定しています。最新版は授業Webページ(下記URL)を参照のこと。
「アクティブラーニング」の項目にチェックを入れていますが、下記に示す形で薄く関わっています。 『学生が議論する』と『学生が自身の考えを発表する』については、主にペアプログラミングという2名による演習時に意思疎通が必要です。 『フィールドワークなど学生が体験的に学ぶ』については、情報工学科(知能情報コース)における現場の一つである「コンピュータとの対話」が必要です。 『学生が文献や資料を調べる』については、演習や課題レポート作成時に教科書だけでなく、マニュアル等の資料を調べることが必要です。
|
|
オフィスアワー
|
調整中。 當間: 木曜日3時限目@工1-705予定。 TA1: 當眞南@名嘉村研(主に授業中のサポート対応) TA2: 西山昴志@當間研(主にレポート指導対応)
|
|
メールアドレス
|
tnal@ie.u-ryukyu.ac.jp
|
|
URL
|
http://ie.u-ryukyu.ac.jp/~tnal/2018/prog1/
|
|
|