2013InfB34

From rtgkomArkiv
Jump to: navigation, search

Contents

Spørgetime onsdag d. 28. maj 2014, Gkb 22:52, 31 May 2014 (CEST)[edit]

Efter den skriftlige prøve i matematik, fra ca. 13:30, var der mulighed for at komme forbi i MediaLab og diskutere eksamen, stille spørgsmål til hvordan den gennemføres og kopiere de afleverede filer til en mappe på desktoppen på projektormaskinen i C3101, samt evt. downloade og installere de programmer som er anvendt til udviklingsarbejdet. Vi dramatiserede i grove træk hvordan eksamen forventes at gå for sig.

Her vil jeg nu prøve at give et resumé af spørgetimen for dem som ikke havde mulighed til at komme. Det kan være at rækkefølgen af var anden, og så supplerer jeg evt. med nogle detaljer som jeg ikke nævnede/huskede i onsdags.

Resumé af spørgetimen[edit]

Demonstration af produkt og udviklingsmiljø[edit]

Der anvendes flere forskellig programmeringssprog og udviklingsværktøjer i klassens eksamensprojekter. Produkterne er af forskellig karakter og lader sig ikke alle lige let demonstrere til eksamen, men det er vigtigt som minimum at vise frem det resulterende produkt, det vil sige den sidste prototype som blev designet, implementeret og testet i projektet.

Ud over det kan det være en gode idé også at vise frem nogen eller alle af de tidligere prototyper, alt efter omstændighederne.

Og desuden kan det også være en god idé også at vise frem det udviklingsmiljø som blev anvendt til at udvikle produktet, og evt. vise hvordan en lille ændring kan laves på produktet og så vise hvordan ændring kommer til udtryk i produktet når det afprøves. Dette gælder både om projekter som kun består af software og også om produkter som består både af hardware og software. Dette gælder også om produkter som er udviklet ved hjælp af f.eks. 3D modelleringsværktøjer. Der kan laves ændringer på 3D modellen og effekten af denne ændring på det renderede billed eller animation kan observeres.

Det er vigtigt at gøre sig klart at det ikke er noget lodret krav om at fremvise udviklingsmiljøet og om at lave en ændring på produktet til selve eksaminationen, -men da I bruger så mange forskellige og avancerede værktøjer, så kan det både være ganske interessant og så viser det også noget om hvor godt I kender jeres værktøjer.

Det er også vigtigt at huske at demonstration af produktet skal ske med udgangspunkt i det afleverede produkt. For eksempel når det handler software, så er det de kildekodefiler som blev afleveret som skal bruges.

Hvis I ønsker at anvende projektoren til at vise produktet og evt. også udviklingsmiljøet, så er det meget vigtigt at anvende selve projektormaskinen til præsentationen, for at undgå at skulle flytte videokablet frem og tilbage mellem computere. Hvis du absolut skal koble din egen bærbare computer til projektoren, så må du prøve at øve det i god tid inden eksamen, således at du er forberedt og ved hvordan du skal bruge projektoren fra din maskine. Det kan både kræve særlige omformer-stik og så har de forskellige operativsystemer og præsentationsprogrammer ofte nogle specielle overraskene funktioner som aktiveres når man kobler en extern skærm til computeren. Det kan tage flere minutter at løse disse problemer!!!

På baggrund af de ovenfor nævnte forhold så foreslår vi følgende prioritering af hvordan fremvisning af produkter og udviklingsmiljø skal gennemføres:

  1. Fra projektormaskinen:
    1. Det er bedst hvis produktet kan demonstreres direkte ved hjælp af de filer som blev afleveret på projektets projektbruger. Dette lader sig normalt kun gøre i tilfælde af web-produkter.
    2. For andre produkter så kan filerne kopieres over til en mappe på desktoppen på projektormaskinen. Udviklingsmiljøet skal selvfølgelig være installeret i forvejen. Demonstrationen kan således ske på projektormaskinen uden at flytte vidoekablet.
  2. Fra din egen bærbare computer: Det kan i nogle tilfælde være den enkleste løsning at bruge din egen computer. Det gælder specielt hvis udviklingsmiljøet er svært eller evt. umuligt at installere på projektormaskinen, som pt. er en Windows XP med service pack 3 og .Net 4, vistnok. Hvis du bruger din egen computer, så er et en god idé at starte demonstrationen med at downloade de afleverede projektfiler fra projektbrugeren på rtgkom.dk.

Eksaminationens forløb[edit]

Der er afsat 30 minutter for hver elev. Et typiskt forløb kan være som følger. Bemærk at dette er min tolkning, baseret på erfaringen fra tidligere prøver. Bemærk også at eksamen kan godt tage kortere tid end de afsatte 30 minutter.

  1. Ca. 1 - 2 min. til at komme ind i lokalet, hilse på censor og starte præsentationen af projektet.
  2. Ca. 10 - 15 min. til præsentationen
  3. Ca. 5 - 10 min. til udybende samtale
  4. Ca. 1 min til at forlade lokalet. Tag din comuter med!
  5. Ca. 2 - 5 min til votering
  6. Ca. 1 min til at hente eleven ind i lokalet og meddele karakteren. Bemærk at dette er summativ evaluering og der gives derfor ingen begrundelser for karakteren ud over det som ligger i selve karakteren og dens beskrivelse i "Bekendtgørelse om karakterskala og anden bedømmelse", https://www.retsinformation.dk/Forms/R0710.aspx?id=25308. Her kommer en lille kopi fra bekendtøgrelsen.
§ 2. Karakteren 12 gives for den fremragende præstation, der demonstrerer udtømmende opfyldelse af fagets mål, med ingen eller få uvæsentlige mangler.
§ 3. Karakteren 10 gives for den fortrinlige præstation, der demonstrerer omfattende opfyldelse af fagets mål, med nogle mindre væsentlige mangler.
§ 4. Karakteren 7 gives for den gode præstation, der demonstrerer opfyldelse af fagets mål, med en del mangler.
§ 5. Karakteren 4 gives for den jævne præstation, der demonstrerer en mindre grad af opfyldelse af fagets mål, med adskillige væsentlige mangler.
§ 6. Karakteren 02 gives for den tilstrækkelige præstation, der demonstrerer den minimalt acceptable grad af opfyldelse af fagets mål.
§ 7. Karakteren 00 gives for den utilstrækkelige præstation, der ikke demonstrerer en acceptabel grad af opfyldelse af fagets mål.
§ 8. Karakteren -3 gives for den helt uacceptable præstation.

Vi vil forsøge meget at følge den tidsplan som er lavet for eksamen.

Bærbar versus projektor[edit]

Det kan blive ret meget lys i lokalet om eftermiddagen projetorbilledet på væggen bliver så lidt utydeligt. Mange bærbare computere har en ret så god skærm, og det kan derfor være en god grund til bruge den bærbare maskine til præsentationen.

Du kan bruge din bærbare computer til både præsentationen og til at demonstrere produktet og udviklingsmiljøet. Du stiller bare maskinen på bordet framfor censor, og så kan du styre maskinen fra dens venstre side og jeg ser med fra højre side. Dette har virket udmærket før!

Pass på at oplade batteriet og/eller bringe strømforsyningen med til eksamen.

Backup af præsentationen[edit]

  • Udskriv gerne præsentationen på papir.
  • Læg den også op på dit StudieWeb.
  • Den skal selvfølgelig også ligge på din bærbare computer.

Bedømmelseskriterier og faglige mål[edit]

Her er en kopi af afsnittet om bedømmelseskriterierne som skal bruges til den mundtlige prøve. Bemærk at der henvises til målene i pkt. 2.1, og derfor har jeg også kopieret dem.

4.3. Bedømmelseskriterier

Bedømmelsen er en vurdering af, i hvilket omfang eksaminandens præstation lever op til de faglige mål, som de er angivet i pkt. 2.1.

Der lægges vægt på:

– analysen og beskrivelse af projektets problemstillinger

– problemløsning og valg af løsninger, herunder nyskabende værdi

– kvaliteten af det praktiske produkt

– fremlæggelsen og forsvaret af projektet

– rapportens dokumentations- og kommunikationsværdi

