Differences between revisions 6 and 7
Revision 6 as of 2017-09-27 16:40:15
Size: 17861
Comment:
Revision 7 as of 2017-11-29 15:22:46
Size: 17821
Comment:
Deletions are marked like this. Additions are marked like this.
Line 103: Line 103:
||05||10||25||[[SoftEng201705|頁]]||復習||プログラミング基礎(4)||関数(静的メソッド), 配列(二次元)   ||復習:制御構造(条件分岐), 制御構造(繰り返し) ||    || || ||05||10||25||[[SoftEng201705|頁]]||復習||プログラミング基礎(4)||関数(静的メソッド), 配列(二次元)   ||復習:制御構造(条件分岐), 制御構造(繰り返し) ||補習|| ||
Line 105: Line 105:
||07||11||08||[[SoftEng201707|頁]]||基本||OOP(0) ||オブジェクト指向の考え方   ||配列(一次元), コマンド行引数 || || ||
||08||11||15||[[SoftEng201708|頁]]||基本||OOP(1) ||オブジェクト指向の概念と用語   ||学力確認試験(1),(静的メソッド)前半 ||補習|| ||
||09||11||29||[[SoftEng201709|頁]]||基本||OOP(2) ||クラス定義とオブジェクト,継承  ||復習:試験解説, 関数(静的メソッド)後半 ||補習|| ||
||10||12||06||[[SoftEng201710|頁]]||基本||OOP(3) ||コレクション(リストとマップ),インタフェース||復習:関数(静的メソッド), 配列(二次元) ||補習||時間外:追試(1)||
||07||11||08||[[SoftEng201707|頁]]||基本||OOP(0) ||オブジェクト指向の考え方   ||配列(一次元),                  ||補習|| ||
||08||11||15||[[SoftEng201708|頁]]||基本||OOP(1) ||オブジェクト指向の概念と用語   ||学力確認試験(1),コマンド行引 復習:試験解説 ||補習なし|| ||
||09||11||29||[[SoftEng201709|頁]]||基本||OOP(2) ||クラス定義とオブジェクト,継承  ||,関数(静的メソッド) ||補習なし|| ||
||10||12||06||[[SoftEng201710|頁]]||基本||OOP(3) ||コレクション(リストとマップ),インタフェース||復習:関数(静的メソッド), 配列(二次元) ||補習||    ||


授業-ソフトウェア工学(IndexPage) >> 2017年度ソフトウェア工学


授業-2017年度-ソフトウェア工学(SoftEng2017)

(公開) 




授業の狙いと特徴

  • 授業の狙いと特徴
    • 授業の狙い:
      • モデリングにつながる「オブジェクト指向の概念」をプログラミングを通して理解しましょう
        • 特に,大規模なモデルをマネジメントする方法について取り上げます
    • 特徴:
      • 対象: ソフトウェア工学で取り扱うモデリング
        • モデリングは,(管理工学科の他分野で学ぶ)数理的手法を適用するためにも重要です
        • モデリングは,ソフトウェア工学においても,ソフトウェア開発の上流工程と位置づけられます
          • 数理的アプローチでは,解を得られる形に帰着できるようにモデリングすることが重要です
            • 反面,Toy Problemになりがちな面もあります
          • ソフトウェア工学(やシステム工学)では,特に,大規模なモデルをマネジメントする方法について取り上げます
            • 階層性を持つモジュール化
            • 共通性と個別性のマネジメント
      • アプローチ
        • プログラミングを通してオブジェクト指向の概念を理解することを試みましょう
          • 実際に,モデルを作り,操作してみないことには,なかなか理解できません
          • モデリングに関して勘所を体得するには,ソフトウェア開発のInput(Requirements)について理解するだけでなく,最終成果物(Output)であるProgramについても理解が必要です.
            • それは,数理的手法を使う際に,解析的に解ける形に問題を抽象化しモデリングすることがまず第一に重要であって,そのためには解法についての理解が必要であることと似ています.
            • もっとも解析的に解けない場合には別の手法(数値解を得る手法)に切り替えることになりますので,そうした手法についても理解が必要です.
        • 良いモデル/あまり良くないモデルなどを,比較して考えてみましょう
          • アルゴリズムとデータ構造は,与えられた問題に対して,よいモデリングを考える題材となりえます
            • 当然ですが,アルゴリズム論といった科目とは深い関係にあります.
              • この授業でも,有名な「アルゴリズムとデータ構造」を題材に取り上げることも多いので,履修をお奨めします


