2015PrgC34vf

From rtgkomArkiv
Jump to: navigation, search

Contents

"Aflevering af dokumentation for Hello World med MIT App Inventor" og "Start på eksamensprojektet", Gkb 12:36, 25 January 2016 (CET)[edit]

Aflevering af dokumentation for Hello World med MIT App Inventor[edit]

Aflevering på Lectio[edit]

Aflever et link, i en plain tekstfil, til din dokumentation af arbejdet med MIT App Inventor på dit StudieWeb. Filen kan f.eks. hedde link_til_aflevering_paa_mit_studieweb.txt og linket i den skal ligne http://rtgkom.dk/~gkb/hello_world_med_mit_app_inventor.

Resume af kravene til afleveringen[edit]

  • Lav en Hello World app med MIT App Inventor 2. Husk at indholdet skal være lødigt i alle sammenhænge, fordi vi publiserer appen på internettet!
  • Nyt krav: Tilføje en label øverst i appens GUI med dit navn og klasse. F.eks. Karl Bjarnason, 2015PrgC34. Ellers kan vi jo ikke kende hinandens applikationer fra hinanden når vi har installeret dem på vores telefoner.
  • Afprøv den på en Android device eller vha. emulatoren.
  • Upload et eller flere skærmbilleder som viser både udviklingsmiljøet og din app.
  • Skriv og upload en kort beskrivelse til afleveringsmappen, hello_world_med_mit_app_inventor, på dit StudieWeb. Beskrivelsen kan både handler om værktøjet og hvordan din app virker, men du bestemmer helt selv hvor meget eller lidt du skriver.
  • Bruge en HTML fil med navnet index.html til at samle beskrivelsen og skræmbillederne.
  • HTML filen, altså index.html, og billederne (i PNG! format!!), og hello_world.apk, samt andre filer du bedømmer relevant, skal lægges i afleveringsmappen som jeg har oprettet i din html mappe. Link til billederne og .apk filen fra din index.html, således at din app let kan downloades og installeres på en telefon.
  • HTML filen skal testes hos http://validator.w3.org og være fejlfri og uden warnings.
    • Brug ikke file upload eller direct upload.
    • Brug kun Validate by URI flapsen!!! Webserveren sender nemlig nogen meta information, vistnok en såkaldt HTTP header, med websiden til clienten hos W3 og denne metainformation bruges af testfunktionen hos W3.
  • Inkluder nederst i din index.html fil et link til http://validator.w3.org som viser resultatet af din validering af filen.
    • Hvis du bruger HTML 4.01, så leverer W3 et par eller tre linjer af HTML kode som du kan bruge til at vise at din index.html fil opfylder alle krav til HTML som W3 stiller. Denne HTML kode vises først når din fil er helt fejlfri. Så vises den nederst på valideringssiden og du kan du kopiere den.
    • Hvis du bruger HTML 5, så vises denne HTML kode ikke når din webside er fejlfri. Kopier så bare linket i URL feltet i din browser og indsæt det på din webside.

Start på eksamensprojektet[edit]

Vi har to moduler i dag og vi starter eksamensprojektet formelt i modulet som starter kl. 13:45.

Skolen laver et projektoplæg som definerer rammerne for projektet. Du vælger selv hvad du vil arbejde med i dit projekt, men din projektbeskrivelse skal godkendes af skolen. Der kan arbejdes i grupper og det samme produkt kan bruges til eksamensprojekterne i InfB og PrgC. Se nærmere i bilaget for Programmering C, se her https://www.retsinformation.dk/forms/r0710.aspx?id=132670#B32.

Projektoplægget til eksamensprojektet er her: http://rtgkom.dk/~gkb/pubdoc/2015_2016_PrgC34_oplaeg_til_eksamensprojekt_v01.pdf

Hello World med MIT App Inventor og Android Studio, Gkb 12:12, 18 January 2016 (CET)[edit]

Vi starter med en hurtig afprøvning af MIT App Inventor 2. Hvis vi fortsætter og laver et regulert projekt hvor vi udvikler apps til Android, så regner jeg med at nogle grupper hellere vil bruge Android Studio, og derfor skal vi også prøve at lave en lignende hurtig afprøvning af det udviklingsmiljø i dag.

Hello World med MIT App Inventor 2[edit]

MIT App Inventor 2 kan tilgås på følgende URL: http://appinventor.mit.edu/explore.