– besvarelse af uddybende og supplerende spørgsmål.

Der gives én karakter på grundlag af en helhedsbedømmelse af eksaminandens præstation omfattende projektrapporten, produktet og den mundtlige prøve.

Og her er de faglig mål, og bemærk at "bedømmelsen er en vurdering af, i hvilket omfang eksaminandens præstation lever op til" disse faglige mål.

2.1. Faglige mål

Eleverne skal kunne:

– redegøre for grundlæggende funktioner af it-komponenter (hardware og software) og samspillet mellem dem

– redegøre for samspillet mellem it-komponenter og bruger

– redegøre for samspillet mellem it-komponenter og de fysiske omgivelser

– beskrive sammensatte systemer opbygget af virtuelle niveauer

– analysere og beskrive sikkerhedsbehov og risikofaktorer ved brug at et givent it-system

– 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

– anvende it som interaktivt medie til dokumentation og kommunikation

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

Se gerne selv nærmere i bilaget for faget i Htx-bekendtgørelsen, https://www.retsinformation.dk/Forms/R0710.aspx?id=152550#Bil16

Præsentationens opbygning[edit]

Der kom et spørgsmål om der skal laves en multimediepræsentation med et værktøj som f.eks. PowerPoint eller OpenOffice Impress eller som en webside, og svaret er Nej!, -det er ikke et krav at der skal laves den type af medieprodukt.

Men det er et krav at projektet skal præsenteres, og det kan være meget praktiskt at støtte sig til sådan en multimediepræsentation når man præsenterer projektet.

Her kommer nogle generelle bemærkninger om præsentationen som jeg gentog vistnok flere gange i onsdags:

  • Rettelsesblad, med en liste over fejl som du har opdaget i rapporten, kan uddeles i begyndelsen af præsentationen.
  • Vent ikke for længe med at vise selve produktet i brug.
  • Giv et overblik over projeket.
  • Dyk ned i nogle enkelte detaljer i designet og/eller koden, evt. i forbindelse med et problem/fjel som var svært at løse.
  • Vis gerne hvordan en lille ændring kan indføres i produktet.
  • Anvend ikke rapporten til direkte at strukturere præsentationen. Men brug gerne indhold fra den i præsentationen.

Grov model for indhold i præsentationen[edit]

Indeholdet i præsentationen kan kort beskrives således at præsentationen skal fortælle

  • hvad du/I gjorde i projektet,
  • hvordan du/I gjorde og
  • hvilket resultat der kom ud af dit/jeres arbejde.

En lidt mere udfoldet model for indhold i præsentationen[edit]

En lidt mere udfoldet model for opbygning af præsentationen kan være:

  1. Gør rede for problemstillingen og løsningsforslagene.
  2. Gør rede for det valgte løsningforslag.
  3. Gør rede for karv og forventninger til produktet.
  4. Gør rede for design af hvordan disse krav og forventninger kan implementeres.
  5. Gør rede for implementeringen af designet
  6. Gør rede for afprøvning

En mere udfoldet model for indhold i præsentationen[edit]

En mere udfoldet model for opbygning af præsentationne kunne være at støtte sig til de syv aktiviteter i vores systemudviklingsmetode.

Da hver aktivitet har to delaktiviteter, så er der 14 emner som kan inspirere til indhold i præsentationen, -og så gentages (itereres) fem af aktiviteterne for hver prototype som I har udviklet. Her er et link til beskrivelse af metoden: http://rtgkom.dk/wiki/MediaLab:_Systemudviklingsmetode

Udvælg de aktiviteter og delaktiviter som giver mening for dig og for dit projekt.

Computere til rådighed til eksamen[edit]

  • Projektormaskinen med Windows XP med service pack 3 og .Net 4, vistnok.
  • En maskien med Ubuntu vistnok 12.04, til højre for projektorlærredet. Kan ikke kobles til projektoren.
  • En Mac, til højre for projektorlærredet. Kan ikke kobles til projektoren.
  • Din egen bærbare computer kan også bruges.

Hvis du vil bruge disse eller andre maskiner i lokalet, så er et i orden, vi står gerne op og flytter os rundt i lokalet.

Produkter som består delvis af hardware[edit]

Afleveret hardware vil være i eksamenslokalet og kan kobles til projektorcomputeren eller din egen computer.

Sidste modul i år, Gkb 10:15, 14 May 2014 (CEST)[edit]

I dag har vi det sidste modul i faget. Eksamensprojektet er afleveret og I bliver snart studenter, men der er tre emener som vi skal arbejde lidt med i dag. De er:

  • Evaluering af undervisningen i faget. Der ligger et lille spørgeskema i Lectio. Vil I være så venlige at bruge nogle minutter på at svare på det. Det hjælper os med at udvikle undervisningen og samarbejdet med vores elever i MediaLab.
  • Mundtlig eksamen. Hvordan vil en eventuel mundtlig eksamen foregår, og hvordan man kan forberede sig.
  • Diskussion og gode råd fra jer om hvordan RTG MediaLab kan håntere det voksende antal StudieWeb's på vores webserver. Skal vi aktivt tilbyde gamle elever fortsat fuld adgang til serveren, eller skal vi gøre noget andet? Hvad f.eks. med de gamle brugeres personlige integritet i tilfælde af at vi bare helt enkelt fjærner/sletter alle StudieWeb's som er mere end f.eks. et år gamle? Kan vi evt. opbygge et mere aktivt miljø hvor gamle elever kan give vores elever gode råd om løsning af div. udviklings/programmeringsproblemer?

Aflevering, Gkb 13:57, 9 May 2014 (CEST)[edit]

I dag afleverer klasse 3.4 projekter i både Programmering C og Informationsteknologi B.

I skal aflevere både på Fronter og på den projektbruger som er oprettet til jeres projekt på rtgkom.dk.

Da alle i klassen har valgt at arbejde med det samme projekt i både Programmering C og Informationsteknologi B, så har vi oprettet en fælles mappe i Fronter for aflevering i begge fag. Her er et link direkte til afleveringsmappen: http://fronter.com/rts/links/structureprops.phtml?treeid=122839

Sørg for at det er tydeligt af filnavnene hvilket pdf dokument er rapport for Informationsteknologi B og hvilket pdf dokument er journal for Programmering C. Det kan du for eksempel gøre ved at kalde dem informationsteknologi_b_rapport.pdf og programmering_c_journal.pdf.

Produktet skal også afleveres. Hvis produktet består af en enkelt eller meget få filer, så upload dem bare enkeltvis. Men hvis det handler om en eller flere store filer eller mange filer og evt. mapper, så pak det hele til et .zip arkiv som gerne må hedde produkt.zip.

For at aflevere på projektbrugeren for projektet på rtgkom.dk, så logger du på serveren med dit vanlige userID og password, f.eks. med WinSCP eller FileZilla, og browser op til mappen "files", der ligger mappen "projects", og din projekt user har sit home directory i denne mappe.

Hvis du ikke kan huske navnet på din projektbruger, så klik på "Projekt publisher" på rtgkom.dk, for at gå til listen over projektbrugere og find dit projekt der. Her er et link til listen: http://www.rtgkom.dk/prpub2.php

Det er i mappen "public_html", som du skal lægge din aflevering. Aflever de samme filer som på Fronter.

Prototyperunde, Dokumentation, Profiling, Gkb 13:45, 1 April 2014 (CEST)[edit]

Prototyperunde[edit]

I dag så jeg prototyper hos flere af projektgrupperne. Funktionaliteten i dem alle nærmer sig kraftigt, eller er allerede tilstrækkelig til formålet, -nemlig at danne et grundlag for dokumentation af udviklingsarbejdet (rapporten) og præsentation til eventuel mundtlig eksamen.

På torsdag i næste uge præsenterer grupperne prototyper for hinanden, -parvis. Og i 3. modul har vi så nogle præsentationer i plenum.

Dokumentation[edit]

Husk at censor får ikke produktet tilsendt og han/hun skal ikke (vil ikke) afprøve produktet. Produktets udvikling i gennem mindst to prototyper skal derfor dokumenteres godt i rapporten. Det færdige (den sidste prototype) produkts funktionalitet og brugerflade skal selvfølgelig dokumenteres i detaljer i rapporten, eventuelt delvis i bilag hvis der er mange forskellige skærmbilleder i produktet.