授業開始前のお願い

  • keio.jpにアンケートがあります.
    • その一部は,授業開始後でないと回答できないものもありますが,ほとんどは授業開始前に回答できます.
    • アンケートの回答を始めていてください.


授業の注意事項

  • 下記の注意事項は,口頭でお伝えしても,なかなか全員に伝わらないようです.
    • ルールとして(私自身も)徹底するために明文化しました.
    • よろしくお願いします.
    • SoftEng2017Notice


授業の関連図書


各回の内容

  • 実際の授業の進度は,履修者の皆さんの「前提科目レベルの内容」の理解度により調整します.
    • 必要に応じて,学力確認テストを授業内に実施します.
      • 早期に,ご自身の実力がどのくらいなのかを把握していただくことを目的としています.
        • 出席して,課題を提出すると,それなりの充実感はありますが...
        • 授業中に提示される回答例を写すだけでは,実力の養成にはなかなかつながりません
          • もっとも,それだけでも,プレゼンを見ながら講義を聴くだけというよりは,ずっと理解が深まります.
        • 自力でどれくらいできるようになるかがポイントです.
      • 必要に応じて復習と課題の解答解説,学力確認テストの解答解説をします.
        • 課題の提出状況,学力確認テストの結果状況によります.

例題

課題(予定)

内容(予定)

授業内容(実際)

授業前補習

時間外(授業後)

01

09

27

ガイダンス

導入

ソフトウェア工学とは

ソフトウェア工学とは

02

10

04

復習

プログラミング基礎(1)

プログラムとは,言語処理系

プログラムとは,言語処理系

03

10

11

復習

プログラミング基礎(2)

式,変数,代入,制御構造

式,変数,代入,バッチファイル,ビルドツールant

補習

04

10

18

復習

プログラミング基礎(3)

文字列操作, 配列(一次元), コマンド行引数

制御構造(連接,条件分岐)  

補習

05

10

25

復習

プログラミング基礎(4)

関数(静的メソッド), 配列(二次元)  

復習:制御構造(条件分岐), 制御構造(繰り返し)

補習

06

11

01

復習

プログラミング基礎(5)

入出力,ファイル  

復習:拡張課題/チャレンジ課題, 文字列操作

補習

07

11

08

基本

OOP(0)

オブジェクト指向の考え方  

配列(一次元), 

補習

08

11

15

基本

OOP(1)

オブジェクト指向の概念と用語  

学力確認試験(1),コマンド行引数 復習:試験解説

補習なし

09

11

29

基本

OOP(2)

クラス定義とオブジェクト,継承  

,関数(静的メソッド)

補習なし

10

12

06

基本

OOP(3)

コレクション(リストとマップ),インタフェース

復習:関数(静的メソッド), 配列(二次元)

補習

11

12

13

基本

OOP(4)

GUI(1) グラフィカル利用者インタフェース

復習:試験解説, 復習:配列(二次元)

補習

12

12

20

基本

OOP(5)

GUI(2), イベント駆動プログラミング

学力確認試験(2), ファイル入出力

13

12

27

基本

OOP(6)

GUI(3), 動的モデリング

OOP(0), OOP(1),OOP(2), OOP(3)

補習(TAによる質問対応のみ)

14

01

17

試験

まとめと展望

OOP(4), OOP(5), OOP(6), 最終試験