Her er et link direkte til beginner-friendly tutorials, hvor der er både video og PDF tutorials, http://appinventor.mit.edu/explore/ai2/beginner-videos.html.

Hvis du ikke har en Android device, så brug emulator-optionen. Det er Option Two i trin nr to,Setting Up App Inventor 2, i vejledningen om hvordan du kommer i gang. Den er her: http://appinventor.mit.edu/explore/get-started.html.

Vi laver en Hello World applikation for at teste/vise/bevise at vi har installeret værktøjerne og kan bruge dem til at lave et program, altså en applikation til en Android device. Funktionaliteten i applikationen kan derfor være meget begrænset, f.eks. ville det være nok at teksten i en label ændres ved tryk på en knap i brugerfladen. Hvis teksten nu ændres til "Hello World!", så er det klart for alle som kender til begrebet Hello World, at de ikke skal forvente noget særligt af applikationen. Den skal bare lige kunne startes, og så, fordi interaktion mellem mennesket og maskinen (appen) er meget vigtigt aspekt (egenskab) ved de fleste apps, så skal den gerne lave noget når brugeren gør noget ved den. Det kan for eksempel være at trykke på en knap. Handlingen som denne begivenhed udløser kan for eksempel være at vise en tekst et sted i brugerfladen, f.eks. på en label.

Du skal dokumentere dit arbejde med at lave denne afprøvning af MIT App Inventor 2 med et eller flere skærmbilleder og forklarende tekst som du lægger op i mappen hello_world_med_mit_app_inventor på dit StudieWeb.

MIT App Inventor blev oprindelig lavet af Google og så adopteret af MIT når Google stoppede udviklingen for nogle år siden. Den nu er kommet i version 2 som lever i webbrowseren.

MIT App Inventor 2, http://ai2.appinventor.mit.edu/, kan sammen med Android applikationen MIT AI2 Companion bruges til at udvikle og afprøve applikationer til Android divices. Pass på at bruge det samme wifi til både din computer og din telefon, når du tester dine apps på telefonen. RTS nettene virker ikke kunne bruges til denne kontakt mellem telefonen og App Inventor. Brug f.eks. vores Apple Airport som hedder MediaLabC3102.

Jeg har lavet en lille Hello World! applikation på følgende måde. Jeg startede et nyt projekt i App Inventor og trak en knap (Button1), en label (Label1) og et input felt (TextBox1) over på den virtuelle telefon i midten af App Inventors brugerflade. Her er et skærmbilled som viser dette.

http://rtgkom.dk/~gkb/billeder/hello_world_med_mit_app_inventor_01_640x537.png ...

Hello World! med Android Studio[edit]

Vi afprøver nu også Android Studio, se http://developer.android.com/index.html og http://developer.android.com/develop/index.html, og dokumenterer på lignende måde med en et par skærmbilleder og lidt forklarende tekst i en index.html fil i mappen hello_world_med_android_studio som er oprettet i jeres html mapper på jeres StudieWeb.

Brug ikke MediaLab's netværk til at downloade, RTS nettene er hurtigre!

Smalltalk, Squeak, Etoys og Scratch, Gkb 12:47, 11 January 2016 (CET)[edit]

Vi fortsætter i dag med temaet fra sidste uge, nemlig afprøvning af udviklingsmiljøer baseret på Smalltalk.

Et af de tidlige objektorienterede programmeringssprog var Smalltalk. Det kom frem omkring 1980 og har influeret flere af de moderne objektorienterede sprog, som f.eks. Java, C++ og Python.

Der er lavet flere udviklingsmiljøer til Smalltalk. For information om selve Smalltalk se f.eks. https://en.wikipedia.org/wiki/Smalltalk og http://www.world.st.

