$30 off During Our Annual Pro Sale. View Details »

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ڭҭ

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

    w ਓؒத৺ઃܭਪਐػߏೝఆਓؒத৺ઃܭઐ໳Ո w ܦྺ w ೥݄ 
 ʙ೥݄ɹגࣜձࣾࡾඛ૯߹ݚڀॴۈ຿ w ೥݄ʙɹதԝେֶจֶ෦ࣾձ৘ใֶઐ߈ w ೥݄ʙɹݱ৬ w ઐ໳෼໺ w γεςϜͱਓؒͷΠϯλϥΫγϣϯʹؔ͢Δݚڀʹैࣄ w ϢʔβΠϯλϑΣʔεɼײੑ৘ใֶɼը૾৘ใॲཧɼιϑτ΢ΣΞ޻ ֶɼߦಈ৘ใ෼ੳɼͳͲ 
  3. $PQZSJHIU˜+VO*JP ຊ೔ͷ಺༰ w ΠϯλϑΣʔεʹ஫໨ͨ͠*5ڭҭ w ؔ਺ఆ͔ٛΒ8FCΞϓϦ·Ͱ w ࠷ۙͷΞϓϦߏஙࣄྫ w ͍͔ͭ͘ͷ۩ମྫΛ঺հ

    w ΦϯϥΠϯͰߦ͏ϓϩάϥϛϯάԋश w ΦϯϥΠϯͰʮصؒ८ճʯΛͲ͏͢Δ͔ʁ 
  4. ΠϯλϑΣʔεʹ 
 ஫໨ͨ͠*5ڭҭ  ࿩୊

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

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

  7. $PQZSJHIU˜+VO*JP ਓ͔ؒΒγεςϜΛݟΔ w ਓ͕ؒ࢖͍΍͍͢γεςϜͷ͋Γํͱ͸ʁ w Ωʔϫʔυ w ϢʔβΠϯλϑΣʔε w ਓؒத৺ઃܭ

    w ϢʔβϏϦςΟ w ϢʔβɾΤΫεϖϦΤϯεʢ69ʣ w σβΠϯࢥߟ 
  8. $PQZSJHIU˜+VO*JP γεςϜ͔ΒਓؒʢࣾձʣΛݟΔ w ਓؒͷߦಈΛγεςϜͰ෼ੳ͢Δ w Ωʔϫʔυ w ࣾձ৘ใֶ w ܭྔࣾձֶ

    w ߦಈ৘ใ෼ੳ w ߦಈ؍࡯ࣨʢ'ɼࣨʣ w $(.ʢ$POTVNFS(FOFSBUFE.FEJBʣ 
  9. $PQZSJHIU˜+VO*JP ΠϯλϑΣʔεʹண໨ͨ͠*5ڭҭ w ϓϩάϥϜͷॻ͖ํΛ͚֮͑ͨͩͰ͸ΞϓϦ΍ γεςϜΛ࡞ΕΔΑ͏ʹ͸ͳΒͳ͍ w ͳ͔ͥʁ w ͦΕ͸ϓϩάϥϜͷॻ͖ํҎ֎ʹ͍Ζ͍Ζͱ਎ ʹ෇͚ͳ͚Ε͹ͳΒͳ͍஌͕ࣝ͋Δ͔Βʂ

    w Ͳ͏ͨ͠Β࡞ΕΔΑ͏ʹͳΔ͔ʁ w ͜͜Ͱ͸ʮΠϯλϑΣʔεʯʹண໨ͯ͠ɼஈ֊ తʹशಘ͢ΔಓےΛݕ౼͢Δ 
  10. $PQZSJHIU˜+VO*JP ॳֶऀ๊͕͑Δ໰୊ҙࣝ w ʮϓϩάϥϛϯάجૅʯͰϓϩάϥϛϯά ΛֶΜͰ΋ɼΞϓϦ΍γεςϜΛ࡞ΕΔΑ ͏ʹͳΒͳ͍ʜʜ8IZʁ w ৘ใγεςϜͷϞσϧΛৼΓฦΔ 

  11. $PQZSJHIU˜+VO*JP ϓϩάϥϛϯάجૅʁ  Basic Programming Course focuses on the knowledge

    only in this scope
  12. $PQZSJHIU˜+VO*JP γεςϜ։ൃʹඞཁͳ஌ࣝ w ϓϩάϥϜͷॻ͖ํˡϓϩάϥϛϯάجૅ w ΄͔ʹ਎ʹ෇͚ͳ͚Ε͹ͳΒͳ͍͜ͱ w ద੾͔ͭޮ཰తͳϩδοΫͷߏங w ܭࢉਫ਼౓΍ޡࠩɼίʔυମܥͷબ୒ͳͲ

    w σʔλͷೖग़ྗʢΠϯλϑΣʔεʣ w σʔλͷӬଓԽʢσʔλϕʔεͷར༻ʣ w Τϥʔॲཧɼྫ֎ॲཧɼηΩϡϦςΟରԠ w ςετ΍։ൃख๏ͷڞ༗ʢιϑτ΢ΣΞ޻ֶʣ w ϓϩδΣΫτͷϚωδϝϯτɼFUDʜʜ 
  13. $PQZSJHIU˜+VO*JP w ΠϯλϑΣʔεͷߏஙʹؔ͢Δ஌ࣝͷशಘ ΠϯλϑΣʔεʹண໨  Interface

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

    w -FWFMHSBQIJDBMVTFSJOUFSGBDF (6*  w -FWFMXFCBQQMJDBUJPO 
  15. $PQZSJHIU˜+VO*JP -FWFMGVODUJPOT w ZG Y  w 'VODUJPOEFGJOJUJPO JO1ZUIPO 

    def square(x):
 y = x * x
 return y  *OQVU 1SPDFTT 0VUQVU
  16. $PQZSJHIU˜+VO*JP -FWFM$-*  *OQVU 0VUQVU 1SPDFTT *OQVU 0VUQVU *OQVU 0VUQVU

    ԫ৭͸ 
 ఆٛ ྘৭͸ར༻ ͱ͍͏ঢ়گΛ ͍ࣔͯ͠Δ
  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ʣ͕ʜʜ 
 ͨͩ͠ɼൃలੑ͕ͳ͍
  18. $PQZSJHIU˜+VO*JP -FWFMDIBUCPU w -*/&#PUX("4 w -*/&%FWFMPQFSొ࿥ w (PPHMF"QQT4DSJQU ͰɼϨεϙϯεΛฦ͢ ΞϓϦΛ࡞੒

    w -*/&.FTTBHJOH"1* ͰΞϓϦΛొ࿥  *OQVU 0VUQVU
  19. $PQZSJHIU˜+VO*JP -FWFMDIBUCPU DPOU`E  *OQVU 0VUQVU 1SPDFTT

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

    in_msg = json.events[0]…
 out_msg = func(in_msg)
 … 'message': ['Text': out_msg ]] 
  21. $PQZSJHIU˜+VO*JP -FWFM(6* 

  22. $PQZSJHIU˜+VO*JP -FWFM(6* DPOU`E w Ϟμϯͳ(6*ϓϩάϥϛϯάʹඞཁͳ஌ࣝ w 8*.1 w 8JOEPX*DPO.FOV1PJOUFS w

    8JEHFUʢEJTQMBZDPNQPOFOUTʣ w 1BHFUSBOTJUJPO w &WFOUESJWFOQSPHSBNNJOH 
  23. $PQZSJHIU˜+VO*JP Πϕϯτۦಈܕϓϩάϥϛϯά  ΫϦοΫΠϕϯτ͕ൃੜ clickListener = function() { ... }

    ༷ʑͳΠϕϯτ͕ൃੜ PO bESBH3FMFBTF&OE`ʜ  Ͱɼ%SBHBOE%SPQޙͷॲཧΛ هड़ ʮ`YYY`Πϕϯτ͕ൃੜͨ͠Βɼ GVODUJPO \ʜ^Λ࣮ࢪ͢Δʯ ͱ͍͏ϧʔϧͰ݁ͼ͚ͭΔʹ BEE&WFOU-JTUFOFS ϝιου
  24. $PQZSJHIU˜+VO*JP (6*ϓϩάϥϛϯάͷ՝୊ w *OQVUͱ0VUQVU͕൑વҰମͰ͋Δ఺͕ɼ෼͔Γʹ͍͘ w ؀ڥ੔උ͕ʢ΍΍ʣ໘౗ w ϓϩάϥϛϯάํ๏͕؀ڥʹେ͖͘ґଘ w ΦϒδΣΫτࢦ޲ͱ͸૬ੑ͕Α͍

    w ࿈݁ɾ෼ذɾ൓෮ɾݺग़ͷߏ଄Խϓϩάϥϛϯάʢͱ ͘ʹʮ࿈݁ʯʜʜ্͔Βॱ൪ʹ࣮ߦ͞ΕΔʣʹ਌͠Μ Ͱ͍ΔͱΠϕϯτۦಈܕͷཧղʹ͸ൃ૝ͷస׵͕ඞཁ w ͨͩ͠ɼ8FCΞϓϦ΋جຊతʹ͸Πϕϯτۦಈܕ 
  25. $PQZSJHIU˜+VO*JP -FWFMXFCBQQMJDBUJPO w ҰൠతͳΞϓϦέʔγϣϯͱͷҧ͍ w த৺తͳॲཧ͸αʔό্Ͱಈ࡞͢Δ w ϢʔβΠϯλϑΣʔεʹ΢Σϒϒϥ΢βΛ ࢖༻ w

    ΠϯετʔϧෆཁͰ࢖͑Δ w ༷ʑͳΫϥΠΞϯτ؀ڥʹରԠՄೳ w ࠷ۙͰ͸ϞόΠϧσόΠε΋λʔήοτʹ 
  26. $PQZSJHIU˜+VO*JP ҰൠతͳΞϓϦͱ8FCΞϓϦͷҧ͍ 

  27. $PQZSJHIU˜+VO*JP ΫϥΠΞϯτɾαʔόɾγεςϜ  w $MJFOU4FSWFSʢ$4γεςϜʣ ϦΫΤετʹԠͯ͡ಈ࡞ ҰछͷΠϕϯτۦಈܕϓϩάϥϛϯά ͱ͍͑Δ *OQVU 1SPDFTT

    0VUQVU
  28. $PQZSJHIU˜+VO*JP γϯϓϧͳ8FCΞϓϦ  *OQVU 0VUQVU *OQVU 1SPDFTT 0VUQVU

  29. $PQZSJHIU˜+VO*JP 8FCΞϓϦͷ՝୊ w *OQVU΁ͷΞϓϩʔν͕ʢ΍΍ʣෳࡶ w )551Λཧղ͢Δඞཁ͕͋Δ w (&5ͱ1045ͷҧ͍ w ύεύϥϝʔλɼΫΤϦύϥϝʔλɼϦΫ

    Τετύϥϝʔλͷҧ͍ͳͲ w ϧʔςΟϯάͷ֓೦ΛֶͿඞཁ͕͋Δ w ηΩϡϦςΟͷجૅΛ஌͓͔ͬͯͶ͹ͳΒͳ͍ w ωοτΛհͯ͠ѱҙ͋ΔୈࡾऀʹΞΫηε͞Ε ΔՄೳੑ͕͋ΔͨΊ 
  30. $PQZSJHIU˜+VO*JP 8FCΞϓϦͷ՝୊ DPOU`E w 0VUQVU΁ͷΞϓϩʔν΋ʢ΍΍ʣෳࡶ w Ϧονͳը໘ੜ੒ʹ͸ςϯϓϨʔτඞਢ w )551ͷࠜຊతͳ՝୊ͱͦͷରԠ͕ɼෳࡶ w

    ʮߦ͍ͬͯ͜ʯܕͷ௨৴Ϟσϧ w ηογϣϯ؅ཧͳͲͷ޻෉͸ޙ෇͚ w ͦΕΒΛղফ͢Δ"+"9ͳͲΛཧղ͢Δʹ ͸ϑϨʔϜϫʔΫͷར༻͕ඞਢ 
  31. $PQZSJHIU˜+VO*JP .7$Ϟσϧ w ΞϓϦέʔγϣϯͷߏ੒ΛɼϞσϧʢ.PEFMʣɼϏ ϡʔʢ7JFXʣɼίϯτϩʔϥʢ$POUSPMMFSʣͷͭ ʹ෼͚ͯઃܭ͢Δख๏ w ೥୅ʹθϩοΫεͷύϩΞϧτݚڀॴʢ9FSPY 1"3$ʣͰ"MBO$VSUJT,BZ͕։ൃͨ͠4NBMMUBMLʹ୺ Λൃ͢Δߟ͑ํ

    w ଟ͘ͷ8FCΞϓϦέʔγϣϯ։ൃϑϨʔϜϫʔΫͰ ࠾༻͞Ε͍ͯΔ w ͳͷͰɼ͖ͪΜͱཧղ͓ͯ͘͠ͱΑ͍ 
  32. $PQZSJHIU˜+VO*JP .7$ϞσϧΛར༻͢ΔϝϦοτ w σʔλϞσϧઃܭ w γεςϜσβΠϯͷࠜװΛͳ͢ w σʔλઃܭ͕͔ͬ͠Γ͍ͯ͠Ε͹ɼΞϓϦͷมߋ͸গͳ ͍ w

    Ϗϡʔઃܭ w ϢʔβɾΠϯλϑΣʔεʢը໘ʣ෦෼ઃܭ͸σβΠφ୲౰ w ίϯτϩʔϥઃܭ w ௨ৗ͸͋·ΓखΛՃ͑Δඞཁ͸ͳ͍ʢଟ͘ͷΞϓϦͰί ϯτϩʔϧͷϩδοΫ͸΄΅ಉ͡ʣ 
  33. $PQZSJHIU˜+VO*JP Practical Programming must take error handling into account! ຊϞσϧ͕ෆ଍͍ͯ͠Δ఺

     &SSPS-PH
  34. ࠷ۙͷߏஙࣄྫ  ࿩୊

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

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

    w )FSPLVͰӡ༻ w ๏ֶ෦ɾཧ޻ֶ෦ͷઌੜํͱͷֶ಺ڞಉݚ ڀͷҰ؀ͱͯ͠ɼֶੜ΋ࢀՃ͍ͯ͠Δ 
  37. $PQZSJHIU˜+VO*JP өըϙελʔͷҹ৅ධՁ 

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

    ΫΤϯυʣͰߏங w өըϙελʔͷஶ࡞ݖ໰୊΋ΫϦΞ w 5.%CΛར༻ 
  39. $PQZSJHIU˜+VO*JP ՝୊ͷෛՙΛՄࢹԽ 

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

  41. $PQZSJHIU˜+VO*JP ՝୊ͷෛՙΛՄࢹԽ w ೥ੜͷνʔϜ͕࡞੒ w ϑϩϯτଆ͸5BNQFSNPOLFZͰطଘͷ-.4ʹࡉ޻ w -.4͔Βμ΢ϯϩʔυͨ͠ϒϥ΢βଆͰɼ৘ใΛ औಘ͢ΔϓϩʔϒΛೖΕ͍ͯΔ w

    όοΫΤϯυ͸3BJMTͰߏங w )FSPLVͰӡ༻ w ڭһ΁ͷઆ໌΍ӡ༻ΛͲ͏͢Δ͔Λݕ౼͍ͤͯ͞ Δ 
  42. ΦϯϥΠϯͰͷ ϓϩάϥϛϯάԋश  ࿩୊

  43. $PQZSJHIU˜+VO*JP ڭҭվળͷ໨తɾ໨ඪ w "*ਓࡐҭ੒ʹؔ͢Δ ੓ࡦ 
 ˠʮ"*ɾσʔλαΠ Τϯεશֶϓϩάϥ ϜʯΛ࣮ࢪ w

    J%4ϓϩάϥϜ w ʙ೥࣮࣍ࢪɼ 
 શֶతԋश 
  44. $PQZSJHIU˜+VO*JP தԝେֶͷֶ෦ߏ੒ w ଟຎΩϟϯύε w ๏ֶ෦ w ܦࡁֶ෦ w ঎ֶ෦

    w จֶ෦ w ૯߹੓ࡦֶ෦ w ࠃࡍܦӦֶ෦  w ޙָԂΩϟϯύε w ཧ޻ֶ෦ w ࢢ୩ాொΩϟϯύε w ࠃࡍ৘ใֶ෦
  45. $PQZSJHIU˜+VO*JP શֶର৅ͷ՝୊ w ࢄΒ͹ΔΩϟϯύε໰୊ 

  46. $PQZSJHIU˜+VO*JP ΦϯϥΠϯԋशͷ޻෉  *JP +  0#44IBSFBOE.VMUJ7JFX5XP.FUIPETGPS4IBSJOH4UVEFOU8PSLJO 
 %JTUBOU5FBDIJOH 5IFUI*OUFSOBUJPOBM$POGFSFODFPOF4PDJFUZ

    &4 0OMJOF
  47. $PQZSJHIU˜+VO*JP तۀͷ֓ཁ w "*ɾσʔλαΠΤϯεԋश w J%4ʢ*OUFSNFEJBUF1SPHSBNGPS%BUB 4DJFODFBOE"*ʣϓϩάϥϜ w ʙ೥ੜɼ೥ؒͷθϛφʔϧ w

    શֶԣஅతθϛ׆ಈ w ೥౓͔Βɼθϛʢ൧ඌͷ୲౰θϛ ΛؚΉʣ͕ελʔτ 
  48. $PQZSJHIU˜+VO*JP ୲౰͍ͯ͠Δԋश w શֶ͔ΒडߨऀΛืूʢཤमऀ໊ʣ w ࣗ෼ͷॴଐֶ෦͔ΒΤϯτϦͳ͠ʂ 5@5  w ༧૝Ҏ্ʹ*5εΩϧ͸ऑͦ͏ͳͷͰɼ·ͣ͸

    ͔ͦ͜Βʜʜ w ʢҰ෦ͷֶੜ͸ͦΕͳΓʹεΩϧΛ͍࣋ͬͯ ΔΑ͏ͳͷͰɼֶੜಉ࢜ͷֶͼ߹͍ʹظ଴ʣ w ৘ใॲཧͷجૅɼσʔλͷѻ͍ํɼཧ࿦తഎ ܠͳͲɼڭ͑Δ΂͖ཁૉ͸ଟ͍ 
  49. $PQZSJHIU˜+VO*JP ֶशঢ়گҰཡϓϥοτϑΥʔϜ w .VMUJ7JFXɹIUUQTXXXJJPKVODPN.VMUJ7JFXNWIUNM w 8FCΞϓϦͱͯ͠ఏҊ 

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

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

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

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

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

    ΦϯϥΠϯͰߦ͏ϓϩάϥϛϯάԋशʹͭ ͍ͯղઆ͠·ͨ͠ w )BQQZ)BDLJOHʘ ?P? ʗ