2017PrgC36

From rtgkomArkiv
Jump to: navigation, search

2018-01-22, mandag: Jean Piaget, Seymor Papert og Ken Robbinson - HexToDec og dokumentation på StudieWebbet, Gkb 11:15, 22 January 2018 (CET)

Vi startede med at diskutere hvad vi skulle prøve at nå i modulet og blev enige om at prøve at nå

  • at afslutte øvelsen om konvertering af hexadecimale tal og
  • at dokumentere arbejdet på StudieWebbet.

Så diskuterede vi lidt at skoler ikke altid fremmer kreativitet og kiggede lige på et stillbilled fra følgende video om Seymor Pappert (Seymour Papert -- inventor of everything: Gary Stager at TEDxASB, https://www.youtube.com/watch?v=6-dFTmdX1kU) hvor han citeres for at have citeret Jean Piaget, https://en.wikipedia.org/wiki/Jean_Piaget, for at have sagt at børn godt kan lære uden at blive undervist. Vi diskuterede kort at der er nye krav til unge i dag og de jobs som var almindelige når vores skolesystemer blev udviklet ikke længere findes. Fabrikker og samlebåndsarbejde er væk og vi skal nu programmere robotter som laver det manuelle arbejde, -stort set.

Så så vi et par minutter af en vide med Ken Robbinson (Ken Robinson at TED2006, Do schools kill creativity? , https://www.ted.com/talks/ken_robinson_says_schools_kill_creativity#t-565275) og så skiftede vi til en remedieret version af hans video. Det er en animation hvor en tegner illustrere pointene i hans resonement, se her "RSA ANIMATE: Changing Education Paradigms", https://www.youtube.com/watch?v=zDZFcDGpL4U. Vi så hele denne video som er på ca. 11 min og 40 sekunder. Vi stoppede et par steder og konstaterede at der forklares flere meta-begreber om læring som f.eks. indår i SO-faget.

Efter det var der individuelt arbejde med at afslutte øvelsen om konvertering af hexadecimale tal og dokumentation på StudieWebbet.

2018-01-15, mandag: asdf

2018-01-11, torsdag: asdf

2018-01-08, mandag: Eksempler på konvertering mellem talsystemer Madsoj15 12:46, 8 January 2018 (CET)

import math
n=input('Skriv et tal: ')
power=len(n)
grundtal=int(input("Hvad skal grundtallet være? "))
sum=0
for i in range(len(n)):
    dec=int(n[i],grundtal)
    power=power-1
    value=int(dec*math.pow(grundtal,power))
    print(i,n[i],dec,value)
    sum=sum+value
print(sum)

Lavet af Mads J og Jakob, 3.6

2018-01-08, mandag: Konvertering mellem talsystemer - Hex til Dec, Gkb 10:35, 8 January 2018 (CET)

Vi fortsætter hvor vi sluttede i sidste modul. Vi lavede en prototype til løsning af opgaven som virkede tilsyneladende ok for treciffrede tal på formen fff, f9c, 0ff, 00f. Koden kan ses på skærmbilledet i referatet fra sidste modul.

Men en dene kode virker ikke korrekt for ff og f, hvilket vi skal nu prøve at løse. Vi skal også prøve at ændre if-sætningen således at antallet af blokke (suites) i den ikke er afhængigt af grundtallet i talsystemet som vi vil konvertere fra. Vi skal altså forbedre koden på følgende to punkter:

  • Programmet skal klare at konvertere hexadecimale tal af hvilkorlig længde, i hvert fald op til foreløbig 8 ciffre (senere meget mere!). Og det skal ikke være et krav at vi skal skrive nuller foran de betydende ciffre. Tal som f, ff, ffff, ffffffff, 10, og 1 skal f.eks. konverteres korrekt.
  • Lav en funktion med navnet hexToDec som laver konverteringen. Den anvendes f.eks. på følgende måde: hexToDec('ffff'). Den skal altså tage hex tallet som parameter og datatypen skal være string, og den skal returnere en string.

Gem nu filen med navnet toolbox.py og lav en ny fil og afprøv importering af funktionen fra filen toolbox.py. Altså med from toolbox import hexToDec, og afprøv funktionen grundigt med flere forskellige input tal.

Programmet skal (kan, hvis du har tid til det) også gerne udvides således at det virker for tal med større grundtal, f.eks. 32.

2018-01-04, torsdag: Konvertering mellem talsystemer - Hex til Dec, Gkb 16:47, 4 January 2018 (CET)

I dag arbejdede vi med konvertering mellem talsystemer. Vi diskuterede problemet generelt og så gennemgik vi et eksemplel på tavlen om konvertering af et trecifret tal i det hexadecimale system tal til decimalsystemet.

Så ville vi lave et program som indlæser det hexadecimale tal som en string. Programmet skulle så analysere hver ciffer, f.eks. fra det mest betydende til det mindst betydende og opsummere deres værdi i det decimale talsystem.

Jeg lavede først nogle eksperimenter til inspiration i Python terminalen og så kopierede jeg dem over i editoren og det resulterede i version 01, hvor kun indlæsningen af tallet og nogle forsøg på analyse af tallet var på plads. Denne første version så sådan ud.

import math
tal = input("Indtast tal med grundtallet 16:")
sum = 0
for i in range(len(tal)):
    print(i, tal[i])
    if tal[i] == "0":
        sum = sum + 1 * math.pow(16, 2)

Efter det var det individuelt arbejde i fælleskab at forsøge at løse opgaven. Lidt senere fortsatte jeg med mine eksperimenter og så var det igen individuelt arbejde. Hver gang jeg lavede nogen ændringer som jeg syntes at var af betydning for at komme videre med løsningen, så inkrementerede jeg versionsnummeret på kildekodefilen. I slutningen af modulet var jeg kommet op i version nr. 07 som tilsyneladende konverterede tallet f0c korrekt, som følgende skærmbilled viser.

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

Der er meget som kan forbedres i denne hurtige prototype, men det må vente lidt.

Der var flere forskellige løsninger hos eleverne og vi kommer nok at se nogen af dem i næste modul.

2017-11-13, mandag: Projekt: Dataopsamling og aktuering med Arduino og Raspberry Pi, Gkb 09:53, 13 November 2017 (CET)

I dag starter vi formelt arbejdet med projektet Dataopsamling og aktuering med Arduino og Raspberry Pi. Vi har nu i en periode på ca. tre uger undersøgt hvordan vi kan bruge disse to enheder, altså Arduino og Raspberry Pi. Vi har arbejdet med eksemplerne Blink, AnalogReadSerial og Graph fra Arduino IDE'en, først fra vores egen bærbare computere eller vores Mac Mini'er i MediaLab. Derefter brugte vi Raspberry Pi med Raspbian til at køre de samme tre eksempler. Undervejs har vi altså løst forskellige problemer i forbindelse med download og udpakning og installering af både Arduino IDE'en og Processing.

Vi brugte to forskellige transducere (sensorer) til at opsamle data. En LDR til måling af lysstyrke og en NTC til temperaturmåling.

Projektoplæg: Dataopsamling og aktuering med Arduino og Raspberry Pi

I vores dagligdag oplever vi ofte noget som måske kan automatiseres. Løs et problem i forbindelse med automatisering hvor både dataopsamling og aktuering af en eller anden ekstern mekanisme indgår.

Projektoplæg for projektet: 2017InfB36_og_PrgC36_Dataopsamling_og_aktuering_med_Arduino_og_Raspberry_Pi_Projektoplaeg

....

2017-10-30, mandag: Aflevering af "Blomst med Turtle-modulet", Gkb 00:21, 30 October 2017 (CET)

Der er nu oprettet en opgave i Lectio til aflevering af opgaven "Blomst med Turtle-modulet". På Lectio skal der kun afleveres en tekstfil med et hyberlink til din sektion i følgende wikiartikel hvor billed og kode afleveres.

2017PrgC36_Blomst_med_Turtle-modulet

2017-09-22, fredag: blomst, skakbræt og regular expressions - Gkb 10:42, 22 September 2017 (CEST)

Efter en demonstration, tænkt som inspiration, undskyld, af rendering af flere billeder af en boks (animation) i POV-Ray og generering af en video med Bink fra Radgametools.com så fortsatte vi med Python.

Blomst med Turtle-modulet, en afleveringsopgave

Vi laver en blomst med Turtle-modulet i Python. Se i kapitel 3 i lærebogen, hvor Turtle-modulet præsenteres.

Krav til blomstens design:

  1. Der skal være mindst en blomst på planten, altså en sekvens af kroneblade og samling af frø-noget (frugtanlæg?) i midten.
  2. Der skal være farver på krone-bladene (indenfor kanten!) og på frø-centret.
  3. Der er ingen krav til formen på kronebladene. De kan f.eks. være bokse, kvadrater, cirkler, ellipser, eller hexagoner.
  4. Der skal være en stilk, eller en stamme som holder blomsten eller blomsterne oppe.
  5. Stammen skal også farves.
  6. Der skal være himmel, fjelde og sol og måske skyer? Der er ingen krav til farver eller form på himmel, fjeldene eller solen.
  7. Hvis der tilsyneladene mangler nogle krav til blomsten eller resten af programmet, så bare vælg selv hvordan det skal løses.

Krav til programmet:

  1. Der skal laves mindst to funktioner. Funktionen kroneblad() til at tegne et enkelt kroneblad og den skal tage mindst en parameter som påvirker kronebladets størrelse.Den anden funktion, blomst(), skal anvende den kroneblad() til at tegen alle kronebladene.
  2. Der skal bruges løkker, for og/eller while.

Krav til dokumentationen:

  1. Kildekoden postes individuelt i et PRE element i en sektion i en wikiartikel som oprettes i vores MediaWiki her på rtgkom.dk.
  2. Billedet som programmet laver postes i samme wikiartikel. Der skal laves to versioner af billedet. En som er ca. 200x200 pixels stor og en som er i fuld størrelse. Der skal bruges en særlige MediaWiki syntax som tillader at bruge det lille billed som link til det store billed.

Afleveringen af kode og billed sker altså i vores wiki. På Lectio skal der afleveres en tekstfil, link_til_en_blomst.txt, som kun indeholder et link til det afsnit i wikiartiklen hvor du har posted din blomst.

2017-09-12, tirsdag: random og randint mm, Gkb 12:27, 12 September 2017 (CEST)

I sidste modul legede vi lidt med funktionen randint() fra modulet random. Vi udviklede i fælleskab følgende program på tavlen.

import random
no_0s = 0
no_1s = 0
no_2s = 0
for i in range(10):
    random_tal = random.randint(0, 2)
    print(random_tal)
    if random_tal == 0:
        no_0s += 1
    elif random_tal == 1:
        no_1s += 1
    elif random_tal == 2:
        no_2s += 1
print(no_0s, no_1s, no_2s)