Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Webアプリ構築を題材にしたIT教育

ossaj
August 09, 2022

 Webアプリ構築を題材にしたIT教育

2019年度に中央大学としては26年ぶりに開設した新しい学部である国際情報学部(通称:iTL)では,情報と法学を学ぶ学部として他に類のない教育を提供している.そのなかで講演者は情報学分野の教育を担当し,「人間とコンピュータのインタラクション研究」をメインに掲げたゼミ活動を進めている.

本講演では,なかでもPHPやPython, RubyといったOSSプラットフォームを活用したWebアプリ構築を題材に行っているIT教育について解説する.そのような教育を提供するに至った背景や理念を説明し,具体的な構築例,教育実施事例を紹介する.さらに,オンラインで行うプログラミング演習の試みと,そのために開発したツールを紹介し,オンライン演習の先端事例を示す.

ossaj

August 09, 2022
Tweet

More Decks by ossaj

Other Decks in Technology

Transcript

  1. தԝେֶJ5-൧ඌ३

    Φʔϓϯιʔειϑτ΢ΣΞڠձ

    ։࠵ηϛφʔ
    8FCΞϓϦߏஙΛ

    ୊ࡐʹͨ͠*5ڭҭ

    View Slide

  2. $PQZSJHIU˜+VO*JP
    ࣗݾ঺հ
    w தԝେֶࠃࡍ৘ใֶ෦ʢJ5-ʣڭत
    w ಛఆඇӦར׆ಈ๏ਓਓؒத৺ઃܭਪਐػߏཧࣄ
    w Ұൠࣾஂ๏ਓ͜ͱ͹ͷ·ͳͼ޻๪ཧࣄ
    w ത࢜ʢ޻ֶʣٕज़࢜ʢ৘ใ޻ֶ෦໳ʣ
    w ਓؒத৺ઃܭਪਐػߏೝఆਓؒத৺ઃܭઐ໳Ո
    w ܦྺ
    w ೥݄

    ʙ೥݄ɹגࣜձࣾࡾඛ૯߹ݚڀॴۈ຿
    w ೥݄ʙɹதԝେֶจֶ෦ࣾձ৘ใֶઐ߈
    w ೥݄ʙɹݱ৬
    w ઐ໳෼໺
    w γεςϜͱਓؒͷΠϯλϥΫγϣϯʹؔ͢Δݚڀʹैࣄ
    w ϢʔβΠϯλϑΣʔεɼײੑ৘ใֶɼը૾৘ใॲཧɼιϑτ΢ΣΞ޻
    ֶɼߦಈ৘ใ෼ੳɼͳͲ

    View Slide

  3. $PQZSJHIU˜+VO*JP
    ຊ೔ͷ಺༰
    w ΠϯλϑΣʔεʹ஫໨ͨ͠*5ڭҭ
    w ؔ਺ఆ͔ٛΒ8FCΞϓϦ·Ͱ
    w ࠷ۙͷΞϓϦߏஙࣄྫ
    w ͍͔ͭ͘ͷ۩ମྫΛ঺հ
    w ΦϯϥΠϯͰߦ͏ϓϩάϥϛϯάԋश
    w ΦϯϥΠϯͰʮصؒ८ճʯΛͲ͏͢Δ͔ʁ

    View Slide

  4. ΠϯλϑΣʔεʹ

    ஫໨ͨ͠*5ڭҭ

    ࿩୊

    View Slide

  5. $PQZSJHIU˜+VO*JP
    ϝΠϯςʔϚ
    w ਓؒͱγεςϜͷΠϯλϥΫγϣϯݚڀ

    View Slide

  6. $PQZSJHIU˜+VO*JP
    ͭͷํ޲ੑ

    View Slide

  7. $PQZSJHIU˜+VO*JP
    ਓ͔ؒΒγεςϜΛݟΔ
    w ਓ͕ؒ࢖͍΍͍͢γεςϜͷ͋Γํͱ͸ʁ
    w Ωʔϫʔυ
    w ϢʔβΠϯλϑΣʔε
    w ਓؒத৺ઃܭ
    w ϢʔβϏϦςΟ
    w ϢʔβɾΤΫεϖϦΤϯεʢ69ʣ
    w σβΠϯࢥߟ

    View Slide

  8. $PQZSJHIU˜+VO*JP
    γεςϜ͔ΒਓؒʢࣾձʣΛݟΔ
    w ਓؒͷߦಈΛγεςϜͰ෼ੳ͢Δ
    w Ωʔϫʔυ
    w ࣾձ৘ใֶ
    w ܭྔࣾձֶ
    w ߦಈ৘ใ෼ੳ
    w ߦಈ؍࡯ࣨʢ'ɼࣨʣ
    w $(.ʢ$POTVNFS(FOFSBUFE.FEJBʣ

    View Slide

  9. $PQZSJHIU˜+VO*JP
    ΠϯλϑΣʔεʹண໨ͨ͠*5ڭҭ
    w ϓϩάϥϜͷॻ͖ํΛ͚֮͑ͨͩͰ͸ΞϓϦ΍
    γεςϜΛ࡞ΕΔΑ͏ʹ͸ͳΒͳ͍
    w ͳ͔ͥʁ
    w ͦΕ͸ϓϩάϥϜͷॻ͖ํҎ֎ʹ͍Ζ͍Ζͱ਎
    ʹ෇͚ͳ͚Ε͹ͳΒͳ͍஌͕ࣝ͋Δ͔Βʂ
    w Ͳ͏ͨ͠Β࡞ΕΔΑ͏ʹͳΔ͔ʁ
    w ͜͜Ͱ͸ʮΠϯλϑΣʔεʯʹண໨ͯ͠ɼஈ֊
    తʹशಘ͢ΔಓےΛݕ౼͢Δ

    View Slide

  10. $PQZSJHIU˜+VO*JP
    ॳֶऀ๊͕͑Δ໰୊ҙࣝ
    w ʮϓϩάϥϛϯάجૅʯͰϓϩάϥϛϯά
    ΛֶΜͰ΋ɼΞϓϦ΍γεςϜΛ࡞ΕΔΑ
    ͏ʹͳΒͳ͍ʜʜ8IZʁ
    w ৘ใγεςϜͷϞσϧΛৼΓฦΔ

    View Slide

  11. $PQZSJHIU˜+VO*JP
    ϓϩάϥϛϯάجૅʁ

    Basic Programming Course focuses


    on the knowledge only in this scope

    View Slide

  12. $PQZSJHIU˜+VO*JP
    γεςϜ։ൃʹඞཁͳ஌ࣝ
    w ϓϩάϥϜͷॻ͖ํˡϓϩάϥϛϯάجૅ
    w ΄͔ʹ਎ʹ෇͚ͳ͚Ε͹ͳΒͳ͍͜ͱ
    w ద੾͔ͭޮ཰తͳϩδοΫͷߏங
    w ܭࢉਫ਼౓΍ޡࠩɼίʔυମܥͷબ୒ͳͲ
    w σʔλͷೖग़ྗʢΠϯλϑΣʔεʣ
    w σʔλͷӬଓԽʢσʔλϕʔεͷར༻ʣ
    w Τϥʔॲཧɼྫ֎ॲཧɼηΩϡϦςΟରԠ
    w ςετ΍։ൃख๏ͷڞ༗ʢιϑτ΢ΣΞ޻ֶʣ
    w ϓϩδΣΫτͷϚωδϝϯτɼFUDʜʜ

    View Slide

  13. $PQZSJHIU˜+VO*JP
    w ΠϯλϑΣʔεͷߏஙʹؔ͢Δ஌ࣝͷशಘ
    ΠϯλϑΣʔεʹண໨

    Interface

    View Slide

  14. $PQZSJHIU˜+VO*JP
    -FWFMTPG%FWFMPQJOH*OUFSGBDF
    w -FWFMGVODUJPOT
    w -FWFMDPNNBOEMJOFJOUFSGBDF $-*

    w -FWFMDIBUCPU
    w -FWFMHSBQIJDBMVTFSJOUFSGBDF (6*

    w -FWFMXFCBQQMJDBUJPO

    View Slide

  15. $PQZSJHIU˜+VO*JP
    -FWFMGVODUJPOT
    w ZG Y

    w 'VODUJPOEFGJOJUJPO JO1ZUIPO

    def square(x):

    y = x * x

    return y

    *OQVU
    1SPDFTT
    0VUQVU

    View Slide

  16. $PQZSJHIU˜+VO*JP
    -FWFM$-*

    *OQVU
    0VUQVU
    1SPDFTT
    *OQVU
    0VUQVU
    *OQVU
    0VUQVU
    ԫ৭͸

    ఆٛ
    ྘৭͸ར༻
    ͱ͍͏ঢ়گΛ
    ͍ࣔͯ͠Δ

    View Slide

  17. $PQZSJHIU˜+VO*JP
    -FWFM$-* DPOU`E

    w 3&1-ʢ3&1-PPQʣͱ΋
    w 3FBEʢ*OQVUʣ
    w &WBMʢ1SPDFTTʣ
    w 1SJOUʢ0VUQVUʣ
    w -PPQʢ'FFECBDLʣ

    ڭҭ্ͷղͷҰͭͱͯ͠

    +VQZUFS/#ʢ΋͘͠͸(PPHMF
    $PMBCPSBUPSZʣ͕ʜʜ

    ͨͩ͠ɼൃలੑ͕ͳ͍

    View Slide

  18. $PQZSJHIU˜+VO*JP
    -FWFMDIBUCPU
    w -*/&#PUX("4
    w -*/&%FWFMPQFSొ࿥
    w (PPHMF"QQT4DSJQU
    ͰɼϨεϙϯεΛฦ͢
    ΞϓϦΛ࡞੒
    w -*/&.FTTBHJOH"1*
    ͰΞϓϦΛొ࿥

    *OQVU
    0VUQVU

    View Slide

  19. $PQZSJHIU˜+VO*JP
    -FWFMDIBUCPU DPOU`E


    *OQVU
    0VUQVU
    1SPDFTT

    View Slide

  20. $PQZSJHIU˜+VO*JP
    -*/&#PUར༻ͷ՝୊
    w ࢖͑ΔΑ͏ʹͳΔ·Ͱ͕ʢ΍΍ʣ໘౗
    w ࣮ࡍͷॲཧΛ੾Γग़͢޻෉͕ඞཁ
    w ྫ͑͹ɼԼهͷΑ͏ʹͯ͠GVOD
    Λ੾Γग़͢
    const in_msg = json.events[0]…

    out_msg = func(in_msg)


    'message': ['Text': out_msg ]]

    View Slide

  21. $PQZSJHIU˜+VO*JP
    -FWFM(6*

    View Slide

  22. $PQZSJHIU˜+VO*JP
    -FWFM(6* DPOU`E

    w Ϟμϯͳ(6*ϓϩάϥϛϯάʹඞཁͳ஌ࣝ
    w 8*.1
    w 8JOEPX*DPO.FOV1PJOUFS
    w 8JEHFUʢEJTQMBZDPNQPOFOUTʣ
    w 1BHFUSBOTJUJPO
    w &WFOUESJWFOQSPHSBNNJOH

    View Slide

  23. $PQZSJHIU˜+VO*JP
    Πϕϯτۦಈܕϓϩάϥϛϯά

    ΫϦοΫΠϕϯτ͕ൃੜ
    clickListener =
    function() { ... }
    ༷ʑͳΠϕϯτ͕ൃੜ
    PO bESBH3FMFBTF&OE`ʜ

    Ͱɼ%SBHBOE%SPQޙͷॲཧΛ
    هड़
    ʮ`YYY`Πϕϯτ͕ൃੜͨ͠Βɼ
    GVODUJPO
    \ʜ^Λ࣮ࢪ͢Δʯ
    ͱ͍͏ϧʔϧͰ݁ͼ͚ͭΔʹ
    BEE&WFOU-JTUFOFS
    ϝιου

    View Slide

  24. $PQZSJHIU˜+VO*JP
    (6*ϓϩάϥϛϯάͷ՝୊
    w *OQVUͱ0VUQVU͕൑વҰମͰ͋Δ఺͕ɼ෼͔Γʹ͍͘
    w ؀ڥ੔උ͕ʢ΍΍ʣ໘౗
    w ϓϩάϥϛϯάํ๏͕؀ڥʹେ͖͘ґଘ
    w ΦϒδΣΫτࢦ޲ͱ͸૬ੑ͕Α͍
    w ࿈݁ɾ෼ذɾ൓෮ɾݺग़ͷߏ଄Խϓϩάϥϛϯάʢͱ
    ͘ʹʮ࿈݁ʯʜʜ্͔Βॱ൪ʹ࣮ߦ͞ΕΔʣʹ਌͠Μ
    Ͱ͍ΔͱΠϕϯτۦಈܕͷཧղʹ͸ൃ૝ͷస׵͕ඞཁ
    w ͨͩ͠ɼ8FCΞϓϦ΋جຊతʹ͸Πϕϯτۦಈܕ

    View Slide

  25. $PQZSJHIU˜+VO*JP
    -FWFMXFCBQQMJDBUJPO
    w ҰൠతͳΞϓϦέʔγϣϯͱͷҧ͍
    w த৺తͳॲཧ͸αʔό্Ͱಈ࡞͢Δ
    w ϢʔβΠϯλϑΣʔεʹ΢Σϒϒϥ΢βΛ
    ࢖༻
    w ΠϯετʔϧෆཁͰ࢖͑Δ
    w ༷ʑͳΫϥΠΞϯτ؀ڥʹରԠՄೳ
    w ࠷ۙͰ͸ϞόΠϧσόΠε΋λʔήοτʹ

    View Slide

  26. $PQZSJHIU˜+VO*JP
    ҰൠతͳΞϓϦͱ8FCΞϓϦͷҧ͍

    View Slide

  27. $PQZSJHIU˜+VO*JP
    ΫϥΠΞϯτɾαʔόɾγεςϜ

    w $MJFOU4FSWFSʢ$4γεςϜʣ
    ϦΫΤετʹԠͯ͡ಈ࡞
    ҰछͷΠϕϯτۦಈܕϓϩάϥϛϯά
    ͱ͍͑Δ
    *OQVU
    1SPDFTT
    0VUQVU

    View Slide

  28. $PQZSJHIU˜+VO*JP
    γϯϓϧͳ8FCΞϓϦ

    *OQVU
    0VUQVU
    *OQVU
    1SPDFTT
    0VUQVU

    View Slide

  29. $PQZSJHIU˜+VO*JP
    8FCΞϓϦͷ՝୊
    w *OQVU΁ͷΞϓϩʔν͕ʢ΍΍ʣෳࡶ
    w )551Λཧղ͢Δඞཁ͕͋Δ
    w (&5ͱ1045ͷҧ͍
    w ύεύϥϝʔλɼΫΤϦύϥϝʔλɼϦΫ
    Τετύϥϝʔλͷҧ͍ͳͲ
    w ϧʔςΟϯάͷ֓೦ΛֶͿඞཁ͕͋Δ
    w ηΩϡϦςΟͷجૅΛ஌͓͔ͬͯͶ͹ͳΒͳ͍
    w ωοτΛհͯ͠ѱҙ͋ΔୈࡾऀʹΞΫηε͞Ε
    ΔՄೳੑ͕͋ΔͨΊ

    View Slide

  30. $PQZSJHIU˜+VO*JP
    8FCΞϓϦͷ՝୊ DPOU`E

    w 0VUQVU΁ͷΞϓϩʔν΋ʢ΍΍ʣෳࡶ
    w Ϧονͳը໘ੜ੒ʹ͸ςϯϓϨʔτඞਢ
    w )551ͷࠜຊతͳ՝୊ͱͦͷରԠ͕ɼෳࡶ
    w ʮߦ͍ͬͯ͜ʯܕͷ௨৴Ϟσϧ
    w ηογϣϯ؅ཧͳͲͷ޻෉͸ޙ෇͚
    w ͦΕΒΛղফ͢Δ"+"9ͳͲΛཧղ͢Δʹ
    ͸ϑϨʔϜϫʔΫͷར༻͕ඞਢ

    View Slide

  31. $PQZSJHIU˜+VO*JP
    .7$Ϟσϧ
    w ΞϓϦέʔγϣϯͷߏ੒ΛɼϞσϧʢ.PEFMʣɼϏ
    ϡʔʢ7JFXʣɼίϯτϩʔϥʢ$POUSPMMFSʣͷͭ
    ʹ෼͚ͯઃܭ͢Δख๏
    w ೥୅ʹθϩοΫεͷύϩΞϧτݚڀॴʢ9FSPY
    1"3$ʣͰ"MBO$VSUJT,BZ͕։ൃͨ͠4NBMMUBMLʹ୺
    Λൃ͢Δߟ͑ํ
    w ଟ͘ͷ8FCΞϓϦέʔγϣϯ։ൃϑϨʔϜϫʔΫͰ
    ࠾༻͞Ε͍ͯΔ
    w ͳͷͰɼ͖ͪΜͱཧղ͓ͯ͘͠ͱΑ͍

    View Slide

  32. $PQZSJHIU˜+VO*JP
    .7$ϞσϧΛར༻͢ΔϝϦοτ
    w σʔλϞσϧઃܭ
    w γεςϜσβΠϯͷࠜװΛͳ͢
    w σʔλઃܭ͕͔ͬ͠Γ͍ͯ͠Ε͹ɼΞϓϦͷมߋ͸গͳ
    ͍
    w Ϗϡʔઃܭ
    w ϢʔβɾΠϯλϑΣʔεʢը໘ʣ෦෼ઃܭ͸σβΠφ୲౰
    w ίϯτϩʔϥઃܭ
    w ௨ৗ͸͋·ΓखΛՃ͑Δඞཁ͸ͳ͍ʢଟ͘ͷΞϓϦͰί
    ϯτϩʔϧͷϩδοΫ͸΄΅ಉ͡ʣ

    View Slide

  33. $PQZSJHIU˜+VO*JP
    Practical Programming must take


    error handling into account!
    ຊϞσϧ͕ෆ଍͍ͯ͠Δ఺

    &SSPS-PH

    View Slide

  34. ࠷ۙͷߏஙࣄྫ

    ࿩୊

    View Slide

  35. $PQZSJHIU˜+VO*JP
    ݸਓ৘ใอޢήʔϜ

    View Slide

  36. $PQZSJHIU˜+VO*JP
    ݸਓ৘ใอޢήʔϜ
    w ೥ੜͷνʔϜ͕࡞੒
    w ൧ඌ͸ʮΞΠσΞʯͷΈఏڙ
    w +BWB4DSJQUʢ7VFKTʣ

    ʴ(PPHMF'JSFCBTFͰߏங
    w )FSPLVͰӡ༻
    w ๏ֶ෦ɾཧ޻ֶ෦ͷઌੜํͱͷֶ಺ڞಉݚ
    ڀͷҰ؀ͱͯ͠ɼֶੜ΋ࢀՃ͍ͯ͠Δ

    View Slide

  37. $PQZSJHIU˜+VO*JP
    өըϙελʔͷҹ৅ධՁ

    View Slide

  38. $PQZSJHIU˜+VO*JP
    өըϙελʔͷҹ৅ධՁ
    w ೥ੜ͕ΞΠσΞ
    w ʢ࣮૷͸΄΅ࢲʜʜXʣ
    w ೥ੜ޲͚ʹआΓ͍ͯΔαʔό্ʹߏங
    w +2VFSZʢϑϩϯτΤϯυʣͱ3BJMTʢόο
    ΫΤϯυʣͰߏங
    w өըϙελʔͷஶ࡞ݖ໰୊΋ΫϦΞ
    w 5.%CΛར༻

    View Slide

  39. $PQZSJHIU˜+VO*JP
    ՝୊ͷෛՙΛՄࢹԽ

    View Slide

  40. $PQZSJHIU˜+VO*JP
    ՝୊ͷෛՙΛՄࢹԽ

    View Slide

  41. $PQZSJHIU˜+VO*JP
    ՝୊ͷෛՙΛՄࢹԽ
    w ೥ੜͷνʔϜ͕࡞੒
    w ϑϩϯτଆ͸5BNQFSNPOLFZͰطଘͷ-.4ʹࡉ޻
    w -.4͔Βμ΢ϯϩʔυͨ͠ϒϥ΢βଆͰɼ৘ใΛ
    औಘ͢ΔϓϩʔϒΛೖΕ͍ͯΔ
    w όοΫΤϯυ͸3BJMTͰߏங
    w )FSPLVͰӡ༻
    w ڭһ΁ͷઆ໌΍ӡ༻ΛͲ͏͢Δ͔Λݕ౼͍ͤͯ͞
    Δ

    View Slide

  42. ΦϯϥΠϯͰͷ
    ϓϩάϥϛϯάԋश

    ࿩୊

    View Slide

  43. $PQZSJHIU˜+VO*JP
    ڭҭվળͷ໨తɾ໨ඪ
    w "*ਓࡐҭ੒ʹؔ͢Δ
    ੓ࡦ

    ˠʮ"*ɾσʔλαΠ
    Τϯεશֶϓϩάϥ
    ϜʯΛ࣮ࢪ
    w J%4ϓϩάϥϜ
    w ʙ೥࣮࣍ࢪɼ

    શֶతԋश

    View Slide

  44. $PQZSJHIU˜+VO*JP
    தԝେֶͷֶ෦ߏ੒
    w ଟຎΩϟϯύε
    w ๏ֶ෦
    w ܦࡁֶ෦
    w ঎ֶ෦
    w จֶ෦
    w ૯߹੓ࡦֶ෦
    w ࠃࡍܦӦֶ෦

    w ޙָԂΩϟϯύε
    w ཧ޻ֶ෦
    w ࢢ୩ాொΩϟϯύε
    w ࠃࡍ৘ใֶ෦

    View Slide

  45. $PQZSJHIU˜+VO*JP
    શֶର৅ͷ՝୊
    w ࢄΒ͹ΔΩϟϯύε໰୊

    View Slide

  46. $PQZSJHIU˜+VO*JP
    ΦϯϥΠϯԋशͷ޻෉

    *JP +
    0#44IBSFBOE.VMUJ7JFX5XP.FUIPETGPS4IBSJOH4UVEFOU8PSLJO

    %JTUBOU5FBDIJOH 5IFUI*OUFSOBUJPOBM$POGFSFODFPOF4PDJFUZ &4
    0OMJOF

    View Slide

  47. $PQZSJHIU˜+VO*JP
    तۀͷ֓ཁ
    w "*ɾσʔλαΠΤϯεԋश
    w J%4ʢ*OUFSNFEJBUF1SPHSBNGPS%BUB
    4DJFODFBOE"*ʣϓϩάϥϜ
    w ʙ೥ੜɼ೥ؒͷθϛφʔϧ
    w શֶԣஅతθϛ׆ಈ
    w ೥౓͔Βɼθϛʢ൧ඌͷ୲౰θϛ
    ΛؚΉʣ͕ελʔτ

    View Slide

  48. $PQZSJHIU˜+VO*JP
    ୲౰͍ͯ͠Δԋश
    w શֶ͔ΒडߨऀΛืूʢཤमऀ໊ʣ
    w ࣗ෼ͷॴଐֶ෦͔ΒΤϯτϦͳ͠ʂ 5@5

    w ༧૝Ҏ্ʹ*5εΩϧ͸ऑͦ͏ͳͷͰɼ·ͣ͸
    ͔ͦ͜Βʜʜ
    w ʢҰ෦ͷֶੜ͸ͦΕͳΓʹεΩϧΛ͍࣋ͬͯ
    ΔΑ͏ͳͷͰɼֶੜಉ࢜ͷֶͼ߹͍ʹظ଴ʣ
    w ৘ใॲཧͷجૅɼσʔλͷѻ͍ํɼཧ࿦తഎ
    ܠͳͲɼڭ͑Δ΂͖ཁૉ͸ଟ͍

    View Slide

  49. $PQZSJHIU˜+VO*JP
    ֶशঢ়گҰཡϓϥοτϑΥʔϜ
    w .VMUJ7JFXɹIUUQTXXXJJPKVODPN.VMUJ7JFXNWIUNM
    w 8FCΞϓϦͱͯ͠ఏҊ

    View Slide

  50. $PQZSJHIU˜+VO*JP
    ڭҭޮՌͱͦͷ֬ೝ

    View Slide

  51. $PQZSJHIU˜+VO*JP
    ֶੜʹΑΔධՁ

    View Slide

  52. $PQZSJHIU˜+VO*JP
    ֶੜʹΑΔධՁ

    View Slide

  53. $PQZSJHIU˜+VO*JP
    ֶੜʹΑΔධՁ

    View Slide

  54. $PQZSJHIU˜+VO*JP
    ·ͱΊ
    w ΠϯλϑΣʔεʹ஫໨ͨ͠*5ڭҭʹ͍ͭͯ
    આ໌͠·ͨ͠
    w 8FCΞϓϦߏஙʹΑΔ*5ڭҭͷྫͱͯ͠

    ࠷ۙͷΞϓϦߏஙࣄྫΛ঺հ͠·ͨ͠
    w ΦϯϥΠϯͰߦ͏ϓϩάϥϛϯάԋशʹͭ
    ͍ͯղઆ͠·ͨ͠
    w )BQQZ)BDLJOHʘ ?P?
    ʗ

    View Slide