↓ メインコンテンツへスキップ

プログラミング演習B シラバス
#

授業概要
#

本演習はプログラミング演習Aに引き続き、Pythonによるプログラミングの演習を行う。 新しく導入される主要事項は関数の概念(引数、返り値、スコープ)、再帰、クラスである。これらにより、実用的かつ大規模なプログラムの実装が可能になる。

加えて、今日の情報系では当たり前になりつつあるデータ分析や機械学習についても、簡易な例を通じて実践する。これらの例を通じてPythonとデータ分析、機械学習のスキルを身につける。

情報を専門とする学生にとってプログラミングスキルの習得はほぼ必須である。今後の専門科目でもプログラミング能力が要求されるものが多数あり、それを避けてこの先進めていくことは難しい。つまりこの科目では基礎的なプログラミングに関する知識と技術を習得し、操作を含めた訓練を行う。ただし、それはこの科目のためではなくむしろ先に続く専門科目、特別研究の土台となっていることであると認識して取り組むこと。

なお、この科目に先立ち、以下の科目の履修・習得を強く推奨する。

  • 情報理工学概論
  • コンピュータ概論
  • プログラミング演習A
  • 情報リテラシ基礎演習(高校までにPCを使用したことがあまりない場合)

授業形態
#

  • 対面授業
  • 授業方法【演習】

授業内容・授業計画
#

以下の内容について、講義と演習を交互に繰り返しながら単元を進めていきます。 なお、第5回目、第10回目に中間試験を、第14回目に期末試験を実施します。

シラバスシステムの内容からの変更について

シラバスシステムの内容 とは進め方が多少違っています。 具体的には、旧02講, 03講, 04講 を 02講, 03講 にまとめ、09講, 10講の2回だった機械学習を3回に増やしています。 学ぶ内容は変更させていません。

  1. プログラミング演習Aの復習
    • 変数、タプル、リスト
  2. Pythonの基本データ型、関数(1/2; 関数の基礎)
    • ディクショナリ、セット
    • 関数の定義
    • 引数と返り値
  3. 関数(2/2; 関数の応用)
    • デフォルト引数
    • 複数の値の返り値
    • 変数のスコープ
    • assert文
  4. 再帰関数(1/2; 再帰関数の基礎)
    • 漸化式
  5. 中間試験、再帰(2/2; 探索)
    • 探索
  6. クラス(1/2)
    • クラス定義
    • インスタンス作成
    • ドット記法
  7. クラス(2/2)
    • カプセル化
    • コンストラクタ
    • メソッド(クラスメソッド、インスタンスメソッド)
  8. 機械学習(1/3; ベクトル、行列、可視化)
    • scikit-learn
    • ベクトルと行列
    • 機械学習とは(統計指標、データの可視化)
  9. 機械学習(2/3; 教師あり学習)
    • 線形回帰、決定木
    • モデルの評価
  10. 中間試験、機械学習(3/3; 教師なし学習)
  • クラスタリング(k平均法、階層的クラスタリング)
  • 次元削減
  1. PyGame を用いたソフトウェア開発(1/3)(準備中)
  2. PyGame を用いたソフトウェア開発(2/3)(準備中)
  3. PyGame を用いたソフトウェア開発(3/3)(準備中)
  4. 期末試験、最終課題、まとめ(準備中)

準備学習等(事前・事後学習)
#

この授業を受けるにあたって、キー入力操作が不慣れで授業中の作業時間で間に合わないと感じる場合は、十分に練習し、タッチタイピングを習得すること。

第1回から第14回までの準備学習を次のように行うこと.

事前学習
#

授業に必要な資料はWebページ上に掲載しているため、毎回の授業当日までに十分に読み込んでおくこと。加えて、例題や課題に事前に取り組み、自分が理解できない箇所を確認しておくこと。

事後学習
#

授業終了後に資料のWebページおよび授業中に取ったノートや演習成果物を見直し、 学習内容を確認して理解を深めること。また、課された課題は取り組み提出すること。本演習で扱う知識は基礎的なものであり、いずれが欠けても今後の学部の専門授業の多くに支障を来す。そのため、理解不十分なまま放置しないこと。

授業の到達目標
#

  • Pythonの基礎知識を身に付け、簡単なPythonプログラムが書ける。
  • 与えられた仕様に従って、簡単なPythonプログラムが書ける。
  • 基礎的な分析方法を理解し、Pythonプログラムを用いて実行できる。
  • 基礎的なアルゴリズムを理解し、利用できる。

履修上の注意
#

タイピング速度は習熟度に大きく影響する。タッチタイピングは必須であり、1分間に120字程度(日本語入力で60字程度)が入力できるようにしておくこと。入力速度が120字/分以下の場合は、単位を認めない場合もある。タイピング速度は、次のサイトで測定できる.

https://www.e-typing.ne.jp/roma/check/

演習資料は事前によく読んでおくこと。また、演習資料中の例題は必ずコンパイル・実行すること。 疑問点は積極的に質問すること。

各講義ごと(週次)に2, 3題、課題を課す。期限までに取り組み提出すること。

生成系AIを用いること自体は禁止しないが、課題を生成系AIに投げた結果を確認することなくそのまま提出することは、自身のスキル向上に全く寄与しないため、お勧めしない。次のような活用方法をお勧めする。

  • サンプルプログラムを説明してもらう。
  • 期待通りに動かないプログラムの原因を教えてもらう。
  • プログラムをどのように書けばよいかをアドバイスしてもらう。
  • プログラムが正しく書けたかどうかを、どのように確認すればよいかを教えてもらう。

評価方法
#

主に以下の3つの成績をもとに算出する。それぞれの割合は20%〜60%とする。

  • 最終課題
  • 期末試験(14回目に実施予定)
  • 中間試験(5回目、10回目に実施予定)

また、各講義で課す週次課題の合計点数も成績に加味することもある(0%〜20%)。

詳細は講義中に説明する。

教材
#

教科書

その他、講義用資料をWebにて公開する。

質問や相談の方法
#

  • 主にMicrosoft Teamsで受け付ける。
  • 担当教員のオフィスアワーの情報は学部から提供されるため、そちらを参照のこと。

その他
#