2016年度 : プログラミング1 / シラバス
- 授業内容と方法
-
- 可読性が高くインタプリタのあるスクリプト言語Pythonを,講義・演習・課題を組み合わせた実習形式で実施する。
- 言語仕様を学ぶだけではなく,「実現したいことを理解し,説明できるレベルまで整理し,コンピュータが処理できる形に翻訳する」というプログラミング開発一連の流れを体験する。
- レポートを通して学んだことを整理させると共に,レポート作成技術について学ぶ。
- なお,プログラミングとはある種の工芸(創造的な芸術)であり唯一の正解がある問題ではない。一方で,その工芸品を作る手段や過程にはある程度の共通項があるのも事実である。そこで,「考えていることを話合いながら作業する」ペア・プログラミングを導入することでプログラミングにおける躓き明確化やテクニック共有を促す環境を構築し,明文化され難い観点への気づきを支援する。また,2名で演習に取り組むことを通して他者と協働する力を養う。
- 達成目標
-
- 提示された課題を口頭および報告書として説明することができる。[コミュニケーション能力, 専門性]
- Pythonの基本的な宣言・式・関数・制御文・関数・スコープ・ファイルI/Oを理解し,用いることができる。[実践性]
- クラス,モジュール,関数の表面的な違いを意識し,コードを読み書きできる。[実践性]
- 開発中に得られたErrors, Warningsを元に,どのようにデバッグしたら良いかを考え,実行に移すことができる。[実践性]
- 第三者の書いたコード(100行程度)を読み,動作を説明することができる。(小作品理解)[実践性, 専門性, コミュニケーション能力]
- プログラミングの概念と設計方法を理解し,KISS原則を意識した構造化プログラミング(100行程度)を実践することができる。(小作品制作)[実践性, 専門性, 課題解決能力と創造性]
- 第三者にとって保守管理し易くするためにコード規約を意識し,適切なコメントを記述,単体テストを用意することができる。(小作品仕上げ)[実践性, 専門性]
補足: 各項目最後にある「[]内の記述」は学習教育目標とのマッチングを示している。
- 評価基準と評価方法
-
- レポートおよび課題(70%),ペア・プログラミング演習(20%),ミニテスト(10%)により評価する。
- プログラミング・プロセスを重視する。課題に対する考察の課程が分るような表現法を考え、レポートとしてまとめること。
- 授業計画
-
毎週教科書に関するミニテストを実施する。第1回に関しては事前にPrefaceを読んでくること。それ以降はレポートの進み具合を鑑みながら調整する。
- 第1回: 卓上プログラミングによる開発設計概観,関数と再利用
- 第2回: Pythonインタプリタとスクリプトの体験1,ペア・プログラミングの導入
- 第3回: コード例を通したインタプリタとスクリプトの体験2: モジュール,クラス,関数とスコープ,式と変数,if文,コメント文
- 第4回: 基本的な型と変数,ドキュメンテーション文字列,mathモジュール,オンラインヘルプ
- 第5回: リスト・タプルとfor文
- 第6回: 制御文・条件文と関連予約語とコーディングスタイル
- 第7回: 関数,ユニットテスト,アサーション
- 第8回: 振り返り1(プログラムの実行,関数の理解,プログラミング基礎,コード読解)
- 第9回: バージョン管理
- 第10回: ファイル入出力と文字列パターンマッチング,設計と実装の検討
- 第11回: インターネットへのアクセスと文字コード,エンコードとデコード
- 第12回: 集合とディクショナリ,pickel
- 第13回: クラス1: クラスオブジェクト,インスタンスオブジェクト,メソッドオブジェクト,継承
- 第14回: クラス2: スコープと名前空間
- 第15回: 振り返り2(実践的なプログラミング,クラスやメソッドとスコープ)
- 事前・事後学習
-
- 事前学習: 講義用Webページ、教科書で予習しておくこと。第1回についてはPrefaceを、そして余裕がれば Chapter 1 も読んでくること。気になる点は質問できるように整理しておくこと。第2回以降については授業は講義用Webページにて指示する。
- 事後学習: 講義で実習したことを復習し、時間内にできなかった課題は次の授業までに行うこと。
- 教科書・参考書
-
教科書は最初の1冊で、残りは参考書です。図書館や書店で眺めてみて、手元に置きたいものを購入すると良いでしょう。なお、Python本を購入・参照する際にはバージョンの違いに注意してください。Python 2系列と3系列とで大きく異なる部分があります。授業ではPython 3系列を使います。
- 教科書: Introduction to Computation and Programming Using Python, Revised And Expanded Edition: 授業では「Part 1 (Chapter 8まで)」をメインに取り扱います。約100ページ。これを4回は読もう。余裕がある人は Chapter 9 以降に取り組んでみよう。必ずしも順番通りに進める必要はなく、目次や索引を眺めて興味のあるところから手を付ける良いです。
- UNIXという考え方: いわゆるUNIX哲学(下記)を学べる本。ただし癖の強い訳語も多いので、やや読みにくい。
[UNIX哲学] 「一つのことを行い、またそれをうまくやるプログラムを書け。協調して動くプログラムを書け。標準入出力(テキスト・ストリーム)を扱うプログラムを書け。標準入出力は普遍的インターフェースなのだ。」
- なぜ、あなたはJavaでオブジェクト指向開発ができないのか: Javaでの話になっていますが、プログラミング全般に共通する話題です。プログラミングにアレルギー持ってる人向けの「取り組み方処方箋」。
- オブジェクト指向でなぜつくるのか 第2版: プログラミングの歴史を踏まえつつ、どのような意図で言語が開発・改定されされているのかという側面から「オブジェクト指向」の特徴を紐解く一冊。
- 情報科学入門 Rubyを使って学ぶ: 本講義で使用する教科書の Chapter 9 以降に近い位置づけ。Python以外にも触ってみたい、情報科学ってなんだろうという視点から取り組んでみたいという人向け。
- 大学生のためのリサーチリテラシー入門: 研究のための8つの力: 物事についてどう調べ、整理し、まとめるのかという「大学生に求められる力」を整理し、取り組み方について解説している本。全員、早い段階で一読することを強くお勧めします。
- Learning Python: ガチでPythonマスターを目指したい人向け。1600ページ。
- Pythonチュートリアル 第3版: 例題中心に進みますので、動かしながら勉強するには向いています。ただし、これだけだとコーダーレベル。
- 備考
-
- 受動的な学びだけでは学びになりません。高い学費を払っているのだから学費以上のものを勝ち取るように、大学というリソースを活用しよう。
- シラバスや授業計画は計画時点のものです。授業の進展具合に応じて調整することを想定しています。最新版は授業Webページを参照のこと。
- オフィスアワー
- 木曜日3時限目で調整中。
- 連絡先
-
- 氏名: 當間愛晃(とうま なるあき)
- 所在: 工学部1号館705室
- E-mail: tnal@ie.u-ryukyu.ac.jp
- URL: [ 授業関連 | ブログ ]
- Twitter: @naltoma
- 講義用Slack: prog1-ie-univ-ryukyu.slack.com, @naltoma
- Facebook: 當間愛晃