2015InfB23-24

From rtgkomArkiv
Jump to: navigation, search

Contents

Afslutning af forløbet Frit individuelt opdagelsesarbejde, Gkb 13:05, 17 May 2016 (CEST)[edit]

I dag skal du præsentere dit arbejde med forløbet "Frit individuelt opdagelsesarbejde" på dit StudieWeb. (Gør det med HTML. Brug ikke PDF, DOCX eller ODT til denne præsentation!)

Mindst et par skærmbilleder og en passende mængde tekst, således at læseren kan forstå hvad du har arbejdet med. Det kan evt. gøres ved at besvare følgende spørgsmål som var i fokus i forløbet. Se her http://www.rtgkom.dk/wiki/2015InfB23-24#Frit_individuelt_opdagelsesarbejde:

  1. Hvilket problem har du tænkt på?
  2. Hvilket innovativt IT-system har du tænkt at bruge til at løse problemet?
  3. Hvordan gik det at lave en "Hello World" applikation med værktøjet som du valgte?
  4. Hvordan gik det at lave en spike solution eller første prototype til løsning af problemet?

Link til præsentationen fra din oversigt/liste over opgaver i faget.

Der er lavet en mappe til afleveringen: frit_individuelt_opdagelsesarbejde i din html mappe.

Vi afslutter forløbet på torsdag med nogle frivillige præsentationer hvor vi kort hører svarene på ovenstående spørgsmål.

Fortsat individuel innovation, Modul 3 - Gkb 12:44, 10 May 2016 (CEST)[edit]

Sidste gang, den 28. april, præsenterede Lukas og Freja hvilket problem de har valgt at arbejde med, samt hvilke IT-systemer de har valgt. Lukas viste også et udkast til løsning af problemet, altså en prototype.

Vi fortsætter individuelt arbejde i dag. I en postering fra den 15. april, http://www.rtgkom.dk/wiki/2015InfB23-24#Frit_individuelt_opdagelsesarbejde, når vi startede denne aktivitet, så beskrev jeg hvad du skal gøre. Her er et lille udklip fra den postering som viser de fire spørgsmål som hver enkelt elev skal besvare i en kort præsentation og dokumentere på sit StudieWeb.

  1. Hvilket problem har du tænkt på?
  2. Hvilket innovativt IT-system har du tænkt at bruge til at løse problemet?
  3. Hvordan gik det at lave en "Hello World" applikation med værktøjet som du valgte?
  4. Hvordan gik det at lave en spike solution eller første prototype til løsning af problemet?

Generel feedback på miniSRP opgaven til InfB23 - Gkb 11:59, 10 May 2016 (CEST)[edit]

Her følger nogle kommentarer på almindelige problemer i opgavebesvarelserne i miniSRP projektet i hold InfB23. Det er ikke sikkert at de passer alle til din engen opgavebesvarelse, men når jeg læser opgavebesvarelserne, så noterer jeg de forhold som jeg oplever forekommer i flere besvarelser.

Strukturen på besvarelsen svarer ikke til strukturen på opgaven[edit]

Det er et problem hvis strukturen på besvarelsen svarer ikke til strukturen på opgaven. Der er tre delopgaver i miniSRP opgaven. Det kan nogle gange være svært at se i hvilket eller hvilke afsnit I er ved at svare på den første, den anden og den tredje delopgave.

I strukturerer opgavebesvarelsen ofte med op til ca. otte til ti afsnit og måske har intet af dem en overskrift (rubrik) som svarer direkte til en af delopgaverne. Det bliver således en ekstra opgave for læseren (mig, Karl) at analysere og finde hvor I faktisk besvarer de enkelte delopgaver.

I må selvfølgelig gerne både lave et indledende afsnit, en analyse, en diskussion og en konklusion, -men lav gerne også tydelige afsnit hvor I direkte besvarer de tre delspørgsmål. Hvis du har valgt at skrive om Linus Torvalds, så kunne disse overskifter eventuelt være følgende:

  • Redegørelse for Linus Torvalds virke
  • Teknologianalyse af Linux
  • Vurdering af Linus Torvalds betydning for anvendelse af informationsteknologi i dag (han lever jo stadig!)

Det er også en god service for læseren at gengive selve formuleringen af delopgaven ordret i begyndelsen af det afsnit hvor du besvarer opgaven. Således kunne det afsnit hvor du besvarer den første delopgave ovenfor eventuelt begynde på følgende måde:

Redegørelse for Linus Torvalds virke (overskriften!)

I dette afsnit vil jeg besvare den første delopgave i denne miniSRP opgave. Delopgaven lyder som følger.

"Redegør for personens virke og hvad der særligt kendetegner hans eller hendes IT-komponenter. Relatér bl.a. til hvor 
udviklet computeren var på den tid de (personen, altså den person du har valgt) virkede."

Linus Torvalds var … og så skriver du videre ...

Fokus på at besvare alle dele af delopgaven[edit]

Nogle gange er delopgaverne sammensat af flere dele. Man kan sige at der kan være flere separate delspørgsmål i delopgaven som kræver individuel behandling/besvarelse. Det kan i være nødvendigt at analysere deloopgavens tekst grundigt for at være sikker på ikke at undlade vigte dele af besvarelsen.

I eksemplet ovenfor skal der både redegøres for personens virke og det som særligt kendetegner hans (Linux Torvalds) IT-komponenter (tools eller produkter, men vi bruger her begrebet komponent som har en særlig betydning i teknologifaget), og så skal vi når vi gør det relatere til hvor udviklet computeren var på den tid hvor Linus Torvalds virkede.

For det første så virker han stadig, så vi skal altså på en eller anden måde inddrage viden om og/eller en beskrivelse af hvor udviklede computere har været i perioden fra ca. den tid hvor Linus begyndte at bruge computere, eller i hvert fald fra han publiserede den første version af Linux, frem til i dag.

Der er altså to ting vi skal redegøre for:

  1. hans virke og
  2. det som særligt kendetegner hans IT-komponenter

og vi skal i den redegørelse inddrage (relatere til) hvor udviklet computeren har været i tidsrummet fra Linus Torvalds begyndte at bruge computere og frem til i dag.

Det er selvfølgelig ikke nødvendigt at fortælle om alt muligt som Linus Trovalds har lavet eller om alle hans produkter (tools eller IT-komponenter) og du behøver ikke gøre rede for computerens udviklingshistorie i detaljer. Du udvælger selv fra dine kilder og prøver at skabe en sammenhængende tekst med en rød tråd som tilgodeser de to hovedkrav og bi-kravet om at relatere til computerens udvikling.

Anvendelse af billeder og andre visuelle elementer[edit]

Det er en god idé at bruge visuelle elementer som f.eks. tabeller, grafer, diagrammer, skærmbilleder eller fotografier. Det gør teksten ofte mere interessant at læse og det kan være nødvendigt for at forklare og illustrere nogle aspekter eller forhold i opgavebesvarelsen.