Profiling[edit]

Erik og Frederik R, som laver Jernbane-imperiet, et digitalt brætspil med Pygame, diskuterede at spillet virkede lidt sløvt. I den forbindelse kan det være af interesse at prøve at finde hvilke funktioner i programmet konsumerer mest processortid. Det kan gøres ved hjælp af teknik/fremgangsmåde som kaldes profilering (profiling).

Modulet cProfile, https://docs.python.org/2/library/profile.html, følger med Python og det bruges som vist nedenfor.

import cProfile
cProfile.run('main()')

hvor main() er vores hovedprogram, som eksekverer funktinen sum() 100 gange. Her er en kopi fra Python shell'en som viser hvordan funktionerne sum() og main() er defineret og hvordan profileren kaldes.

>>> def sum(a,b):
...   return a + b
... 
>>> def main():
...   for i in range(100):
...     print i, sum(i**i,i**i)
... 
>>> cProfile.run("main()")
0 2
1 2
2 8
3 54
4 512
5 6250
6 93312
7 1647086
8 33554432
9 774840978
10 20000000000
... og så videre ...

Profileren laver så følgende tabel:

         104 function calls in 0.003 seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.003    0.003    0.003    0.003 <stdin>:1(main)
      100    0.000    0.000    0.000    0.000 <stdin>:1(sum)
        1    0.000    0.000    0.003    0.003 <string>:1(<module>)
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        1    0.000    0.000    0.000    0.000 {range}

Oprettelse af projektbrugere og aflevering af projektbeskrivelse, Gkb 18:09, 6 March 2014 (CET)[edit]

  • Nu har jeg oprettet projektbrugere for de grupper (7 stykker) som har registreret sig i tabellen nedenfor.
  • Projektbeskrivelsen skal afleveres i mappen default_html, samme mappe som de fire placeholder filer ligger (about.txt, thumb1.jpg, thumb2.jpg og thumb3.jpg). Der er et link til Project publisher i vores hovedartikel i wiki'en.

Registrering af arbejdsgrupper, problemformulering mm, Gkb 13:03, 27 February 2014 (CET)[edit]

2013InfB34-Eksamensprojekt - registrering af arbejdsgrupper
Udfyld nedenstående skema...
Gruppenr. Gruppemedlemmernes navne Projektets website Problemformulering Titel Undertitel Afsender Budskab Modtager (målgruppe) Kanal (medie) Effekt hos modtageren Tools
0 Karl Bjarnason Det problem som jeg vil forsøge at løse i mit projekt er at mange gymnasieelever har svært at forstå betydningen af størrelsen og fortegnet på konstanterne a, b og c i en andengradsligning. Stor eller lille, positiv eller negativ Konstanternes betydning i en andengradsligning Forlaget Virtuel Læring AS Du kan godt lære matematik, du kan lære på egen hånd, ... Gymnasieelever i Danmark Program som formidles over WWW. Bedre kundskaber om andengradsligningen og deraf bedre selvtillid og ... Lazarus (open source efterligning af Delphi!)
1 Andreas Lorentzen http://www.rtgkom.dk/~2013infb34_eksamensproj_gr01/ Det problem som jeg vil forsøge at løse i mit projekt er beskæring og skalering af billeder online. Online billedformatering Beskæring og skalering Du kan godt lave de to simpleste formateringer af billeder, beskæring og skalering, uden et billedebehandlingsprogram. Alt hvad du skal bruge er en browser og forbindelse til internettet. Det skal være nemmere og hurtigere at beskære og skalerer billeder Javascript & PHP
2 Philip http://www.rtgkom.dk/~2013infb34_eksamensproj_gr02/ Jeg vil gøre det nemmere at administrere brugere i MediaLabs systemer. Open Education Platform Student management made simple Administratore af elever i MediaLab or andre undervisnings situationer. Web application Python, Flask
3 Jonas D og Alexander http://www.rtgkom.dk/~2013infb34_eksamensproj_gr03/ Vi ønsker at lave et spil hvori formålet er at komme igennem en skydebane med højst muligt point. Projekt Skydebane Et eksperiment i Irrlicht Abstract Turtle Spil kan også laves i grafik engine. Os selv Computerspil til Windows Større viden om hvordan en grafik engine virker og kan bruges. Visual Studio C++ 2010, Irrlicht 3D engine
4 Erik og Frederik R http://www.rtgkom.dk/~2013infb34_eksamensproj_gr04/ Vi vil arbejde med et digitalt brætspil der bruger en tilfældigt genereret spilleplade til at differentiere spillet fra gang til gang. Jernbane-imperiet Et digitalt brætspil Conga Gnomes inc. (CGi) At spille spil er hyggeligt og en god måde at udfordre sig selv. Folk der spiller strategiske brætspil. Computer program/spil Sjov. Udfordring. PyGame, Paint.NET og Notepad++
5 Nikolaj J og Suayb http://www.rtgkom.dk/~2013infb34_eksamensproj_gr05/ Vi vil lave et spil med LED dioder ud fra Arduino. Puzzle LED LED Arduino
6 Lau og Tobias http://www.rtgkom.dk/~2013infb34_eksamensproj_gr06/ Vi vil gerne kunne komprimere tekst Tekstkomprimering Komprimering af tekst
7 Mads og Magnus http://www.rtgkom.dk/~2013infb34_eksamensproj_gr07/ Vi vil gøre det nemmere at låne bøger på biblioteker. BibScan Os Biblioteks gæster App Android & Java
8 Mikkel G og Hass http://www.rtgkom.dk/~2013infb34_eksamensproj_gr08/ Blackjack Blackjack med mere Mikkel & Hass aps Spil vores spil Folk der kan lide casinospil Nettet Spiller blackjack html,css,javascript
9 Michel Leif Hansen http://www.rtgkom.dk/~2013infb34_eksamensproj_gr09/ Jeg vil gerne lave et spil der ikke holder en spillere i hånden men udfordre spilleren til at bruge sin egen viden. DODGE!! 2D side scroller Migselv eller #Hastag inc Prøv at tænke ud af boxen engang imellem. Folk der kan lide at spille 2D side scroller Computer spil til PC udfordring og underholdende Unity Engine
10 Mikkel Karoli Johnsen http://www.rtgkom.dk/~2013infb34_eksamensproj_gr010/ Online formelsamling Online formelsamling/regnemaskine Mig selv Hjælp til formler i matematik Unge studerende Nettet
11 Benjamin F. Walther Jensen http://www.rtgkom.dk/~2013infb34_eksamensproj_gr11/ Jeg vil i dette projekt lave en 3d model i Blender og få den til at bevæge sig og dermed lave en animation.

Jeg vil lave animationen ved at kode med python i blender.

