授業-ソフトウェア工学 > 2018年度 > 第04回


授業-2018年度-ソフトウェア工学-第04回

*

(公開)





お知らせ

[ edit ]

  • アンケートと課題の提出
    • 今回の提出課題は,前回までの復習として,第02回の基本課題,拡張課題(基本課題ができた人向け)を想定しています.
  • スケジュールの調整
    • 過去数回の様子から,リストや配列に関して,より例題や課題を増やして理解を深めていただく必要を感じました
      • それに伴い,少々,授業スケジュールの調整を行いますが,調整用の余裕もとってありますので支障はありません
      • 今年度からPythonに変更したこと,春学期の前提科目でもPythonを使ってもらっていることから,むしろ皆さんの理解度を確認しつつ,授業を再編成する必要があるため,スケジュール再編に関してはご容赦ください
    • 例題用のデータをファイルに保存したり,読み込んだりすることも,少し早めに前倒しすることにします
      • いろいろなデータ構造を対応付ける前に,例題データのハンドリングの手段を増やしたいと思います.
*


概要


概念編

[ edit ]

  • 概要
    • 【復習と整理】構造化構文(分岐/反復)(2)
      • break文

        • これは便利ですよね.すでに使っています.
      • continue文

        • これは,私自身は,ほとんど使いません.
          • あくまで個人的意見ですが,continue文を使うよりも,別の表現の方が分かり易いとおもっているからです
          • でも,他人の書いたプログラムを読むときにはでてくるかもしれませんね.
            • なので,知っておくことは悪くありません(むしろ必要?!).
      • pass文

        • 何もしない文です
          • さて,「何もしない文」って何のために必要なのでしょう?
            • そんな文が,いったいなぜ必要なのか,興味をもっていただけると助かります.
    • 【新しい話題】タプル(tuple)

      • 変更のできない(immutableな)「データの組」

        • 「要素数が2のタプル」を特に「対(ペア)」といいます
        • 変更可能(mutableな)変更不能(immutableな)って何でしょう?

          • 初心者のうちは,それほど意識せず,リストで代用できます.
          • 何周目かの復習の際に,身に着けて行けば,よろしいでしょう.
            • 列(シーケンス)に関して,統一的な視点から「共通の演算」を意識した時点でちょっと意識し始めると思います.
            • 現時点で,皆さんが遭遇するとしたら,リストが変更可能なのに,文字列が変更不能であるところでしょうね.
    • 【新しい話題】辞書(dict)

      • 「キーと値の対」の「集合」です.
    • 【新しい話題】集合(set)

      • 重複のないリストです.
        • これもリストで代用できることも多いのですが...
        • 積極的に,集合演算を使うことは,アルゴリズムの表現などで,本来の意味を残せますので,意外と重要です.
        • 単純に集合(set)というと,変更可能なもの(set)を指しますが,変更不能なもの(frozen set)もあります
          • とりあえずは,frozen setはあまり意識しなくても大丈夫でしょう.
    • 【新しい話題】文字列の書式化
      • 文字列の書式化

      • 元々,第03回の話題に含めており,Wikiページもリンクしてましたので,自主的に勉強(予習)してくれている人もいるかと思います
        • 第03回の例題が増えてしまいましたので,本格的な利用は第04回の例題に回すことにしました.
          • 基本課題第03回の1でちょっとだけ取り上げます.


実習編

[ edit ]

  • 概要
    • 今回は,タプル集合の演算も行いますが,これらは既にご存知の概念からイメージしやすいかとおもいます.

    • 辞書(dict)の導入が大きなポイントとなるとみています.

      • 今回も皆さんの理解の度合いを確認しつつ,進めましょう.
*


配布資料

[ edit ]

  • 今回の配布物

    プログラム

    SE04-P001a

    04

    例題

    zip

    前回の配布物

    プログラム

    SE03-P002a

    03

    演習(基本課題)

    zip

    穴埋め用

    プログラム

    SE02-P003a

    02

    演習(拡張課題)

    zip

    穴埋め用

    前々回の配布物

    資料  

    SE02-S001

    02

          

    pdf

    プログラム

    SE03-P001a

    03

    例題

    zip

    プログラム

    SE02-P002a

    02

    演習(基本課題)

    zip

    穴埋め用

*


今回の内容

[ edit ]

  • 概念と実習
    • 【復習と整理】構造化構文(分岐/反復)(2)
    • 【新しい話題】タプル

      • 変更のできないデータの組
        • ベクトルなどを表現するのに使えます
        • 初心者のうちは,リストで代用してしまうことも多く,それで問題ないこともよくあります.
          • ですが,上級者になるにつれて,変更可能なのか変更不能なのかを意識する方がよろしいでしょう
          • 【参考】いわゆる関数型プログラミングで,参照の透明性を意識して破壊的操作を避けるときなどには有効ですが,最初のうちは(慣れないうちは)意識しなくても大丈夫でしょう.
        • Pythonでは,式の左辺にも手軽に書けるので,複数の値を返す関数などを定義するには,手軽で便利です.
    • 【新しい話題】辞書(dict)

      • キーと値の対の集合です.
      • 数学的には,写像(キーから値への写像)に相当します.
        • →なので,データ型のカテゴリーとしてはマッピング(写像のことですよね)に分類されます.
      • 「辞書」の「見出し語」と「説明文」に対応づけると理解しやすいでしょう.
    • 【新しい話題】集合

      • 重複のないリストです.
        • これも初心者のうちは,必ずしも意識しないで使えますが,アルゴリズムの記述などでは,集合演算をつかうと,その意味を明確に表現してくれます.
*


プログラムの説明


プログラムの説明

例題

[ edit ]

基本課題

[ edit ]

*


授業の狙いと特徴

[ edit ] ⇒ HandOut

*


*


*

SoftEng: 2018/04/IndexPage (last edited 2018-10-17 09:27:31 by TadashiIijima)