Hvis man bruger f.eks. et billed/fotografi, så skal det anføres tydeligt hvor det kommer fra og det er en god idé også at nævne hvilken licens ophavsmanden har valgt at bruge for vores anvendelse af billedet. Hvis du selv har lavet billedet, så skal du selvfølgelig nævne det. Dette kan gøres på forskellige måder. Det kan gøres i teksten hvor billedet bruges, i en særlig konsultativ tekst under eller i nærheden af billedet og/eller i litteraturlisten eller i en særlig liste over billeder som er anvendt i opgavebesvarelsen.

Det som ofte giver bedst resultat, er selv at lave billedet (grafen, tabellen eller skitsen). Så er der ikke noget problem mht. licensen. Kravene eller forventningerne til kvaliteten bliver også mere moderate når I selv fremstiller materialet.

Frit individuelt opdagelsesarbejde, Gkb 15:07, 19 April 2016 (CEST)[edit]

  1. Anders Reedtz Sparrevohn (2.4 02)
  1. Anton Bischoff Due (2.4 03)
  2. Asbjørn Hjorth-Bak Andreasen (2.4 05)
  3. Benjamin Wieghorst Sørensen (2.4 07)
  4. Casper Færch (2.4 06)
  5. Casper Viemose Olufsen (2.3 06)
  6. Christian Lebeck Poulsen (2.3 07)
  7. Delan Kasim Ali (2.3 05)
  8. Emil Oliver Sanders Nielsen (2.3 04)
  9. Frederik Broløs Mikkelsen (2.4 08)
  10. Frederik Lunn Berthelsen (2.3 10)
  11. Freja Henriette Krüger (2.4 04)
  12. Gustav Asbjørn Guerra Silva Sørensen (2.4 12)
  13. Jonas Christian Henriksen (2.3 12)
  14. Jonas Struve Poulsen (2.3 13)
  15. Kenneth Elsborg Husted (2.4 09)
  16. Lasse Wæverstrøm Juul (2.4 11)
  17. Lukas Hundt Petersen (2.4 14)
  18. Mads Bentsen Christensen (2.4 15)
  19. Mads Midtgaard Frich (2.4 17)
  20. Mathias Friis Jensen (2.4 20)
  21. Nicholas Bendix Larsen (2.4 22)
  22. Nicklas Thode Thyssen (2.4 23)
  23. Nicolai Frederik Björkenheim Andersen (2.4 27)
  24. Patrick Emborg Bjørnholt Jacobsen (2.3 16)
  25. Stefan Sebastian Korsgaard Harding (*2.4 26)
  26. Teis Moesgaard Ankerstjerne (2.4 28)
  27. Thomas Lundgård Bork (2.4 29)
  28. Ulrik Stuhr Larsen (2.4 30)
  29. William Holmbach List (2.3 27)

Præsentation af sidste aflevering på StudieWebbet og frit individuelt opdagelsesarbejde, Gkb 14:11, 15 April 2016 (CEST)[edit]

Der er to aktiviteter som vi arbejder med i dag.

Præsentation af sidste aflevering på StudieWebbet[edit]

Nu har vi lige afsluttet et projektforløb og det er derfor en god idé at tilføje en præsentation af projektet på dit StudieWeb. Undervejs kan du selvfølgelig opdatere, ændre og forbedre dit StudieWeb i almindelighed. Et mål kunne evt. være at sørge for at alle websiderne valideres som korrekt HTML og CSS ved validering hos w3.org.

Frit individuelt opdagelsesarbejde[edit]

I målene for Informationsteknologi B står at vi skal kunne vælge, afprøve og bruge nye IT systemer (it-komponenter) til at udvikle prototyper til løsning af praktiske problemer. Vi skal også kunne forklare om innovative it-systemer og hvordan vi har anvendt eller har planlagt at anvende dem i egen it-løsninger.