Animeret 3d model i Blender Mig selv Vise noget via en figur Mennesker med adgang til en computer computer Blender
12 Emil B. Olsen og Niclas C. Frank http://www.rtgkom.dk/~2013infb34_eksamensproj_gr12/ Det problem vi vil arbejde med er, at vi vil fjernstyre en robot, og lave et spil som man kan spille, hvor man styre robotten igennem en række forhindringer. iRobot Create + Raspberry Pi - Projekt. Fjernstyring af iRobot Create, ved hjælp af Raspberry Pi. Os. Folk med interesse for robotter og spil. Python,
13 Malte Pedersen http://www.rtgkom.dk/~2013infb34_eksamensproj_gr13/ Elevers tendens til arbejde i andre rum end klasselokalet, grundet det manuelle arbejde der ligger fraværsregisteringen, gør det registreringen, vha. Lectio, til et uhensigtsmæssigt system. Optimeret Fraværsregistrering En moderne løsning til fraværsregistrering af elever. Mig. Fraværsregistrering bør kunne optimeres. Lærere (det gør det lettere for dem) og elever (systemet skal være hensigtsmæssigt over for eleverne) Arduino, RFID
14 Rasmus Bøje Larsen, Jonas Rishøj Hansen og Mathias Sondrup http://www.rtgkom.dk/~2013infb34_eksamensproj_gr14/ Det problem vi gerne vil løse i dette projekt, er hvordan det er muligt at lave en blog/forum hvor der er mulighed for at skabe et seriøs community med udgangspunkt i artikler og kommunikation blandt sidens bruger. FOOTBALLers Fodbold blog og forum Os Optimering af kompination mellem blog og forum Moderne blå segment HTML side Oplevelsen af en god kompination af blog og forum PHP, MYSQL, HTML, CSS og JavaScript
15 Nicolai R & Tobias L http://www.rtgkom.dk/~2013infb34_eksamensproj_gr15/ Det kan ofte være svært at holde styr på, hvem der låner hvad, og hvem der ikke har afleveret udstyret igen. Det vil vi gerne finde en løsning på NemBib Gør det nemt at låne udstyr Os At gøre det nemt for brugere at registrere udlån og aflevering af bøger, udstyr eller anden inventar Kontorer, dog også medierum på fx. skoler HTML side Brug af vores system HTML, CSS, PHP, MySQL, JavaScript
16 Andreas Sode http://www.rtgkom.dk/~andreass11/Afsluttendeprojekt/ Mange forsøger at score med dårlige scorereplikker i byen, vi vil finde de bedste, så der er større chance for at de virker. Score_appen Emulator fra http://www.bluestacks.com/, HTML, ...?
17 http://www.rtgkom.dk/~2013infb34_eksamensproj_grXX/
18 http://www.rtgkom.dk/~2013infb34_eksamensproj_grXX/
19 http://www.rtgkom.dk/~2013infb34_eksamensproj_grXX/
20 http://www.rtgkom.dk/~2013infb34_eksamensproj_grXX/
21 http://www.rtgkom.dk/~2013infb34_eksamensproj_grXX/
22 http://www.rtgkom.dk/~2013infb34_eksamensproj_grXX/
23 http://www.rtgkom.dk/~2013infb34_eksamensproj_grXX/
24 http://www.rtgkom.dk/~2013infb34_eksamensproj_grXX/
25 http://www.rtgkom.dk/~2013infb34_eksamensproj_grXX/
26 http://www.rtgkom.dk/~2013infb34_eksamensproj_grXX/
27 http://www.rtgkom.dk/~2013infb34_eksamensproj_grXX/
28 http://www.rtgkom.dk/~2013infb34_eksamensproj_grXX/
29 http://www.rtgkom.dk/~2013infb34_eksamensproj_grXX/

Plenummøde, Flere idéer til tema for jeres projekt, Gkb 10:50, 14 February 2014 (CET)[edit]

Plenummøde[edit]

Vi holder et plemummøde kl. 11:15, hvor vi får Jens Andersen på besøg. Han vil fortelle om:

  • et projekt med en ekstern rekvirent som KomItA15 laver nu, Webportal for førstegangsgravide, og
  • det virtuelle museumsprojekt, og
  • 3D brætspilsprojektet

Han kan i øvrigt svare på spørgsmål om flere af de interne (på RTG MediaLab) projektidéer i vores ToDo liste, se her http://rtgkom.dk/wiki/MediaLab:_Drift_og_vedligehold#To_Do.

Flere idéer til tema for jeres projekt[edit]

Vi har lige begyndt på at registrere nye idéer som eksterne rekvirenter (folk eller organisationer udenfor skolen) har vist interesse for at udvikle i samarbejde med RTG-MediaLab. Det er indtil videre meget korte beskrivelser, men se på listen og hvis I er interesseret og har spørgsmål så kan vi tage det op i plenummødet. Der er en link til artiklen på forsiden af vores wiki, se her http://10.0.0.15/wiki/Ministry_of_Innovation,_open_source_projektid%C3%A9er.

ToDo listen er opdateret med ca. 10 nye eller gen-formulerede idéer. Se her http://rtgkom.dk/wiki/MediaLab:_Drift_og_vedligehold#To_Do.

Resource planlægning med GanttProject Philip 10:44, 14 February 2014 (CET)[edit]

Kopieret fra klasse 1.2s wiki artikel (af Gkb): Og nu, kl. ca. 10:57, lettere redigeret af gkb.

Jeg har i sidste uge lavet et udkast til en skabelon for resurseplanlægning med GnattProjekt, hvor jeg har brugt navnene på aktiviteterne i vores systemudviklingsmodel til definere Tasks, og jeg har defineret forgænger for hver task, således at Gnatt diagrammet begynder at se lidt rigtigt ud.

Tiden for hvert task skal I selv indtaste, ligesom jeg ikke definerede subtasks for aktiviteterne i 2. iteration. Jeg har brugt forkortelser for aktiviteterne i 2. iteration, men de skulle være til at afkode ved at se på navnene på aktiviteterne i 1. iteration, hvor jeg har noteret forkortelsen sidst i navnet på aktiviteterne.

I må gerne bruge denne skabelon som udgangspunkt for resurseplanlægningen i jeres eksamensprojket.

Jeg har kun defineret tasks for to iterationer, og jeg har ikke defineret tiden for hvert task. Jeg har heller ikke defineret resurserne, -det vil normalt være jer selv.

Her er en link til skabelonen: http://rtgkom.dk/~gkb/pubdoc/Generisk_model_for_resurseplanlaegning_for_projekter_i_RTG_MediaLab.gan http://rtgkom.dk/~gkb/billeder/generisk_resurseplan_473x365.png

Eksamensprojektet, Gkb 10:08, 13 February 2014 (CET)[edit]

I dag starter vi eksamensprojektet. Her er en link til oplægget: http://rtgkom.dk/~gkb/pubdoc/2014InfB34-oplaeg-til-afsluttende-projekt.pdf

I kan arbejde med mange forskellige produkter i jeres projekt. Her er en liste over nogle idéer som vi har samlet på i løbet af de sidste år, http://rtgkom.dk/wiki/MediaLab:_Drift_og_vedligehold#To_Do.

Afslutning af forløbet Selvvlagt tema, Gkb 10:19, 7 February 2014 (CET)[edit]

I dag afslutter vi forløbet Selvvalgt tema, som vi har været i gang med siden begyndelsen af januar. Vi har to moduler i dag.

  1. Det første modul bruger vi til at forberede præsentationen og dokumentere forløbet på vores StudieWeb.
    1. Upload et eller flære skræmbilleder til jeres StudieWeb og skriv en kort redegørelse om hvad I har arbejdet med.
    2. Forbered en præsentation, max ca. 5 min, med nogen visuelle virkemidler, gerne baseret på det som I har uploadet til jeres StudieWeb.
  2. I det sidste modul har vi så præsentationer, hvor I forteller klassen hvad I har arbejdet med i forløbet. DEr bliver plenumdiskussion efter behov og interesse efter hver præsentation.

Irrlicht Grafik Engine, Alexanderb11 11:10, 30 January 2014 (CET)[edit]

Jonas Degn, og jeg har arbejdet de sidste 3 uger med grafik enginen Irrlicht, som en et modul til c++. En grafik engine er et modul som kan behandle grafik, det fungerer på den måde at man loader en "mesh" (en model, oftest 3D). Denne mesh loader vi en "texture" (Et 2D billede) på, og på den måde får man et objekt som ligner ens texture. Grafik engines er altid en del af en game engine, idet at den er nødvendig for at "rendere"(tegne) grafikken i et spil.


Vores projekt gik ud på at lave et "map"(en bane) i vores grafik engine, og derefter lave en 3D model, af en 2D sprite (Forestil dig spil som Doom eller Shadowrun), dog først skulle vi lære hvordan man begik sig i dette modul.

http://irrlicht.sourceforge.net/ (Link til Irrlichts hjemmeside)


De første problemer vi løb ind var da vi skulle installere modulet. Det var problematisk idet at vores installation ikke kunne finde vores grafik drivere i første omgang. Problemet skyldes at installations guiden ikke var omfattende nok, den havde ikke beskrevet at man skulle flytte medie mappen til ens pågældende projekt. Vi forsøgte i første omgang med Code::Blocks dernæst med Netbeans, dog havde disse samme problem, til sidst forsøgte vi os med Microsoft Visual IDE, og dette lykkedes nemmere, i det at de projekt filer som tilhørte Visual referede til den korrekte medie mappe.