実際の進度について

  • 実際に履修者の皆さんのスキルに応じて,進度を調整しています.
    • 質問を主体とした補習やアンケートを通して,理解度合いを調査していますが,結果として,やはり復習が結構必要であると考えています.

補習について

  • 授業内だけでなく,授業前の補習でも,質問主体の復習(と可能なら予習)を実施しています.
    • 補習内容は,授業内でお話ししたこと,お話しすることしかやりません
      • 補習に出ることのできない人に不利にならないように,補習に出た人にだけ伝えるような内容はないようにしています.
      • しかし,授業が理解できなかったという人は,都合さえ合うなら極力,補習に参加して質問してください.
        • 補習では,個別の質問に対応することも可能なので,理解するには有用です.
        • 逆に,早期から十分に質問するための機会があるにもかかわらず,質問もせずに「後になって理解できなかった」と言われても対応できません
          • 早めの主体的な行動に期待していますので,よろしくお願いします.
          • 遡る内容が多いと時間もかかりますから,早めの対応が有効です.

課題について

  • 早く理解できてしまった人には,復習の時間帯に,拡張課題,チャレンジ課題に取り組んでください.
    • 理解が十分でない人のために復習に時間を費やさざるをえないので,その分,新しい知識の提供は少なくなってしまいますが...
      • 拡張問題,チャレンジ問題に取り組むことは,実力の養成に役立ちます.
        • 今は,易しい(優しい?丁寧な)自習書がたくさんあります.知識は自力で獲得することが可能です.
        • それでも理解できないことがあれば,授業と関係ない内容でも幾らでも質問してください.
          • 内容によっては確認したり調べたりすることが必要で,即答できないものもあるかもしれませんが,時間のある限り対応します.
        • 大事なことは,知識以上に,同アプローチすればよいかといった,考え方です.
          • それを身に着けるには,与えられたものを覚えるだけではなく,主体的に考えることがどうしても必要となります.
    • 拡張課題は,例題や基本課題の組み合わせで解けるくらいのレベルに設定しています.
    • チャレンジ問題は,ちょっと難しいかもしれませんが,チャレンジ問題が解ける人は,自力でどんどん実力を伸ばすことができる段階にきていると思います.


各回の内容(予定)

例題

課題

内容

01

09

27

例題

課題

ガイダンス

導入

ソフトウェア工学とは

02

10

04

例題

課題

復習

プログラミングの基礎(1)

プログラムとは,言語処理系

03

10

11

例題

課題

復習

プログラミングの基礎(2)

式,変数,代入,制御構造

04

10

18

例題

課題

復習

プログラミングの基礎(3)

文字列操作, 配列とループ, コマンド行引数

05

10

25

例題

課題

復習

プログラミングの基礎(4)

関数(静的メソッド), 多重ループ

06

11

01

例題

課題

復習

プログラミングの基礎(5)

入出力,ファイル

07

11

08

例題

課題

基本

オブジェクト指向の考え方

モデリング,部品化再利用

08

11

15

例題

課題

基本

オブジェクト指向プログラミング(1)

オブジェクト指向の概念と用語

09

11

29

例題

課題

基本

オブジェクト指向プログラミング(2)

クラス定義とオブジェクト

10

12

06

例題

課題

基本

オブジェクト指向プログラミング(3)

コレクション(リストとマップ),インタフェース

11

12

13

例題

課題

基本

オブジェクト指向プログラミング(4)

GUI(1) グラフィカル利用者インタフェース

12

12

20

例題

課題

基本

オブジェクト指向プログラミング(5)

GUI(2), イベント駆動プログラミング

13

12

27

例題

課題

基本

オブジェクト指向プログラミング(6)

GUI(3), 動的モデリング

14

01

17

例題

課題

試験

まとめと展望


SoftEng: SoftEng2017 (last edited 2018-01-30 00:17:07 by TadashiIijima)