Her er de tre mål hvor dette kommer til udtryk, -kopieret direkte fra bekendtgørelsen (https://www.retsinformation.dk/forms/r0710.aspx?id=152550#Bil16):

– vælge og bruge it-komponenter som værktøj til løsning af et problem med relation til elevens, uddannelsens, virksomheders og samfundets brug
– redegøre for innovative it-systemer sammenholdt med egne it-løsninger
– realisere prototyper på it-systemer, herunder kunne installere, konfigurere og tilpasse relevante it-komponenter.

Du skal søge efter et IT - system (it-komponent) som kan indgå i et IT-system som du selv har lavet eller planlægger at lave til at løse et problem med relation til elevens, uddannelsens, virksomheders og samfundets brug. Du skal altså også fundere over og finde frem til et problem at arbejde ud fra.

I næste uge fortsætter vi med denne aktivitet og du skal definere et problem du kan tænke dig at løse vha. et innovativt IT system og lave en Hello World! applikation med systemet.

Vi afslutter aktiviteten med en præsentationsrunde hvor vi fortæller hinanden om vores opdagelsesrejse i informationsskogen på Internettet. Hver enkelt elev skal kunne gøre rede for følgende:

  1. Hvilket problem har du tænkt på?
  2. Hvilket innovativt IT-system har du tænkt at bruge til at løse problemet?
  3. Hvordan gik det at lave en "Hello World" applikation med værktøjet som du valgte?
  4. Hvordan gik det at lave en spike solution eller første prototype til løsning af problemet?

Der skal laves en kort præsentation af aktiviteten på StudieWebbet.

Eksempler på diverse IT systemer som i visse sammenhænge nok kan opfattes som lidt innovative[edit]

Her følger et antal idéer til emner og konkrete IT systemer som du kan evt. vælge at arbejde med. Brug listen som inspiration. Du kan vælge IT systemer/komponenter som ikke nævnes i listen. Du kan selv logge ind i wiki'en og tilføje emner og eksempler på IT systemer.

Det kan også være udviklingsmiljøer til programmering i nogle bestemte programmeringssprog, som f.eks.

Dataopsamling med Arduino - måling af temperatur med LM335, Gkb 14:09, 8 April 2016 (CEST)[edit]

Dokumentation af arbejdet med Arduino og LM335[edit]

I skal aflevere dokumentation (min ca. 5 og max ca. 10 standardsider af tekst) af gruppens arbejde med Arduino og LM335.

Eleverne fra 2.3 skal[edit]

  • aflevere i plain HTML på hver enkelt gruppemedlems StudieWeb. Afleveringen skal laves i den dertil specielt oprettede afleveringsmappe arduino_lm335, som ligger i hver enkelt elevs html mappe. Afleveringen kan laves som en enkelt webside eller som et lille web af websider. Det er selvfølgelig den samme dokumentation som gruppens medlemmer afleverer, men de vælger individuelt hvordan de præsenterer afleveringen på sit StudieWeb.
  • aflevere en plain tekst-fil på Lectio med et link til afleveringsmappen på StudieWebbet.

Eleverne fra 2.4 skal[edit]

  • aflevere en samlet rapport for matematik og informationsteknologi på Lectio
  • og i SO-rummet på Fronter.
  • Rapporten uploades også til afleveringsmappen på StudieWebbet og præsenteres individuelt af hver enkelt elev. Afleveringsmappen hedder arduino_lm335 og den er oprettet i html mappen for alle elever i klassen.

Forslag til indhold for dokumentation af arbejdet i Informationsteknologi[edit]

Her følger et forslag til indhold for dokumentation af arbejdet i Informationsteknologi.

  • Bemærk at dette kun er et forslag.
  • Dokumentationen/rapporten kan disponeres på andre måder.
  • I vælger selv hvordan I gør i jeres projekt.


  1. Forside (Titel, undertitel, ID-info og relevant illustration eller fotografi eller begge dele)
  2. Indledning
  3. Teori
    1. Licenser, specielt open source versus closed source licenser. Hvad er forskellen?
    2. Om Arduino (https://www.arduino.cc/, https://en.wikipedia.org/wiki/Arduino)
      1. Historie (Hvad er Arduino? Hvem har lavet Arduino? Hvornår? osv.)
      2. Licens
      3. Design og specifikationer for den version som I har brugt
      4. Anvendelse i enkle (Hello world!) tilfælde. Vise hvordan koden for en sketch (programmeringssproget hedder Wiring!) er opbygget.
    3. Om LM335 (http://www.ti.com/lit/ds/symlink/lm235.pdf)
      1. Historie
      2. Licens
      3. Design og specifikationer for den version som I har brugt
    4. Om Processing
      1. Historie (Hvad er Processing? Hvem har lavet Processing? Hvornår? osv.)
      2. Licens
      3. Anvendelse i enkle (hello world!) tilfælde. Vise hvordan koden for en sketch (programmeringssproget hedder Processing!) er opbygget.
  4. Afprøvning af værktøjerne (Dette er en slags Hello World afsnit!)
    1. Blink
    2. AlanlogReadSerial
    3. Graph (inklusive anvendelse af Processing til at vise grafen på computerens skærm)
  5. Design af eksperimentet til måling af temperatur med LM335
    1. Skitse for kredsløbet,
    2. Plan for gennemførelsen, for eksempel:
      1. Antal målinger pr. minut,
      2. Metode til at fastholde (lagre) både tidspunkt og tilhørende måledata.
      3. Udregninger og formler til at omregne den målte værdi (0 - 1023) som ADC kredsløbet i Arduino leverer, til spænding, temperatur i K og temperatur i grader Celsius (°C).
  6. Implementering (Beskrivelse af fremgangsmåden, med skærmdumps og fotografier)
  7. Resultater (Beskrivelse af måleinstrumentet, dvs. den sidste prototype som I nåede at lave. Måledata i tabeller og grafer)
  8. Konklusion
  9. Bilag (kopier fra datablade, f.eks. for LM335, hele kildekoden!!!)

Mini-SRP projekt starter i 2.4, 4. modul fredag den 4. marts 2016, Gkb 17:55, 8 March 2016 (CET)[edit]

Eleverne fra 2.3, ni stykker, var i gang med sit Mini-SRP projekt og deltog ikke i modulet.

Vi startede Mini-SRP projektet med eleverne fra klase 2.4 ved at se en video om Arduino's udvikling. Videoen hed Arduino The Documentary. Her er et link til præsentationen af filmen på Arduino.cc: https://blog.arduino.cc/2011/01/07/arduino-the-documentary-now-online/ og her er et direkte link til en version af filmen med engelske undertekster: https://vimeo.com/18539129.

I projektet skal vi bruge Arduino til at måle temperaturen på kaffen i en kaffekop eller lignende over et stykke tid, f.eks. en time. Vi skal altså lave dataopsamling mens kaffen køler ned til stuetemperatur, ca. 25 grader Celsius.

Målet er at vi skal lave en temperaturmåler som består af en Arduino og en temperaturprobe som vi selv bygger.

Hello World for dataopsamling med Arduino og visualisering med Processing[edit]

Vi skal lære at koble Arduino til en computer med et USB kabel og at kompilere enkle programmer på computeren og uploade dem til Arduino.

Inden vi går i gang med vores eget udviklingsarbejde, så skal vi være sikre på at vi har en Arduino som virker og at vi kan bruge Processing til at vise måledata fra den på computerskærmen.

Dette kan vi gøre ved at bruge følgende tre eksempler som følger med Arduino når udviklingsmiljøet installeres. Vi bruger dem altså samlet som vi bruger det berømte Hello World program til f.eks. at teste om Python virker på vores computer, altså når vi skriver print("Hello World!"). De tre programeksempler er altså:

  • Blink fra gruppen Basics. Bemærk at her behøver I kun selve Arduino'en og USB kablet. Der er nemlig en lysdiode, LED, på Arduino bordet, som er fastkoblet til pin nr. 13. Følgende skærmklip viser hvordan I finder Blink og de to andre eksempler i menusystemet i Arduino IDE'en.

http://www.rtgkom.dk/~gkb/billeder/Arduino_IDE_File_Examples_01.Basics_Blink_50_procent.png

  • AnalogReadSerial fra gruppen Basics. Eksemplet er også dokumenteret online her: https://www.arduino.cc/en/Tutorial/AnalogReadSerial. Bemærk at her bruges serial monitoren i ArduinoIDE programmet til at observere at Arduino sender måleværdierne til computeren som hele tal fra og med 0 til og med 1023. Bemærk også at vi bruger ikke helt det samme kredsløb som i dokumentationen til at skaffe os et signal til at måle på.
  • Graph fra gruppen Communication i ArduinoIDE. Eksemplet er også dokumenteret online her: https://www.arduino.cc/en/Tutorial/Graph. Bemærk at i dette eksempel bruges udviklingsmiljøet og programmeringssproget Processing til at tage mod data fra Arduino og vise dem som en graf på computerens skærm. Bemærk også at koden som skal eksekveres i Processing ligger som kommentarer i kildekodefilen for Graph. Bemærk også at vi bruger ikke helt det samme kredsløb som i dokumentationen for Graph til at skaffe os et signal til at måle på.

I eksemplerne AnalogReadSerial og Graph bruger vi en spændingsdeler med en fast modstand på 2,2 kOhm (2k2) i serie med en LDR. Det er spændingen i punktet mellem disse to komponenter som vi ønsker at måle.

En LDR er en lysfølsom modstand (Light Dependent Resistor). Dens modstand, resistance, er lille når den belyses og stor i mørke. Den har den fordel fremfor dreje-modstanden (potentiometer) som bruges i dokumentationen at vi ikke skal dreje på den for at ændre den målte spænding midt i spændingdeleren, -det er nok bare at skygge lidt på LDR'en med hånden eller lyse på den med en lommelygte (telefon). Det er også mere interessant at bruge en LDR og således undervejs få en idé om hvordan man kan lave en lys-styrke-måler. En tredje fordel er at når vi har fået Graph til at virke med dette kredsløb, så kan vi udskifte LDR'en med føleren (transduceren) LM335 som vi vil bruge til at måle temperaturen med.

Modstanden som vi bruger har tre røde striber som står for 22 * 10**2, altså 2200 Ohm. Se farvekoder for modstande her: https://en.wikipedia.org/wiki/Electronic_color_code og her er en "regnemaskine" til at finde modstandsværdien: http://www.digikey.se/en/resources/conversion-calculators/conversion-calculator-resistor-color-code-4-band.

(indsæt skitse/foto som viser kredsløbet)

Når vi har fået disse tre eksempler til at virke, så ved vi at vi har et fungerende udviklingsmiljø.

Vi skal bruge en temperatursensor (transducer) som hedder LM335 og lave en temperaturprobe (måle-pind) med den. Vi skal forlænge dens tre ledninger og prøve at lave en vandtæt indkapsling vha. plastikrør som krymper når man varmer det. Det kaldes krympefex.

Test af lokal webserver og PHP, Gkb 10:30, 12 February 2016 (CET)[edit]

Du har nu installeret en lokal webserver på din computer og afprøvet lidt hvordan server side scripting sproget PHP virker.

Kort sagt, så er formålet med PHP at gøre det muligt at servere HTML filer til brugerene som er tilpasset, altså ændret, på en særlig måde netop for den enkelte bruger. Det kan være på baggrund af hvordan brugeren har udfyldt skemaer (form) på websiden eller klikket på bestemte steder (knapper eller billeder) i websiden. PHP kan også, f.eks. samme med database management systemet MySQL, bruges til at hente data fra databaser og vise dem i websiden.

Vi venter med afprøvning af hvordan vi opretter databaser med MySQL og phpMyAdmin og hvordan vi bruger dem med PHP. Det virker være en tilstrækkelig stor opgave nu, at installere webserveren og afprøve hvordan PHP virker.

Dokumantation af arbejdet[edit]

Du skal nu dokumentere arbejdet med installering af en lokal webserver på din computer og afprøvning af webserveren. Vi har brugt XAMP, WAMP eller LAMP. Nogle detaljer i den efterfølgende tekst kan være præget af at jeg har brugt XAMP.

Vi skal også dokumentere arbejdet med PHP tutorialen på http://zetcode.com/lang/php/.

  • Læs og afprøv kodeeksemplerne til og med den tredje sektion som hedder Basics.
  • Afprøv dine PHP filer både i Shell'en, sådan som tutorialen beskriver, og også i en webbrowser.
    • Shell'en startes vha. en knap i XAMP's kontrolpanel.
      • Start shell'en og eksekver php --help til at se hvilke muligheder du har for at kontrollere hvordan PHP arbejder.
      • Skift eventuelt default directory til din webservers htdocs mappe. Brug kommandoen cd til at se hvilken mappe er default og cd mappenavn til at skifte til en nedenfor liggende mappe, f.eks. 'cd htdocs hvis default directory er C:\wamp. Du kan bruge cd .. til at skifte et niveau op i filsystemet. Læs gerne om cd kommandoen med help cd på Windows eller man cd på Linux.
      • Kør PHP på dine filer ved at eksekvere kommandoen php -f filnavn.php eller bare php filnavn.php. PHP fortolker nu alle de PHP scripts som er i din fil og du kan se resultatet i shell'en.
    • Du afprøver dine filer i en webbrowser ved
      • at gemme filerne i htdocs mappen i xamp mappen. På Windows er det nok C:\xamp\htdoc, hvis du har givet installationsprogrammet lov at vælge. For WAMP er det vistnok C:\wamp\www som du skal lægge filerne i. På Linux kan det være \var\www.
      • at starte et nyt vindue og skrive localhost/filnavn.php i URL feltet i browseren.

Lav nogle skærmbilleder, f.eks. tre til fem stykker, som viser nogle højdepunkter i arbejdet med at installere og at teste PHP. Skriv korte forklaringer om hvad du er ved at lave i billederne. Præsenter billederne og dine forklaringer som før i en webside på dit StudieWeb i mappen test_af_lokal_webserver_og_php, som er oprettet for jer alle i jeres html mappe.

Mere information om PHP og processen med at installere XAMP og at afprøve PHP[edit]

Den primære dokumentation for PHP[edit]

PHP kommer fra http://php.net. Det er en god idé, sådan generelt, at orientere sig i den primære dokumentation for et system. Se f.eks. deres vejledning for nye brugere her: http://php.net/manual/en/getting-started.php

28 skærmbilleder fra min test af XAMP og PHP[edit]

Her er et link til de skærmbilleder, 28 stykker, som jeg lavede undervejs når jeg installerede XAMP og testede PHP. Skim dem i gennem, det kan være at du kan bruge dem til at få bedre overblik over processen: http://rtgkom.dk/~gkb/projects/xamp_php_mm.

Min htdocs mappe - med min PHP filer mm.[edit]

Samme sted ligger også en kopi af min htdocs mappe, hvor du kan se de PHP filer som jeg afprøvede.

Skærmbilleder af websider om Rasmus Lerdorf og Bjarne Stroustrup[edit]

Samme sted ligger også nogle skærmbilleder fra websider med information om Rasmus Lerdorf som lavede PHP og Bjarne Stroustrup som lavede C++.

Client Server teknologi - introduktion til webservere (Apache) og serverside scripting (PHP) og databaser (phpMyAdmin, MySQL og SQL), Gkb 11:16, 5 February 2016 (CET)[edit]

Vi har aftalt at se lidt nærmer på nogle af de teknologier og værktøjer som ofte bruges til at lave websites.

Vi starter med at installere en webserver på vores egen computere og så bruger vi den til at afprøve forskellige aspekter ved at lave en webside som bruger server side scripting og relationsdatabase.

Gør følgende:

1. Installer XAMP, eller WAMP, LAMP eller MAMP[edit]

Betydningen af disse forkortelser forklares her:

  • XAMP betyder: X=Cross (virker på flere platforme), A = Apache, M = MySQL og P = PHP
  • WAMP betyder: W=Windows (virker kun på Windows), A = Apache, M = MySQL og P = PHP
  • LAMP betyder: X=Cross (virker kun på Linux), A = Apache, M = MySQL og P = PHP
  • MAMP betyder: X=Cross (virker kun på MacOS), A = Apache, M = MySQL og P = PHP
  • Apache er en af de mest brugte webservere.
  • MySQL et et af de mest brugte databasemanagementsystemer, DBMS.
  • PHP er et af de mest brugte server side scripting sprog.

2. Konstater at din installation virker[edit]

  • Brug kontrolpanelet til din installation til at starte Apache og MySQL
  • Start en webbrowser på din computer
  • Indtast localhost i URL feltet og tryk enter. (Hvis det ikke virker, så prøv 127.0.0.1). Nu skal du gerne se velkomstsiden fra din webserver, hvis ikke, så find fejlen, altså problemet. Det er ofte Skype som driller. Stop Skype helt og dræb alle dets processer wha din TaskManager.

3. Lær lidt PHP vha. PHP tutorialen på zetcode.com[edit]

Lær lidt PHP vha. PHP tutorialen, http://zetcode.com/lang/php/, på zetcode.com.

  • Start din programeditor, f.eks. Atom, Vim, Emacs, jEdit, Notepad++ eller nogen anden god editor.
  • Afprøv eksemplerne til og med afsnittet Basics. Skriv, kopier helst ikke kodeeksemplerne.
  • Gem PHP filerne i webserverens htdocs mappe, altså den mappe hvorfra den serverer filer til sine clienter. (Se en forklaring i posten ovenfor, fra fredag d. 12. feb.)
  • Afprøv dem både i Apache og i terminalen som kan startes fra XAMP's kontrolpanel.

2.4 + 2.3 APK-filer, Casperf14 08:39, 25 January 2016 (CET)[edit]

2.4:

Alexanders MIT App Inventor 2 app [1], Her er beskrivelsen af appen [2]

Anders' MIT App Inventor 2 app [3], Her er beskrivelsen af appen [4]

Antons MIT App Inventor 2 app [5], Her er beskrivelsen af appen [6]

Benjamins MIT App Inventor 2 app [7], Her er beskrivelsen af appen [8]

Caspers MIT App Inventor 2 app [9], Her er beskrivelsen af appen [10]

Frederiks MIT App Inventor 2 app [11], Her er beskrivelsen af appen [12]

Gustavs MIT App Inventor 2 app [13], Her er beskrivelsen af appen [14]

Lasses MIT App Inventor 2 app [15], Her er beskrivelsen af appen [16]

Lukas' MIT App Inventor 2 app [17], Her er beskrivelsen af appen [18]

Mads BC's MIT App Inventor 2 app [19], Her er beskrivelsen af appen [20]

Mads MF's MIT App Inventor 2 app [21], Her er beskrivelsen af appen [22]

Mathias FJ's MIT App Inventor 2 app [23], Her er beskrivelsen af appen [24]

Nicholas' MIT App Inventor 2 app [25], Her er beskrivelsen af appen [26]

Nicklas' MIT App Inventor 2 app [27], Her er beskrivelsen af appen [28]

Nicolais MIT App Inventor 2 app [29], Her er beskrivelsen af appen [30]

Stefans MIT App Inventor 2 app [31], Her er beskrivelsen af appen [32]

Teis'MIT App Inventor 2 app [33], Her er beskrivelsen af appen [34]

Thomas' MIT App Inventor 2 app [35], Her er beskrivelsen af appen [36]

Ulriks MIT App Inventor 2 app [37], Her er beskrivelsen af appen [38]

2.3:

Caspers MIT App Inventor 2 app [39], Her er beskrivelsen af appen [40]

Christians MIT App Inventor 2 app [41], Her er beskrivelsen af appen [42]

Delans MIT App Inventor 2 app [43], Her er beskrivelsen af appen [44]

Emil MIT App Inventor 2 app [45], Her er beskrivelsen af appen [46]

Frederik MIT App Inventor 2 app [47], Her er beskrivelsen af appen [48]

Jonas CH's MIT App Inventor 2 app [49], Her er beskrivelsen af appen [50]

Jonas SP's MIT App Inventor 2 app [51], Her er beskrivelsen af appen [52]

Patricks MIT App Inventor 2 app [53], Her er beskrivelsen af appen [54]

Villiams MIT App Inventor 2 app [55], Her er beskrivelsen af appen [56]

Hello World app med MIT App Inventor 2, legen fortsætter, Gkb 11:31, 22 January 2016 (CET)[edit]

Vi leger videre med App Inventor.

Vi har tænkt at alle de apps som I laver skal kunne præsenteres i holdets wiki-artikle. For at gøre det let at linke til dem, så skal de alle have det samme navn, nemlig hello_world'.

Upload .apk filen, index.html og billeder til afleveringsmappen og så linker jeg fra wikien til jeres præsentation og .apk filen, som altså skal hedde hello_world.apk.

Vi har aftalt at I skriver jeres eget navn og klasse i toppen af app'en, således at vi kan se hvem har lavet hvilken app.

Du skal altså lave følgende:

  • Lav en Hello World app med MIT App Inventor 2.
  • 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 på dit StudieWeb.
  • 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.
  • HTML filen skal testes hos http://validator.w3.org og være fejlfri og uden warnings.
  • Inkluder HTML kode fra w3.org til at vise at din index.html fil opfylder alle krav til HTML som W3 stiller. Hvis du bruger HTML 4.01, så vises denne HTML kode nederst på valideringssiden når siden er fejlfri 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. Bruge 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.

Hello World app med MIT App Inventor 2, Gkb 09:03, 18 January 2016 (CET)[edit]

Vi diskuterede i sidste uge den mulighed at arbejde med udvikling af programmer (apps) til Android. Vi begynder med at lave en hurtig afprøvning af MIT App Inventor 2, http://appinventor.mit.edu/explore. Hvis vi fortsætter og laver et regulert projekt hvor vi udvikler apps til Android, så regner jeg med at nogle grupper eventuelt hellere vil bruge Android Studio, men lige nu tester vi alle hvordan MIT App Inventor 2 virker.

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.

Vi startede modulet med et plenummøde hvor jeg præsenterede i grove træk App Inventor, altså at den oprindelig blev lavet af Google og så adopteret af MIT når Google stoppede udviklingen for nogle år siden, og at den nu er kommet i version 2 som lever i webbrowseren.

Dernæst viste jeg hvordan MIT App Inventor 2, http://ai2.appinventor.mit.edu/,, sammen med Android applikationen MIT AI2 Companion kan bruges til at lave en lille Hello World! applikation. 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

Jeg hoppede så direkte til at vise den app som jeg fik lavet på ca. en time. Jeg brugte videoen "1. TalkToMe Text-to-Speech App" på siden http://appinventor.mit.edu/explore/ai2/beginner-videos.html som inspiration til at komme i gagn. (Indeholder en knap som gør at appen udtaler en tekst som jeg har hardkodet ind i den. Lyder bedst på engelsk! )

Så tilføjede jeg lidt funktionalitet bare ved at udforske mulighederne i App Inventor. Det blev til en havde en slide-ruler som kunne bruges til at ændre størrelsen på et foto som jeg havde lavet. Det sker ved tryk på en button.

(indsæt billed...? hvis jeg får tid...)

Hello World app med Squeak, Etoys eller Scratch, Gkb 10:34, 15 January 2016 (CET)[edit]

I dag skal du gøre dokumentationen af arbejdet med afprøvning af udviklingsmiljøet du har valgt at arbejde med. Her er et resume af de krav der stilles til din dokumentation på dit StudieWeb:

Du skal altså lave følgende:

  • 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 som viser lidt både udviklingsmiljøet og din app.
  • Skriv og upload en kort beskrivelse til aflevceringsmappen på dit StudieWeb.
  • Bruge en HTML fil med navnet index.html til at samle beskrivelsen og skræmbillederne.
  • HTML, index.html, filen og billederne skal lægges i mappen squeak_etoys_eller_scratch, som jeg har oprettet i din html mappe.
  • HTML filen skal testes hos http://validator.w3.org og være fejlfri og uden warnings.
  • Inkluder HTML kode fra w3.org til at vise at din index.html fil opfylder alle krav til HTML som W3 stiller. Hvis du bruger HTML 4.01, så vises denne HTML kode nederst på valideringssiden når siden er fejlfri 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. Bruge 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.

Hello World program med Squeak, Etoys eller Scratch, Gkb 08:49, 11 January 2016 (CET)[edit]

Vi fortsætter i dag legen med at lave et Hello World program med et eller flere af de tre udviklingsmiljøer vi begyndte at lege med i fredags.

Jeg har oprettet en mappe med navnet squeak_etoys_eller_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, Gkb 11:02, 8 January 2016 (CET)[edit]

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/.

Installer et eller flere af disse tre udviklingsmiljøer og afprøv det/dem ved at lave et Hello World program. Upload et skærmbilled og en kort beskrivelse til dit StudieWeb.

Fortsat arbejde med Exponentielle modeller, NetLogo, Warriors of the Net og SageMath.org - Gkb 16:17, 14 December 2015 (CET)[edit]

Vi havde et kort plenummøde for at danne lidt overblik over hvad vi er i gang med lige nu:

  • Eleverne fra klasse 2.4 fortsætter projektarbejdet med projektet Exponentielle modeller
  • Eleverne fra klasse 2.3:
    • fortsætter afprøvning af NetLogo, som jeg præsenterede i sidste modul. Forvent at skulle dokumentere lidt på jeres StudieWeb!
    • afprøver efter eget valg en teknologi eller et værktøj, som f.eks. Javascript, CSS, eller SageMath.org eller htttp://clout.sagemath.com, eller LaTeX. Forvent at skulle dokumentere lidt på jeres StudieWeb!

Efter ca. 10 min plenummøde så vi en animeret video om hvordan Internettet virker helt nede på pakke og protokolniveau. Filmen hedder Warriors of the Net' og den ligger her: https://www.youtube.com/watch?v=mMzNH8Mi8k8.

Efter filmen præsenterede jeg kort httt://sagemath.org og http://cloud.sagemath.com, hvor man blandt andet kan bruge avancerede matematikfunktioner vha. Python og lave teknisk dokumentation vha. LaTeX.

Efter det var det gruppearbejde for 2.4 og individuelt arb. for 2.3.

Et af de problemer som jeg blev opmærksom, på handlede om scope i et Python script hvor Visual og wxPython brugtes til at bygge den grafiske brugerflade til produktet i projektet Exponentielle modeller. Det handlede om indlæsning af data fra et brugerflade widget af typen wx.TextCtrl(). Indlæsningen skete med GetLineText() i en funktion, men de indlæste data skulle bruges til at opdatere en variabel udenfor funktionen. Det konkrete problem blev løst ved at bruge Python sætningen (statement) global, se https://docs.python.org/2/reference/simple_stmts.html#global, til at fortælle Python at variablen A inde i funktionen faktisk er en global variable. Dette kunne også løses på en mere elegant måde ved at lade funktionen returnere den indlæste værdi til den globale variabel A. Her er et lille eksempel som demonstrerer hvordan scope virker.

a=1
def xx():
    #global a
    a = 2
    print a

xx()
print a

Prøv først at køre koden uden ændringer. Aktiver så global sætningen ved at slette kommentar-symbolet og kør igen. Nu kan du se at den globale variabel a bliver ændret inde i funktionen.

Opstart af projekt "Exponentielle modeller", Gkb 14:13, 23 November 2015 (CET)[edit]

Arbejdsgrupper[edit]

I hver gruppe skal der være tre elever. Inden grupperne dannes skal det overvejes hvordan grupperne bedst muligt sikres brede kompetencer ved at gruppmedlemernes grupperoller overvejses og de skal så registreres sammen med elevens navn i gruppen i tabellen nedenfor.

Her er grupprollerne i Belbin's model:

1. Idémand
2. Opstarter
3. Koordinator
4. Analysator
5. Organisator
6. Kontaktskaber
7. Specialist
8. Afslutter
9. Formidler

Grupper[edit]

  • Gruppe 0: Karl Bjarnason: 1 og 4; Mette Frost Nielsen: 3, 7 og 8;
  • Gruppe 1: Mathias Friis: 3, 5 og 8; Thomas Bork: 1, 2 og 6; Freja Krüger: 4, 7 og 9;
  • Gruppe 2: Ulrik: 6, 3 og 7; Thusholt: 1, 7 og 8; Frederik: 2, 4, 5 og 9;
  • Gruppe 3: Anton Due: 2, 5, 6, 7 og 9; Lukas Petersen: 1, 3, 4, og 8;
  • Gruppe 4: Stefan Harding: 1, 2, 3, 4, 5; Gustav: 6, 7, 8, 9;
  • Gruppe 5: Mads Frich 2, 5; Nicolai Andersen 1,8,9; Nicklas 3,4 6
  • Gruppe 6: Mads Christensen: 4,7,1; Teis Ankerstjerne: 5,2,8; Nicholas fed: 6,3,9;
  • Gruppe 7: Benjamin Sørensen: 2, 5, 6, 7 og 1; Alexander: 3, 4, 8, 9;
  • Gruppe 8: Lasse Juul: 1; Casper Færch: 2,3,4,5,6,7,8; Anders Sparrevohn: 9;
  • Gruppe 9:
  • Gruppe 10:
  • Gruppe 11:

Validering af HTML kodningen på StudieWebbet - Projektusers for aflevering af Læringsprogram på rtgkom.dk, Gkb 14:50, 16 November 2015 (CET)[edit]

Validering af HTML kodningen på StudieWebbet[edit]

I dag skal du afprøve kodningen af dit StudieWeb hos http://validator.w3.org.

  • Start med din index.html.
  • Kopier URI'en fra vores webserver. Brug ikke "file upload" eller "direkte input".
  • Ret de første fejl først. Derved forsvinder ofte nogle af de efterfølgende fejl.

Du skal ikke læse hele specifikationen for HTML 5, men det er en god idé at skimme de første ca. 50 side i gennem. Der defineres mange vigtige begereber, f.eks. "user agent". Her er en link til en single page HTML version af specifikationen, http://www.w3.org/TR/html5/single-page.html.

Projektusers for aflevering af Læringsprogram på rtgkom.dk[edit]

Projektbrugerne bliver oprettet snart.

Rapprotens indhold, Gkb 09:20, 6 November 2015 (CET)[edit]

Se her en vejledning om indhold i projektbeskrivelse og rapport: http://rtgkom.dk/wiki/Guide:Projektbeskrivelse_og_rapport. Denne vejledning sigter på det niveau som er hensigtsmæssigt i eksamensprojekterne i Programmering C og Informationsteknologi B.

I dette projekt kan vi nøjes med at bruge skabelonen for rapporten som inspiration til indholdsafsnit i rapporten. I behøver ikke følge skabelonen, men hvis I savner vejledning om indholdet i rapporten, så kan I bruge den til at vælge hvilke afsnit I vil inkludere i jeres rapport.

User Stories, SCRUM og flowcharting, Gkb 09:33, 30 October 2015 (CET)[edit]

Vi så to videoer for at forstå bedre hvad User Stories kan bruges til og hvordan de indgår i systemudviklingsmetoden SCRUM.

Flowcharting eksempel, algoritme til løsning af en 2. gradsligning[edit]

For at lave et flowchart, rutediagram, er det godt at bruge Dia, men vi behøver normalt kun bruge fem eller måske seks af symbolerne i Dia's flowcharting template. Det er symbolerne for:

  • Start og stop af algoritmen.
  • Input og output af data. Samme symbol kan bruges både for input og output.
  • Bearbejdning af data.
  • Betinget udførsel (altså spørgsmål).
  • Forbindelse til et andet sted i rutediagrammet. En lille cirkel. Ikke brugt i det følgende billed.
  • Forbindelse mellem symbolerne. En streg med pil.

Her er et eksempel (gammelt tavlefootgrafi) som viser hvordan algoritmen for løsning af en 2. gradsligning kan visualiseres med et rutediagram (flowchart).

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

Billedet er et udklip (mishandlet med Gimp for at prøve at fjerne den krafige perspektiv-effekt) fra følgende tavlebilled som viser lidt om hvordan man evt. kunne implementer denne algoritme i et Python program.

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

Læringsprogram - Overordnet metode - Specifikation af funktionalitet - fastholdelse af krav - dokumentering af programmet, Gkb 08:54, 23 October 2015 (CEST)[edit]

Overordnet metode[edit]

Vi bruger vores egen systemudviklingsmetode til at strukturer arbejdet. Se beskrivelse af metoden her: http://rtgkom.dk/wiki/MediaLab:_Systemudviklingsmetode

Diverse afklaring[edit]

  • Programmet kan enten laves i text mode eller med grafisk brugerflade (GUI).
  • Idén til hvordan læringen skal foregå behøver ikke implementeres helt færdig i programmet. Faktisk er det en dårlig idé at forsøge at lave programmet helt færdigt, der er altid nogle detaljer som kan forbedres.
  • Definer nogle krav til programmet og skriv userstories for dem.
  • Brug vores systemudviklingsmetode til at strukturere arbejdet med projektet.
  • Lav mindst to iterationer, altså to prototyper.
  • Vælg explicit hvilke user stories I vil forsøge at implementer i hver iteration og lav en kravspecifikation og en testspecifikation for dem.
  • Brug testspecifikationen (ved afslutning af hver iteration) til at teste om kravene er opfyldt!

Specifikation af funktionalitet - fastholdelse af krav - dokumentering af programmet[edit]

Der findes mange forskellig tilgange og tekniker til at finde og fastholde og kommunikere brugernes og andre interessenters ønsker og krav til IT systemer. En af de nyere og mere interessante er Lene Nielsens Persona-metode, se her http://personas.dk. En anden teknik som er blevet populær er at skrive såkaldte User Stories, se her https://en.wikipedia.org/wiki/User_story.

Her kommer en liste med tips og karv til hvordan vi kan specificere (definere) funktionaliteten i vores program (system) og til hvordan vi kan fastholde krav til systemet og hvordan vi kan dokumentere programmet og arbejdet med udvikling af det.

Bemærk at det efterfølgende afsnit, Krav til dokumentation af programmer, er kopieret uden ændringer fra tidligere oplæg og at det mere eller mindre beskriver de fuldt udfoldede krav til dokumentation af programmer i eksamensprojekter i Programmering C og Informationsteknologi B. I behøver ikke bruge alle punkterne i dette projekt.

Krav til dokumentation af programmer[edit]

Når vi skal dokumenter udvikling af programmer, så kan vi bruge følgende liste over krav til dokumentationen som inspiration. For nogle programmer vil det være mindre meningsfuldt at bruge alle punkterne i listen, og for andre programmer vil der måske behøves tiltag som ikke nævnes i listen. Brug den som inspiration, vælg selv de punkter som du synes relevante for dit program:

  1. User stories, en eller flere, som beskriver brugernes forventninger til programmet. Her er nogle eksempler.
  2. Kerneproblemet (evt. flere problemer). Beskrivelse i prosa, på dansk!, af kerneproblemet, altså det eller de problemer som du skal løse for at komme i gang med programmeringen af den første prototype. (Dette krav er inspireret af "Bottom Up" tilgangen til programmering.)
  3. Beskrivelse af brugerfladen for programmet (tekst UI, eller GUI). Tegn en eller flere skitser!
  4. Use Case diagram, som visualiserer hvem skal bruge programmet og til hvad det skal bruges. Her kan f.eks. ArgoUML eller Dia bruges. Sparxsystems har en beskrivelse af opbygningen i de forskellige UML-diagrammer.
  5. Klassediagram, som viser de vigtigste klasser i programmet. Her kan f.eks. ArgoUML eller Dia bruges.
  6. Input. En beskrivelse af input (inddata) til programmet. Hvilke data, deres datatype og mening for brugeren.
  7. Operationer på inddata, altså en beskrivelse af de operationer som programmet skal udføre på inddata.
  8. Output. Beskrivelse af output (uddata) fra programmet. Hvilke data, deres datatype og mening for brugeren.
  9. Flowchart (rutediagram) som viser programmets logiske opbygning/struktur. (Flowcharting, flowchart, brug gerne programmet Dia og for Dia til Windows se her.
  10. Kildekoden for det færdige program, formateret med en non-proportional font, altså med et skriftsnit hvor alle bogstaver er lige brede. Det bevirker at indrykninger i kildekoden ikke forvanskes. Prøv også at bruge ikke større bogstaver end 12 punkter, evt. kun 10 punkter hvis der er mange lange linier i kildekoden som ellers ville deles på to linier (wrap to the next line).
  11. Skærmbilleder som viser/dokumenterer hvordan det færdige program bruges/virker. Husk at i Windows så kan det det valgte, eller aktive vindue, kopieres til klippebordet (clipboard) med tastkombinationen Alt+PrtScr. Det kan være praktisk for at undgå at skulle paste skærmbilledet ind i et billedredigeringsprogram alene for manuelt at klippe vinduet ud fra hele skærmbilledet.
  12. Et skærmbilled, eller flere, som viser udviklingsmiljøet, kildekoden, Python shell'en og evt. debuggeren i funktion med en kort kommentar/forklaring.
  13. Diskussion/beskrivelse af de sætninge (statements) og evt. funktioner i Python som du har brugt i dit program.
  14. Diskussion/beskrivelse af de eksterne funktionsbiblioteker (Python moduler) du evt. har brugt i dit program.

Læringsprogram, Stefanskh14 14:35, 19 October 2015 (CEST)[edit]

Gruppesammensætning[edit]

Min 2 og max 4 elever per gruppe.

0. Gruppe: HTML for begyndere - Interaktiv HTML kursus, Lær dig om HTML, HEAD og BODY[edit]

Gruppemedlemer: Karl, Karl, Karl

1. Gruppe: Tema - Hurtig hovedregning, Et program som hjælper en med at regne ting ud[edit]

Gruppemedlemer: Frich, Nicholas, Nicklas, Nicolai

2. Gruppe: Tema - 2+3, Algebra for nybegyndere[edit]

Gruppemedlemer: elev:Teis, elev:Mads bc, elev:Gustav, elev:Mathias T

3. Gruppe: Tema - Læring med tal, sandsynlighedstræning[edit]

Gruppemedlemmer: Mathias Friis, Thomas Bork, Ulrik Larsen, Frederik Broless

4. Gruppe: Tema - GUI Manual, Et program der lærer dig at programmere et program[edit]

Gruppemedlemer: Delan Ali, Emil Nielsen, Frederik Berthelsen

5. Gruppe: Alfabetet til børn - Alfabetet 101, Vokaler, store bogstaver og udtalelse[edit]

Gruppemedlemer: Jonas Henriksen, Villiam List, Patrick Jacobsen, Christian Poulsen, Casper Olufsen

6. Gruppe: Tema - Webside for at genlære trigonometri, Trigonometri om retvinklede trekante[edit]

Gruppemedlemer: Stefan Harding, Jonas Struve

7. Gruppe: Indlæring af de fire regningsarter - Quad-Learning, De fire regningsarter[edit]

Gruppemedlemer: Anders Sparrevohn, Casper Færch, Lasse Juul

8. Gruppe: Tema - Matematik for folkeskolen, Læringsprogram i matematik[edit]

Gruppemedlemmer: Lukas Hundt, Anton Due, Alexander Sandager, Benjamin Sørensen

9. Gruppe: Tema - Projekttitel, undertitel[edit]

Gruppemedlemer: elev1, elev2, elev3, elev4

10. Gruppe: Tema - Projekttitel, undertitel[edit]

Gruppemedlemer: elev1, elev2, elev3, elev4

3D model med Blender, en fri øvelse, Gkb 14:10, 7 October 2015 (CEST)[edit]

I dag laver vi en fri øvelse hvor vi laver en 3D model i Blender (eller et andet 3D modelleringsprogram som vi evt. har licens til) og en lille animation.

Det vil være interessant hvis du kan bruge Python til dele eller til hele opgaven, -men det er ikke et krav.

Brug Bink fra http://radgametools.com til at lave en video af de billederne som Blender producerer. Se http://www.radgametools.com/bnkdown.htm og en direkte link på Bink her http://www.radgametools.com/down/Bink/RADTools.exe. Mac bruger kan evt. bruge HandBrake, fra https://handbrake.fr, som også fungerer på Windows og Linux.

Dokumenter arbejdet med et par skærmbilleder og lidt forklarende tekst på dit StudieWeb. Upload både blender filen og videoen.

Der er oprettet en mappe med navnet 3d_model_med_blender til opgaven.

Python i Blender, Onsdag 6. okt. 2015[edit]

Vi afprøvede hvordan man kan bruge Python i Python terminalen inde i Blender til flytte et boksen som default er i alle nye blender filer. Vi brugte følgende kommando:

D.objects['Cube'].location[0]=0

Blender er lige kommet i en ny version, 2.76, og manualen er lidet ændret og opdateret. Den er tilgængelig inde fra Help menuen i Blender. Her er en direkte link: http://www.blender.org/manual/

Vi leger videre med Blender og Python i Blender i morgen.

Rotation, Translation og skalering i Visual[edit]

Afprøv følgende tre animationsprogrammer og forklar hvilken betydning axis og origin har for rotationen. Beskriv kort på jeres StudieWeb, med et eller flere skærmbilleder.

from visual import *
xakse = cylinder(pos=(0,0,0), axis=(10,0,0), radius=0.05, color=(1,0,0))
yakse = cylinder(pos=(0,0,0), axis=(0,10,0), radius=0.05, color=(0,1,0))
zakse = cylinder(pos=(0,0,0), axis=(0,0,10), radius=0.05, color=(0,0,1))

cyl01=cylinder()

for n in range(36):
    rate(10)
    cyl01.rotate(angle=2*pi/36, axis=(0,1,0), origin=cyl01.pos)
from visual import *
xakse = cylinder(pos=(0,0,0), axis=(10,0,0), radius=0.05, color=(1,0,0))
yakse = cylinder(pos=(0,0,0), axis=(0,10,0), radius=0.05, color=(0,1,0))
zakse = cylinder(pos=(0,0,0), axis=(0,0,10), radius=0.05, color=(0,0,1))

cyl01=cylinder()

for n in range(36):
    rate(10)
    cyl01.rotate(angle=2*pi/36, axis=(0,1,0), origin=(1,0,0))
from visual import *
xakse = cylinder(pos=(0,0,0), axis=(10,0,0), radius=0.05, color=(1,0,0))
yakse = cylinder(pos=(0,0,0), axis=(0,10,0), radius=0.05, color=(0,1,0))
zakse = cylinder(pos=(0,0,0), axis=(0,0,10), radius=0.05, color=(0,0,1))

cyl01=cylinder()

for n in range(36):
    rate(10)
    cyl01.rotate(angle=2*pi/36, axis=(0,1,0), origin=(2,0,0))