Efter vi havde fået vores modul installeret korrekt, påbegyndte vi vores indlæring af modulet. Vi startede med at finde ud af hvordan vi kunne loade vores eget map, og hvilke restriktioner der lå deri. Vi fandt ud af at grafik enginen kun kunne loade .bsp filer fra Quake 3, efter vi havde forsøgt med Valves Hammer map editing software.


Vi har her et link til vores program, den består af en bane, Irrlicht enginen og vores kode. I vores program kan vi bevæge vores kamera rundt med piltasterne og med musen. Vores bane er en simpel kasse.

http://www.rtgkom.dk/~jonasvd11/forberedeksamen/game.zip

Programmet kan køres ved at åbne .exe filen. Programmet kræver at man har OpenGL eller DirectX installeret og at man har Visual C++ Runtimes installeret.


http://www.rtgkom.dk/~jonasvd11/forberedeksamen/projekt.zip

Dette er vores projekt mappe. For at kunne arbejde med dette projekt, skal man have installeret Visual C++ Express 2010, og importere Irrlicht 1.8.1 (Her findes en guide: http://www.youtube.com/watch?v=BsIMqFIi3II)

Text field with Pygame, --Gkb 10:54, 6 December 2013 (CET)[edit]

http://www.pygame.org/pcr/inputbox/ kan man se et eksempel på hvordan man indlæse tekst fra tastaturet i Pygame. Vi så en henvisning til dette eksemple på http://stackoverflow.com/questions/17450683/using-text-inputs-in-pygame.

Forbindelse til RTGKom.dk MySQL database udefra, --Jonasvd11 21:57, 28 November 2013 (CET)[edit]

MySQL databasen på RTGKom.dk kan kun tilgås fra netværket selv, derfor kan man ikke bare sende data fra sine spil direkte til databasen.

Måden man kan løse dette er ved at have en PHP fil liggende på RTGKom.dk som kan tilgå databasen og på samme tid tilgås udefra, den virker altså som en gateway.

Klienten[edit]

I klienten, altså Python spillet vi er igang med at kode, skal man have noget kode som kan sende en HTTP POST request.
Den kode som vi bruger i min gruppe til at sende data til databasen ser sådan her ud:

import urllib
import urllib2

url = 'www.rtgkom.dk/~brugernavn/mappe/send.php'
values = {'key' : 'en nøgle der sikrer at kun spillet får adgang',
          'name' : 'brugernavnet som har opnået en highscore',
          'score' : 'den score som brugeren har opnået' }

data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
thePage = response.read()
if (thePage == 'Complete sir!'):
    print 'Data sendt'

Koden konvertere vores data om til URL data for at matche standarderne, ved at lave fks. specialtegn om, sender dataen og læser resultatet.
Hvis resultatet er 'Complete sir!' så har server delen kørt alting som den skulle og vi kan fortsætte i vores spil.

Serveren[edit]

Serveren skal håndtere alt trafikken til databasen og det gør vi med den her kode som er delt i 3 dele:

$name = $_POST['name'];
$score = $_POST['score'];
$key = $_POST['key'];

if ($key != 'vores nøgle til spillet') {
    die('Denne fil kan kun tilgås af RTGMan V2');
}

Denne del af koden henter vores variabler som bliver sendt og tjekker om nøglen er god nok, ellers så stopper scriptet med en besked.

$host = 'localhost';
$port = 3306; 
$database = 'databasenavn';
$username = 'brugernavn';
$password = 'kodeord';
$dcon = "mysql:host=$host;port=$port;dbname=$database";

try {
    $dbh = new PDO($dcon, $username, $password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	$dbh->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES utf8");
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

Denne del forbinder til RTGKom.dk MySQL databasen med de oplysninger vi har fået givet, og smider en fejl hvis der er problemer.
I vores tilfælde er navnet til databasen og brugeren det samme som vi bruger til at logge ind igennem FTP.

$stmt = $dbh->prepare("INSERT INTO highscore (name,score) VALUES (?,?)");
$stmt->bindValue(1,$name,PDO::PARAM_STR);
$stmt->bindValue(2,$score,PDO::PARAM_INT);
$stmt->execute();
echo 'Complete Sir!';

Den sidste del sender dataen vi har, i dette tilfælde vil vi indsætte en ny bruger i vores highscore.

I PHP har vi valgt at bruge PDO til at forbinde til vores database, men man kan også bruge MySQLi, man skal bare holde sig fra de indbyggede PHP MySQL funktioner.

Projektbrugere, projektbeskrivelse, adgang til MySQL, "Computerspil som vindue til læring", --Gkb 21:58, 20 November 2013 (CET)[edit]

Projektbrugere[edit]

Jeg har nu oprettet projektbrugere til projektgrupperne.

Projektbeskrivelser, aflevering af[edit]

Vi aftalte i sidste uge at projektbeskrivelser skulle afleveres inden torsdagen, men det er i orden hvis I lægger dem på projektets websted i løbet af i morgen, torsdag.

Adgang til MySQL databaser fra et Python script som ikke kører på selve webserveren[edit]

Philip lagde i torsdags mærke til at vores MySQL server ikke accepterer pålogning fra fjærne servere, og det er et problem hvis vores spil skal virke på andre maskiner end selve serveren. Af sikkerhedsmæssige grunde kan vi nok ikke åbne for adgang for programmer som kører på andre computere. Dette kan evt. løses ad omveje vha. PHP eller en SSH forbindelse, men indtil vi har overblik over mulighederne, så vent med database funktionen.

Registrering af projektgrupper for projektet "Computerspil som vindue til læring", --Gkb 11:16, 15 November 2013 (CET)[edit]

Grupper:

  1. Philip, Frederik Rasmussen, Michel Hansen, 3 i gruppen: philiph10, frederikltr11, michellh11
  2. Andreas Lorentzen og Casper, 2 i gruppen: andreasl11, casperwmn11
  3. Mikkel Grønning, Mikkel Karoli Johnsen, Tobias Sønderskov Hansen, Lau Lund Leadbetter, 4 i gruppen: mikkelg11, mikkelkj11, tobiassh11, laull11
  4. Jonas Rishøj Hansen, Mathias Sondrup, Rasmus Bøje Larsen, 3 i gruppen: jonasrh11, mathiass11, rasmusbl11
  5. Malte, Benjamin, Andreas S. & Magnus, 4 i gruppen: maltebp11, benjaminfwj11, andreass11, magnusem11
  6. Emil, Frederik Hass, Niclas, 3 i gruppen: emilbo11, frederiksh11, niclascf11
  7. Alexander, Erik og Jonas D, 3 i gruppen: alexanderb11, eriklh11, jonasvd11
  8. Nikolaj Jakobsen og Suayb, 2 i gruppen: nikolajej11, suaybk10
  9. Mads, 1 i gruppen?: madsn11
  • 3+2+4+ 3+4+3+ 3+2+1=25, to mangler. Nicolai Ramsby Lundegaard og ?
  • 9+10+6
  • 25

Genering af tilfældige regnestykker, --Madsn11 15:03, 14 November 2013 (CET)[edit]

Her er en kode som genere 2 forkerte regnestykker, og så 1 rigtigt regnestykke

import random
for a in range(4):
    for i in range(0,2):
        print str(random.randint(1,50)) + " + " + str(random.randint(1,50)) + " = " + str(random.randint(1,100))

    x = random.randint(1, 100)
    y = random.randint(1, 100)
    print str(x) + " + " + str(y) + " = " + str(x+y)
    print

spike_solution_for_brug_af_mysqldb_til_at_hente_data_fra_en_mysql_database.py, --Gkb 02:49, 14 November 2013 (CET)[edit]

I posteringen den 31. oktober viste jeg hvordan man i Python shell'en trin for trin kan hente data fra en MySQL database. Her dette samlet i et script.

import MySQLdb
db=MySQLdb._mysql.connect(host="localhost", user="root", passwd="", db="test")
db.query("""SELECT spam, eggs, sausage FROM breakfast
         WHERE price < 5""")
r=db.store_result()
rad=r.fetch_row()
a,b,c=rad[0]
print a, b, c

Dette lille eksempel viser hvordan vi kan hente data fra databasen og placere enkelte værdier i variable som vi så kan anvende i vores Python program.

Computerspil med Pygame, fortsat arbejde, --Gkb 18:12, 7 November 2013 (CET)[edit]

Grupperne fortsatte arbejdet med spike solutions og prototyper til spillet. Der var fortsat visse problemer med installering af Pygame, men de blev løst ved at afinstallere både Python og Pygame, og så installere Python 2.7 (32 bit), og så Pygame for Python 2.7, og passe på under installationen at vælge aktivt hvor Pygame skal installeres, ikke bare lade installationsprogrammet vælge ud fra information i registreringsdatabasen, -den indholder nemlig tilsyneladende ofte nogle rester af information om gamle Python installationer.

2013-10-31, torsdag: Spike solution for brug af en MySQL database fra Python, Gkb 02:37, 1 November 2013 (CET)[edit]

Der er flere muligheder når vi skal vælge et modul som indholder funktionalitet som gør det muligt for os at forbinde til en MySQL server, vælge database og bruge denne. Jeg har valgt at afprøve først modulet MySQLdb fra Sourceforge.net, http://sourceforge.net/projects/mysql-python/. Denne vejledning er lavet for Python 2.7. For Python 3 findes der andre moduler.

Jeg har valgt at begynde med at støtte mig til brugervejledningen for modulet (MySQLdb User's Guide), http://mysql-python.sourceforge.net/MySQLdb.html, og se hvordan det går. Jeg bruger Python 2.7.5 (32 bit!) på en Windows 7 Home Premium 64 bit.

>>> import MySQLdb
>>> dir()
['MySQLdb', '__builtins__', '__doc__', '__name__', '__package__']
>>>  
  • Kommandoen dir(MySQLdb) viser hvilke objekter findes for os at bruge i modulet. Dens output følger her: ['BINARY', 'Binary', 'Connect', 'Connection', 'DATE', 'DATETIME', 'DBAPISet', 'DataError', 'DatabaseError', 'Date', 'DateFromTicks', 'Error', 'FIELD_TYPE', 'IntegrityError', 'InterfaceError', 'InternalError', 'MySQLError', 'NULL', 'NUMBER', 'NotSupportedError', 'OperationalError', 'ProgrammingError', 'ROWID', 'STRING', 'TIME', 'TIMESTAMP', 'Time', 'TimeFromTicks', 'Timestamp', 'TimestampFromTicks', 'Warning', '__all__', '__author__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__revision__', '__version__', '_mysql', 'apilevel', 'connect', 'connection', 'constants', 'debug', 'escape', 'escape_dict', 'escape_sequence', 'escape_string', 'get_client_info', 'paramstyle', 'release', 'result', 'server_end', 'server_init', 'string_literal', 'test_DBAPISet_set_equality', 'test_DBAPISet_set_equality_membership', 'test_DBAPISet_set_inequality', 'test_DBAPISet_set_inequality_membership', 'thread_safe', 'threadsafety', 'times', 'version_info']
  • Når jeg forsøgte at lave den enkleste tænkelige (The simplest possible database connection) forbindelse til en database, som beskrives i afsnittet "Some _mysql examples" i vejledningen, så fik jeg følgende fejlmeddelelse.
>>> db=MySQLdb._mysql.connect()

Traceback (most recent call last):
  File "<pyshell#110>", line 1, in <module>
    db=MySQLdb._mysql.connect()
OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)")
>>>
  • Forklaringen er at der kører ingen MySQL server på min computer, og derfor vil jeg nu installere sådan en server. (Hvis jeg er på MediaLab's netværk, så kan jeg bruge vores MySQL server på rtgkom.dk, men jeg er i skrivende stund i Malmö, og vi har af sikerhedsmæssige grunde begrænset tilgangen til MySQL serveren til vores lokale netværk.)
  • Jeg vil installere den i forvejen pakkede løsning som kaldes WampServer, fra http://www.wampserver.com/en/. Den installerer webserveren Apache, server side scripting sproget PHP og database administrationssystemet (DataBase Management System (DBMS)) MySQL samt phpMyAdmin og nogle andre værktøjer på en gang. Det vigtigste er at disse programmer konfigureres under installationen, således at de kan anvendes til webudvikling på min computer. Lige nu er jeg kun interesseret i at få en MySQL server hurtigt i gang på min computer så jeg kan fortsætte afprøvningen af MySQLdb modulet i Python, -men det kan vise sig nyttigt senere at have et komplet webudviklingsmiljø på computeren.
  • Jeg valgte 32 bit versionen, den første valgmulighed på download siden markeret med teksten "Wampserver (32 bits & PHP 5.4) 2.4)" og kraftig gulfarvet baggrund. Denne installation inkluderer følgende programmer: Apache : 2.4.4 MySQL : 5.6.12 PHP : 5.4.16 PHPMyAdmin : 4.0.4 SqlBuddy : 1.3.3 XDebug : 2.2.3. Jeg valgte at ignorere advarslen om at jeg skal installere " Visual C++ 2010 SP1 Redistributable Package", og downloade WampServer direkte vha. linken http://sourceforge.net/projects/wampserver/files/WampServer%202/Wampserver%202.4/Wampserver2.4-x86.exe/download. Filen var 34.4 MB stor.
  • Bemærk at licensen for WampServer er "GNU GENERAL PUBLIC LICENSE", som er arketypen for frie licenser, se nærmere her http://www.gnu.org/copyleft/gpl.html.
  • Installationen gik problemfrit, jeg valgte Firefox som min foretrukne browser, forsøgte ikke at påvirke hvor WampServer vil bo på min hardisk (programmer er ofte bedre testet for at virke fra deres foretrukne installationsmappe og så er det også lettere for os at hjælpe hinanden hvis vi alle har WampServer i samme mappe på C:) samt at få ikoner både på skrivebordet og i taskbaren, og at starte WampServer straks. Jeg bemærkede at der var kommet et ikon for WampServer i min taskbar, et stiliseret W, og at dets farve var grøn, hvilket nok betyder at webserveren, MySQL og PHP er startet og virker som de skal.
  • Jeg afprøvede nu igen at forbinde til MySQL serveren på min maskine, og denne gang kom der ingen fejlmeddelelse.
>>> db=MySQLdb._mysql.connect()
>>> 
  • Denne forbindelse er lavet med default parametre for host, user, passwd, db osv.
  • Vi behøver information om hvilke brugere er defineret for MySQL. Det kan vi gøre ved at starte phpMyAdmin. Klik på W-ikonet i din taskbar og start phpMyAdmin, vælg databasen mysql lengst til venstre, og vælg så Privileges, og der kan vi se at der er kun en enkelt bruger som er defineret, root. (Bemærk at her kan nye brugere defineres!) Klik på mysql databasen igen, og så på tabellen user, og så kan vi se at felterne for root i kolonnen Password er tomme, -root har altså intet password. Det skal laves om snarest, og i hvert fald inden vi sætter WampServer'en online.
  • Jeg forsøgte nu at lave en forbindelse med brugernavnet root og intet password, -og det gik godt.
>>> db=MySQLdb._mysql.connect(host="localhost",user="root",
                  passwd="",db="test")
>>> 
  • Vi har nu en forbindelse til MySQL serveren og vi har valgt databasen test, men vi kan se ved hjælp af phpMyAdmin at den er helt tom, den har ingen tabeller. Vi opretter derfor en tabel med navnet breakfast og felterne spam, eggs, sausage og price. Jeg bruger INSERT til at indsætte talværdier i den første record i tabellen. Jeg har skimmet lidt fremad i teksten i brugervejledningen og synes at det kan være en god idé at sætte spam til 3, eggs til 2, sausage til 0 og price til 4 (fordi det er mindre end 5!).
  • Jeg vil nu afprøve en søgning i tabellen. Se eksemplet ca. 1/3 del inde i brugervejledningen.
    • Først udføres en forespørgsel (query) hvor vi ønsker at få felterne spam, eggs og sausage for alle poster (records) i tabellen hvor værdien i feltet price er mindre end 5.
    • Dernæst henter vi resultatet af søgningen og lagrer det i variablen r.
    • Til sidst henter vi en række (post, eller record hvis du vil) ad gangen ud fra r.
 
>>> db.query("""SELECT spam, eggs, sausage FROM breakfast
         WHERE price < 5""")
>>> r=db.store_result()
>>> r.fetch_row()
(('3', '2', '0'),)
>>>
  • Og vi konstaterer at vi fik det forventede resultat.
  • Vi kan tildele resultatet af fetch_row() til en variabel og pakke de tre værdier ud f.eks. på følgende måde.
>>> rad=r.fetch_row()
>>> rad
(('3', '2', '0'),)
>>> rad[0]
('3', '2', '0')
>>> a,b,c=rad[0]
>>> a
'3'
>>> 
  • Dette afslutter denne spike solution til afprøvning af modulet MySQLdb. Vi har selvfølgelig kun konstateret at vi kan udvælge og hente og få fat i data fra en tabel i en MySQL database som er på samme computer som vores Python program kører på. Og vi har ikke afprøvet hvordan man tilføjer nye records eller ændrer records med Python. Dette skal selvfølgelig også testes hurtigst muligt for at mindske risikoen for at disse tekniske problemer påvirker vores projekt negativt (se definitionen af Spike Solution i systemudviklingsmetoden Extreme Programming.

2013-10-31, torsdag, 2. modul: Projektarbejdet fortsætter, Gkb[edit]

Grupperne arbejder videre med design af spillet og afprøvning af Pygame.

2013-10-25, fredag, 2. modul: Spike solutions, Gkb[edit]

Vi fortsatte afprøvning af hvordan enkle programmer kan laves med Pygame, fortsat med reference til kapitel 5 og 14 i Program Arcade Games With Python And Pygame, se her: http://programarcadegames.com/

Vi diskuterede at der skulle være en funktionalitet i spillet som gør at brugerens data kan overleve fra en session til en anden, samt at dette skulle implementeres ved at lagere data'ene på vores MySQL server.

2013-10-24, torsdag, 2. og 4. modul: Nyt projekt: Computerspil som vindue til læring, Gkb[edit]

Vi starter i dag et nyt projekt, hvor fagene Programmering C og Informationsteknologi B samarbejder. I projektet skal vi bruge modulet Pygame til at lave et computerspil med grafisk brugerflade. Oplægget ligger her: http://www.rtgkom.dk/~gkb/inf/2013infb34/Computerspil_med_Python_Projektoplaeg_2013_10_21_v04.pdf

Vi arbejdede med installering af Pygame og afprøvning ved hjælp af kapitel 5 og 14 i Program Arcade Games With Python And Pygame, se her: http://programarcadegames.com/

2013-10-10, torsdag, 2. modul: Registrering af grupper, Oprettelse af projektbrugere, Gkb[edit]

Vi skal bruge vores nye projektuser funktion til at aflevere dette projekt på vores webserver. En projektuser er en bruger i vores IT-system nærmest på samme måde som jeres userID's, og projektuser'en kan således lave et website lige som I kan lave et StudieWeb. Når vi ved hvilke brugere arbejder sammen i en gruppe, så kan vi oprette en projektuser for gruppen og give jer rettigheder til at editere i projektbrugerens filer. Vi kan både åbne for jeres rettigheder og fjærne dem igen på nogle i forvejen fastsatte tidspunkter.

Med denne fuktionalitet har vi således en prototype til en gruppeafleveringsfunktion. Det var i efteråret 2011 som den blev klar, og siden har vi afprøvet sammen med nogel af de hold som går i MediaLab.

For at oprette en projektuser for jeres gruppe, så behøver vi altså lidt data om jeres gruppe og om jeres projekt. Udfyld venligst følgende tabel.

Registrering af grupper[edit]

Projekt: Vektorer i rummet - grupperegistrering
Gruppenr. Dit/jeres navn/navne Titel for projektet og rapporten Undertitel for projektet og rapporten Anvendte værktøjer
01 Andreas Lorentzen, Frederik Hass, Mikkel Karoli og Philip Hansen Avedøreværket i rotation Undertitel for projektet og rapporten Python og Visual Python
02 Jonas Rishøj Hansen, Malte Pedersen, Nikolaj Egholk Jakobsen og Tobias Sønderskov Hansen Avedøreværket i Python og Vektorer Et atomværk uden lige Python og Visual Python
03 Michel Hansen, Suayb Köse, Frederik Rasmussen og Nicolaj Ramsby Lundegaard Avedøreværket 3D 3D model af Avedøreværket Vpython og python
04 Jonas Degn, Emil og Magnus Avedøreværket Vektorer i 3D VPython, TKinter og Python
05 Alexander, Erik, Mathias og Mikkel G Avedøreværket 3D vektorer og figurer Visual Python +Tkinter
06 Benjamin, Rasmus klump, Niclas, Casper Avedøreværket Vectors in space Java 3d
07 Mads Nielsen og Tobias Langhoff, Lau Lund Leadbetter og Andreas Sode Kernekraftværket Vores er et Atomkraftværk Python og Visual Python.
Gruppenr. Dit/jeres navn/navne Titel for projektet og rapporten Undertitel for projektet og rapporten Anvendte værktøjer
Gruppenr. Dit/jeres navn/navne Titel for projektet og rapporten Undertitel for projektet og rapporten Anvendte værktøjer
Gruppenr. Dit/jeres navn/navne Titel for projektet og rapporten Undertitel for projektet og rapporten Anvendte værktøjer
Gruppenr. Dit/jeres navn/navne Titel for projektet og rapporten Undertitel for projektet og rapporten Anvendte værktøjer
Gruppenr. Dit/jeres navn/navne Titel for projektet og rapporten Undertitel for projektet og rapporten Anvendte værktøjer
Gruppenr. Dit/jeres navn/navne Titel for projektet og rapporten Undertitel for projektet og rapporten Anvendte værktøjer

Oprettelse af projektbrugere[edit]

  1. Oprettelse påbegyndt kl. 12:21, 10 October 2013 (CEST). Det er en ret så manuel process, så det kan tage nogle timer.
  2. Projektbrugere for de syv grupper som registrerede sig i tabellen i dag, er nu oprettet, 13:22, 10 October 2013 (CEST) Af de problemer som jeg oplevede kan nævnes:
    1. Encoding skal vælges som UFT-8 i Putty inden forbindelsen med webserveren etableres, ellers rederes de specielle danske bogstaver ikke korrekt.
    2. På grund af dem manuelle indtastning og gentagelse for flere grupper, så kom jeg to gange til at glemme gruppenummeret i brugernavnet, altså ..grxx.., f.eks, glemte jeg at skrive 04 i brugernavnet for gruppe nr 4, og brugernavnet blev således 2013infb34vektorerirummet. Da gruppenumeret er det eneste som gør brugernavnenen forskellig, så er dette et problem. Evt. kan dette og andre problmer løses ved at fastlægge et stringent format for gruppeoplysningerne i wikien og så lave et script som parser tabellen og opretter projektbrugerne automatisk, -ja, det er nok en bedre ide end manuel indtastning.

2013-09-27, fredag, 2. modul: Resurseplan med Planner, Guide for projektbeskrivelse og rapport, Gkb[edit]

Resurseplan med Planner[edit]

Her er et udkast til en skabelon for resurseplanlægning med programmet Planner: http://www.rtgkom.dk/~gkb/komit/2011-2012/resurseplan_skabelon_for_gkb_v01.planner. Den er lavet med en gammel, et par år gammel, version af programmet, og den nye version virker ikke kunne importere filen, og den virker også ret ustabil, i hvert fald på Windows, crasher typisk når man vil gemme filen.

Et andet program som vi før har brugt til resurseplanlægningen er GanttProject, http://www.ganttproject.biz/ Projektet har flyttet til http://code.google.com/p/ganttproject/. Programmet er et cross-platform projektstyringsværktøj, og det er frit. Licensen er GPL. Der følger et demoprojekt med når man installerer. Åbn gerne denne fil og afprøv programmet lidt, inden I begynder at definere resurser og tasks for jeres eget projekt.

RTG-MediaLab´s systemudviklingsmetode[edit]

Brug gerne dele af eller hele vores egen systemudviklingsmetode, http://rtgkom.dk/wiki/MediaLab:_Systemudviklingsmetode, til at planlægge, gennemføre, dokumentere og præsentere jeres projekt. Metoden er udviklet til at tilgodese de krav og forventninger som der med rimelighed kan stilles til jeres eksamensprojekter i Informationsteknologi B og Programmering C.

Guide for projektbeskrivelse og rapport[edit]

I kan bruge vores guides for struktur af projektbeskrivelser og rapporter til inspiration når I dokumenterer jeres arbejde. Disse er lidt detaljeret, men tilgodeser alle rimelige krav til jeres eksamensprojekter i Informationsteknologi B (og Programmering C), og er derfor evt. værd at skelne lidt til.

Se guiden her: http://www.rtgkom.dk/wiki/Guide:Projektbeskrivelse_og_rapport

2013-09-26, torsdag, 4. modul: Vektorer i rummet, Gkb[edit]

Projektoplæg på papir uddelt, kort plenummøde og gruppearbejdet startede.

2013-09-19, torsdag, 4. modul: 3D model og animation af skråt kast med Visual Python, Gkb[edit]

I dag skal vi se lidt nærmere på værktøjet Visual Python, altså modulet Visual for programmeringssproget Python. For et par uger blev det demonstreret i grove træk, men nu skal du selv prøve.

3D model for skråt kast[edit]

  1. Lav tre cylindre med længden 1 og radius 0.05, for at visualisere enhedsvektorerne i koordinatsystemet. De skal have farverne rød, blå og grøn, for henholdsvis x, y og z aksen.
  2. Lav en kanon tæt på origo vha. en cylinder, og stil den op med en vinkel på for eksempel 45 grader med xz-planet, således at den vender mod den positive del af x-aksen.
  3. Placer en kanonkugle i kanonen.
  4. Animer kanonkuglens flyvetur ved at udregne nye værdier for x og y koordinaterne for hver frame vha bevægelsesligningerne (dem fra fysik, som så ca. sådan ud s(t)=s0 + v0*t +(1/2)*a0*t**2).
  5. Vælg s0=(x0, y0, z0) og v0=(vx0, vy0, vz0) og a0=(ax0, ay0, az0) således at kuglen starter fra et fornuftigt udgangspunkt, s0, og med en passende udgangshastighed, v0, og med en passende udgangsacceleration (som forbliver konstant), således at kuglens flyvetur kan observeres på en måde som illustrerer på en passende måde at der er tale om skråt kast.

2013-09-12, torsdag, 4. modul: Express, præsentationer i plenum, Gkb[edit]

Efter lidt rod med en ny projekter kom præsentationerne i gang.

2013-09-06, fredag, 2. modul: Express, præsentationer i plenum, Gkb[edit]

Tre grupper præsenterede:

2013-09-05, torsdag: Express, arbejde med dokumentationen i wiki'en, Gkb[edit]

Efter et kort plenumøde fortsatte grupperne at forbedre dokumentationen i gruppernes wiki-artikler.

Hvis I vil bruge billeder i wiki-artiklerne, så kan billederne lægges i jeres html (evt. for nogle public_html) mappe på webserveren. Lav eventuelt en mappe til billeder for wiki'en, f.eks. wiki_billeder. Man kan så linke til billeder i denne mappe sådan som nedenstående eksempel viser.

  • Et lille billed bruges som en link til et større billed. Godt for hele skærmbilleder.

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

  • Hvis man ikke ønsker at bruge et billed som en link til et større billed, så kan man paste URL'en for billedet direkte ind i wiki-artiklen, sådan som her.

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

2013-08-22, torsdag: Explore, Experiment and Express, Gkb[edit]

Vi fortsatte med udforskning (Explore) af emnerne og med at lave små forsøg (Experiment) og at planlægge formidling til de andre i klassen (Express) om emnet.

  1. Explore: Søg efter information, angive passende data om jeres kilder. Prøv at finde de mest pålidelige kilder, og/eller de mest generiske (grundlæggende, oprindelige, første).
  2. Experiment: En simpel "Hello World" demonstration kan være tilstrækkeligt. Lav evt. flere små eksperimenter.
  3. Express: Det gører vi i en wiki-artikel og med en mundtlig præsentation i plenum i klassen. Der er tilføjet en link i tabellen over gruppernes emner. I opretter artiklen ved at klikke på linken og så kan I begynde at editere i artiklen, -altså hvis I er indlogget i wiki'en. I kan også lave en multimediepræsentation til brug ved fremvisningen i klassen (plenummøde), -link så også til den fra wiki-artiklen. NB at det skal være muligt at få overblik over jeres søge-arbejde og eksperiment ved alene at læse teksten i wiki-artiklen. Det kan således betyde, hvis I laver en multimediepræsentation til præsentationen i plenum, at I skal skrive meget af det som I har med i den også i wiki-artiklen.

WebGL, Byg 3D model - den første præsentation[edit]

Andreas Lorentzen holdt den første præsentation.

2013-08-15, fredag: Explore, Experiment and Express, Gkb 10:55, 16 August 2013 (CEST)[edit]

Vi fortsætter vores udforskning af et IT-tema, produkt eller teknologi.

Registrer jeres gruppe i tabellen nedefor.

Valg af emne: IT-tema, produkt eller teknologi
Gruppenr. Dit/jeres navn/navne Kort beskrivelse af emnet Kort beskrivelse af dit/jeres eksperiment Gruppens wiki-artikel
01 Andreas Lorentzen WebGL Byg 3D model - Eksempler: kugle, pyramide, terning. 2013InfB34_EEE_01_WebGL
02 Emil og Nicolai L Smarthouse Styring af lys og elektriske apparater via nettet (smartphones). 2013InfB34_EEE_02_Smarthouse
03 Frederik H, Rasmus og Niclas Touchscreen Man rører ved den 2013InfB34_EEE_03_Touchscreen
04 Andreas Sode Mouse/mus - Historie og funktion Ny/gammel mus 2013InfB34_EEE_04_Mouse/mus_-_Historie_og_funktion
05 Mathias og Jonas R JavaScript Eksempel for brug af JAvascript 2013InfB34_EEE_05_JavaScript
06 Mikkel K og Mikkel G 3D printere Kort beskrivelse af dit/jeres eksperiment 2013InfB34_EEE_06_3D printere
07 Jonas D og Alexander C++ Lave et spil 2013InfB34_EEE_07_C++
08 Frederik R og Erik Virtual Reality 3D billede i Python 2013InfB34_EEE_08_Virtual Reality
09 Malte og Benjamin Blender Modellere et 3D eksempel 2013InfB34_EEE_09_Blender
10 Tobias L og Mads Arduino Integrering med Python 2013InfB34_EEE_10_Arduino
11 Tobias S og Lau Sockets Chat i Python 2013InfB34_EEE_11_Sockets
12 Nikolaj J, Suayb og Magnus HTTP Opsamling af data fra HTTP via Wireshark 2013InfB34_EEE_12_HTTP
13 Casper Introduktion til Android Opstart, basis kendskab om apps, livscyklus og kode. 2013InfB34_EEE_13_Introduktion_til_Android
14 Philip og Michel Minecraft modding med Java Demo af hvordan man laver et minecraft mod ved brug af java. 2013InfB34_EEE_14_Minecraft_modding_med_Java

2013-08-15, torsdag: Explore, Experiment and Express, Gkb 10:54, 16 August 2013 (CEST)[edit]

En øvelse i at søge, eksperimentere og formidle.

Vælg et emne, et IT produkt eller IT-teknologi som interesserer dig. Arbejd individuelt eller i grupper med to eller tre medlemmer.

  • Explore: Undersøg emnet nærmere. Find nogle detaljer om det. Historiske og tekniske. F.eks. hvem har opfundet eller udviklet det? Hvordan bruges det i praksis? ...
  • Experiment: Lav en hurtig prototype eller eksperiment hvor emnet indgår, altså produktet eller teknologien.
  • Express: Skriv lidt om emnet og jeres eksperiment i wiki'artiklen. Forbered ca. fem til ti minutters præsentation for klassen.

Vi har så præsentationer i plenum.

Gode kilder[edit]