One Laptop per Child projektet (OLPC, se http://one.laptop.org/) har inkluderet Etoys i den grafiske brugerflade Sugar på deres billige computer som hedder XO Laptop. Se mere om den her http://laptop.org/en/laptop/ og her https://en.wikipedia.org/wiki/OLPC_XO. OLPC projektet vil give computeren til de mest fattige og dårligt stilled børn i verden.

Sugar kan også downloades og afprøves uden selve XO Laptop computeren. Du kan downloade en image til et USB stik og så bruge det til at boote din computer eller du kan installere Sugar i Ubuntu og flere andre Linux distributioner. Se nærmere her https://www.sugarlabs.org/.

Du skal altså lave følgende[edit]

  • Installer et eller flere af disse tre udviklingsmiljøer
  • og afprøv det/dem ved at lave et Hello World program.
  • Upload et eller flere skærmbilleder
  • og en kort beskrivelse til dit StudieWeb.
  • Bruge en HTML fil med navnet index.html til at samle beskrivelsen og skræmbillederne.
  • HTML filen og billederne skal lægges i mappen squeak_etoys_scratch, som jeg opretter for jer i jeres html mappe.
  • HTML filen skal testes hos http://validator.w3.org og være fejlfri og uden warnings.

Mere info: mappe på StudieWebbet og metode til at lave skærmdumps[edit]

Jeg har oprettet en mappe med navnet squeak_etoys_scratch på jeres StudieWeb til dokumentationen, som skal laves med en fejlfri index.html fil (test med http://validator.w3.org). Inkluder et eller flere skærmbilleder og en kort beskrivelse af værktøjet og dit program.

Hvis du arbejder på Ubuntu eller en anden Linux/Unix distro (kan også installeres under Windows), så kan du med fordel bruge ImageMagick, http://www.imagemagick.org/, til at lave dine skærmdumps. ImageMagic er et respektabelt gammelt og godt system til håntering af billeder. Det består af flere programmer som er inkluderet i mange distroer af GNU/Linux. Hvis systemet ikke er installeret, så kan det let installeres vha. pakkesystemet for den pågældende distro. For Ubuntu kan man bruge følgende kommando.

sudo apt-get install imagemagick

Så kan du bruge følgende kommando til at lave et billed af et valgfrit windue. Bare kør kommandoen i en terminal og klik så på det vindue som du vil gemme som en billedfil.

import screenshot_af_et_vindue.png

Eller så kan du bruge følgende kommando til at lave et skræmdump af hele skærmen.

import -window root screenshot_af_hele_skærmen.png

Smalltalk, Squeak, Etoys og Scratch, 4. jan. 2016, gkb[edit]

Vi startede det nye semester med lidt uforpligtende at undersøge og afprøve udviklingsværktøjer baseret på Smalltalk, som var et af de første objektorienterede programmeringssprog. Vi valgte at afprøve et af følgende tre værktøjer Squeak, Etoys og Scratch. Desuden fik vi også øje på Sugar som er GUI'en for OLEP projektets billige computer som de vil give til fattige børn.

Foreløbig aftalte vi at der laves et Hello World program efter eget valg med et af disse udviklingsmiljøer. Dette dokumenteres med kort tekst og måske nogle skærmbilleder.

2015-12-03, torsdag, 2. modul: Kravfangst med et Use Case diagram, Fortsat projektarbejde, Gkb 12:45, 4 December 2015 (CET)[edit]

Kravfangst med et Use Case diagram[edit]

Vi så en 14 min lang video, UML 2.0 Tutorial, af Derek Banas, https://www.youtube.com/watch?v=OkC7HKtiZC0, om hvordan vi kan bruge et Use Case diagram til fange krav til et system. Her bruges et Use Case diagram at beskrive og analysere den opgave at hæve penge i en automat. Han indleder med generel information om systemudvikling. F.eks. taler han om agile og iterativ systemudvikling og kravfangst.

Installering af Pygame for Python 2.7 på MacOS 10.10.5[edit]

Der er visse problemer med at få Pygame til at virke på de nyere versioner af MacOS.

Jeg afprøvede at jeg kunne installere den Pygame som er beregnet for version 10.3 af MacOS.

Først installerede jeg vistnok http://pygame.org/ftp/pygame-1.9.1release-python.org-32bit-py2.7-macosx10.3.dmg fra http://www.pygame.org/download.shtml.

Så installerede jeg Python 2.7 vha. https://www.python.org/ftp/python/2.7/python-2.7-macosx10.3.dmg. Jeg fik filen fra https://www.python.org/download/releases/2.7/ efter at jeg læste en bemærkning skrevet af Ned Deily på http://stackoverflow.com/questions/3277946/no-idle-subprocess-connection om at bruge denne version af Python.

Efter dette kunne jeg starte Python27 og importere Pygame.

Fortsat projektarbejde[edit]

Grupperne arbejdede videre. Jeg tog i mod 1. og 2. års elever i C312 og informerede om Programmering C, som del af orientering om valgfag som fandt sted på C3 gangen i dette modul.

MediaLab's systemudviklingsmetode som værktøje til planlægning og gennemførelse af projekter, Gkb 11:29, 26 November 2015 (CET)[edit]

I dag præsenterede jeg hvordan vi kan bruge vores egen hjemmelavede systemudviklingsmetode som støtte til at planlægge, dokumentere, gennemføre og evt. også til at præsentere arbejdet med et projekt. Vi har også lavet skabeloner både for projektbeskrivelse og rapport.

Vi aftalte også at slække lidt på kravet om at bruge Pygame. Hvis nogen vil bruge et andet værktøj, så er det ok.

Kilder til info om anvendelse af Pygame[edit]

Der er mange kilder på nettet som kan bruges til inspiration, men her fremhæves nogle som vi synes at er gode. Tilføj gerne flere!

Evaluering af projektet Rumlige figurer og påbegyndelse af nyt projekt, Gkb 01:05, 20 November 2015 (CET)[edit]

I mandags startede vi et nyt projektforløb sammen med Informationsteknologi B. I dag har vi første modul i PrgC i projektforløbet. Vi brugte også modulet til at evaluere på det forløb som vi har haft sammen med Matematik A og lige har afsluttet i sidste uge.

Denne evaluering brugte vi så som afsæt til at gennemgå og diskutere nogle hjælperedskaber til at styre og strukturere projektforløb.

Evaluering af projektet Rumlige figurer[edit]

I går blev projektet evalueret i Matematikmodulet kl. 10:00, hvor jeg var med som observatør. I dag var Jørn så med når vi evaluerede de programmeringsmæssige aspekter i projektet.

Vi evaluerede på følgende måde:

  • Ved individuelt at nær-læse projektoplægget og søge efter alle krav til den programmeringsmæssige del af projektet.
  • Dernæst skulle projektgruppens medlemer diskutere og sammenligne de krav de havde fundet i oplægget og forsøge at afgøre om de havde opfyldt kravene i rapporten og/eller i produktet.
  • På et plenummøde havde vi så en kort diskussion om gruppernes resultater. Det viste sig at der var en del krav som ikke var opfyldt. En vanlig anledning til at et krav ikke var blevet tilgodeset, var at der ikke var tid til det.

Hjælperedskaber til at styre projektarbejdet[edit]

I direkte fortsættelse af evalueringen holdt jeg et oplæg på projektoren om følgende hjælperedskaber som kan bruges til at strukturere arbejdet i det nye projekt:

    • MediaLabs systemudviklingsmetode
    • MediaLabs skabeloner for projektbeskrivelse og rapport
    • MediaLabs liste over forskellige metoder til at dokumentere programmer

Aflevering på StudieWeb og Lectio af opgaven "Eget værk", Gkb 10:05, 8 October 2015 (CEST)[edit]

Vi arbejder i dag med de praktiske detaljer i forbindelse med aflevering af opgaven "Eget værk" på vores StudieWeb's.

  1. Der er oprettet en særlig mappe med navnet egetvaerk til de filer som du skal bruge i forbindelse med afleveringen. Det inkluderer selvfølgelig selve præsentationen af afleveringen i filen egetvaerk.html, samt alle andre filer som du evt. skal uploade, som f.eks. kildekoden i en .py fil og skærmbilleder i PNG format.
  2. Der skal linkes til egetvaerk.html fra din homepage, eller fra den webside som du bruger for opgaver i Programmering C.
  3. HTML koden for websiden, altså egetvaerk.html, skal testes vha. valideringsfunktionen hos World Wide Web konsortiet på http://validator.w3.org, og fjelene skal rettes og der skal indsættes en erklæring om at websiden opfylder HTML kravene fra W3C. Du kan kopiere noget HTML fra dem og indsætte nederst på din webside.
  4. Opgaven er oprettet i Lectio. Der skal du kun aflevere en link til afleveringen på dit StudieWeb, og den skal være i en plain text fil, altså hverken DOC, DOCX eller ODT eller PDF, -bare almindelig tekstfil, gerne lavet med en ordentlig programeditor således at du kan styre encoding for filen. Vælg UFF-8!

Eget værk, valg af licens og publisering på StudieWeb, Gkb 11:59, 28 September 2015 (CEST)[edit]

Vi fortsætter i dag arbejdet med at lave et lille værk vha. Python og vælge en licens og publisere det på vores StudieWeb. Her er en skabelon for fremgangsmåden. Følg den, eller finde på en beder hvis du vil:

Filen skal hedde egetvaerk.html og den skal indeholde følgende:

  1. Indledning og ID info, altså nogen tekst som forklarer hvad websiden handler om. Her er det også en god idé at du skriver direkte at det er du selv, som har lavet værket (programmet).
  2. Kildekoden til værket.
  3. Et eksemple på kørsel af programmet, som grafik eller tekst.
  4. Vejledning om hvordan man kan bruge dit program
  5. Ærklering om hvilken licens du har valgt.

Der er ingen krav til smart formatering, layout eller farver, -det er indholdet som regerer!

Eric S. Raymond, licenser og publisering af eget program, Gkb 10:51, 17 September 2015 (CEST)[edit]

Sidste gang så vi et interview, XXX, med Richard Matthew Stallman og vi diskuterede free software og 'proprietary software', samt ophavsret og licenser generelt med udgangspunkt i GPL licensen fra GNU projektet som Richard Stallman startede i 1983.

I dag så vi først en kort video hvor en anden person er i fokus. Det er Erik Steven Raymond (https://en.wikipedia.org/wiki/Eric_S._Raymond), som har haft stor betydning for udviklingen af open source software. Det er Erik Steven Raymond. Her er linket til videoen XXX.

Efter videoen, så aftalte vi at I skal lave en lille øvelse i at lave og publisere et lille program og hævde jeres ophavsret til det og vælge en licens for andres anvendelse af det. Det skal være et lille program lavet med Python, max ca. 50 linjer. Det skal være lavet af jer selv og det skal være kreativt og orginelt på en eller anden måde, således at det kan virke rimelig sandsynligt at en dommer i en dansk domstol vil synes at det opnår værkshøjde (se definition af begrebet i loven om ophavsret, start evt. her https://da.wikipedia.org/wiki/Ophavsret). Det betyder ikke nødvendigvis at det skal være avanceret. Husk at det er den samme lovgivning som gælder om jeres ophavsret til jeres programmer som om en digters ophavsret til sine digte og en forfatters ophavsret til sine romaner. Se gerne definitionen af ophavsret på i selve lovgivningen, https://www.retsinformation.dk/forms/R0710.aspx?id=164796.

Kilder[edit]

Individuelt arbejde med lærebogen og Python, Gkb 11:04, 27 August 2015 (CEST)[edit]

Vi fortsætter det individuelle arbejde med lærebogen How to Think Like a Computer Scientist, Learning with Python 3 (RLE), http://openbookproject.net/thinkcs/python/english3e/.

Vi har diskuteret at det kan være en fordel for den enkelte elev selv at kunne bestemme hvad der arbejdes med og hvordan, -sådan i en vis udstrækning. Vi har nemlig forskellige forudsætninger og nogle behøver måske en lidt længere tid eller en anden måde at arbejde med det faglige stof for at føle at de har styr på alle detaljer og kan fortsætte til næste afsnit. Og så kan der være nogen som helt enkelt ikke kan lade være med at bruge lidt ekstra tid på at blive hurtigt dygtige til at programmere. Derfor prøver vi at minimere tavlegennemgang og maksimere individuel leg og eksperimentelt arbejde med avancerede værktøjer (lærebogen og Python) og vi gør det gerne i en vis offentlighed (vores wiki og jeres StudieWeb her på rtgkom.dk), sådan som Seymour Papert har påpeget at kan være en god idé når vi

I dag satte jeg lidt fokus fokus på ham, altså Seymour Papert, og hans arbejde i 70'erne med at lave programmeringssproget Logo og skildpaddegrafiken som vi bruger i kapitel 3, nemlig Turtle grafiken. Se https://en.wikipedia.org/wiki/Seymour_Papert og http://www.papert.org ...


Vi skal nu være omtrent færdige med de første to kapitler. Her er en kort læsevejledning:

  • Husk at lave alle eksemplerne som nævnes i teksten, -og lidt til, mens I læser kapitlerne.
  • Læs så i detaljer glossary sektionen for at sikre jer at I har styr på alle de nye begreber som blev introduceret i afsnittet.
  • Lav så alle, eller næste alle, opgaverne som er sidst i hvert kapitel.