2013PrgC34

From rtgkomArkiv
Jump to: navigation, search

Programmering - klasse 3.4[edit]

Velkommen[edit]

Læreplanen for faget kan I læse her.

Udgangspunktet i programmering har vi valgt skal være Python. Det er gratis, fås til de fleste platforme og bruges på de videregående uddannelser.

I starten kommer vi til at arbejde med følgende on-line lærebog: How to Think Like a Computer Scientist: Learning with Python.

Undervisningen vil blive tilrettelagt, så det er muligt at få udfordringer, der passer til jeres niveau.


Glæder mig til samarbejdet :-)


/ Mette FN

Introduktion til programmering[edit]

Uge 34:

Vigtige begreber fra kapitel 1:

  High-level >< low-level programmeringssprog, fortolke(interprete) >< kompilere(compile), debugging: syntaksfejl, kørselsfejl (runtime error) og semantisk fejl

Uge 37:

Vigtige begreber fra kapitel 2:

  Datatyper: integer, string, float. Læg mærke til de 31 nøgleord (keywords), som ikke kan bruges til andet f.eks. variabelnavne
  Derudover introduktion af: raw_input()   til brugerindtasting af strenge og input() som evaluerer/beregner

Vigtige begreber fra kapitel 3:

  Definition af funktioner. Den første af en række "sammensatte sætninger" (compound statements), som består af et hoved (header) og en krop (body). Husk indrykningen af sætningerne i kroppen/body: 4 blanktegn.
  Introduktion til at importere pakker med andre funktioner: from chap03.py import *
  Forskel på lokale og globale variable.

Uge 38:

Eksperiment med Pair Programming: www.extremeprogramming.org

Sæt dig med din makker og lav et program, der kan løse en andengradsligning.

Uge 39 - 40 - 41:

Vigtige begreber fra kapitel 4:

  Operatorer: modulus (7 % 3 = 1), boolean (and, or, not  -> true/false), sammenligning (==, !=, <, >, >=, <=)
  if sætning
  return
  Typekonvertering
  GASP (Graphics API for Students of Python)

Vigtige begreber fra kapitel 5:

  Triple quoted strings
  Unit testing

Vigtige begreber fra kapitel 6:

  while
  Tabeller
  Algoritmer
  count += 1    svarer til    count = count + 1

Spil og Pygame[edit]

Den næste periode arbejder vi med et tværfagligt projekt sammen med Informationsteknologi. Det handler om at udvikle spil vha Python-modulet Pygame.

Se oplægget her: Computerspil med Python


Om journaler, flowchart og test[edit]

En journal i programmering har følgende opbygning:

• Forblad

• Kort abstract (til orientering om opgavens indhold)

• Problemformulering

• Funktionsbeskrivelse (skærmlayout, indtastningsmuligheder, funktionalitet – alt efter hvad det er for et program)

• Dokumentation af selve programmet (overordnet beskrivelse af programmet, detaljeret dokumentation af dele af programmet (flowchart, pseudokode), variabler, objekter, events, igen meget afhængigt af hvad det er for et program)

• Test af programmet

• Konklusion

• Bilag (f.eks. koden)


Et flowchart eller rutediagram på dansk bliver lavet på følgende måde Wikipedia: Flowchart

De enkelte symboler bliver også forklaret her: [1]

Det er muligt i mange værktøjer at tegne Flowcharts, f.eks. er symbolerne integrerede i Word, hvis man ønsker et mere målrettet værktøj til at tegne Flowcharts kan man bruge Dia (kan hentes her: dia-installer.de)


Test af program

Unit test (programmørernes test) og acceptance test (brugertest): eXtreme Programming

Brugergrænseflader. Hvad er brugbarhed: af Jakob Nielsen

Brugertest vha "tænke-højt" metoden: af Jakob Nielsen

Arduino[edit]

Forløbet med Arduinoer kommer til at forløbe i uge 2-4.

Vi skal lave et program, som tager hensyn til input fra omverdenen. Det gør vi ved hjælp af RFID tags.


Vi arbejder med de faglige mål:

  • Rette og tilpasse enkle programmer
  • Interaktion med omgivelserne


Uge 2 fredag

0. Forberedelse inden I kommer: Installer software til Arduinoen her: Arduino 1.0.5.

1. Derefter skal I følge linket Getting Started with Arduino så I ender med at have Blink-eksemplet kørende.

2. Til sidst skal I følge dette link: How to connect Arduino and RFID


Uge 3 torsdag

1. I skal arbejde videre med at få RFID systemet til at virke. Til sidst har I et system, hvor der er to kort som kan hhv give og tage adgang fra andre tags.

2. Kombiner de to øvelser med blink og RFID, så lyset tændes, når man kommer med en tag, der har adgang og lyset slukker, hvis taggen ikke har adgang.

Tag billeder/film af jeres system og gør film og koden tilgængelig fra jeres StudieWeb.

Numeriske metoder[edit]

I et samarbejde med matematik skal vi eksperimentere og prøve numeriske metoder af til at

  • tilnærme datapunkter med en ret linje (lineær regression)
  • finde differentialkvotient uden at differentiere (numerisk differentiation)
  • finde det bestemte integrale uden at finde stamfunktion (numerisk integration)


Oplægget findes på Lectio.


Uge 5

Lineær regression. Her får I brug for lister, som I kan læse om i bogen kapitel 9: 9.Lists

Her er flere operationer på lister: docs.python.org


Uge 6

Numerisk differentiation

Numerisk integration


Uge 7

Her arbejder vi i matematik videre med metoder til rodbestemmelse og numerisk løsning af differentialligninger, men i programmering arbejder vi videre med de tre første emner.

Se det efterfølgende afsnit for at se krav til dokumentation af programmerne.


Uge 9

Aflevering på Fronter (rapport) og Studieweb (rapport + kommenterede programmer)


Om dokumentation af programmer[edit]

Kommentarer i programmer:

  • Ved erklæring af funktioner
  • Vigtige variabler/lister
  • Iterationer f.eks. while-løkker
  • If-sætninger


I rapporten:

  • Skal give et overblik over programmet/programmerne
  • Henvis til de bilag, hvor man finder hele programkoden inkl. kommentarer
  • Kapitlet skal kunne stå alene, dvs. skal give mening uden af man læser bilagene
  • Forklare centrale datastrukturer
  • Forklare programmets opbygning, dvs. strukturen, gerne i pseudokode


Afsluttende projekt[edit]

Rammerne omkring afsluttende projekt og eksamen kan læses her:

Afsluttende projekt i programmering C


Alle grupper laver samme projekt i Informationsteknologi og Programmering. Her er en oversigt over projekterne:

Grupper i afsluttende projekt


Plan for perioden:

Uge 10, to: Opstart og idégenerering

Uge 10, fr: Arbejde med problemformulering og løsningsforslag

Uge 11, to:

Uge 11, fr:

Uge 12, to: Aflevere projektbeskrivelse

Uge 12, fr:

Uge 13, to:

Uge 13, fr:

Uge 14, to:

Uge 14, fr:

Uge 15, to: Præsentation af produkt

Uge 18, ma:

Uge 18, to:

Uge 18, fr:

Uge 19, ti:

Uge 19, to:

Uge 19, fr (9. maj): Aflevering af produkt og journal. I kan læse om hvordan I afleverer her [2]

Afslutning[edit]

I oplægget til den afsluttende opgave kan I læse om rammerne til den mundtlige eksamen og bedømmelseskriterierne. De faglige mål er også at finde her.

Vi har tre gange tilbage, som I kan bruge på at forberede eksamen. Jeg forestiller mig følgende forløb:


Uge 20 ti: Repetition, evaluering. Forberede præsentation

Uge 20 to: Forberede præsentation og præsentation

Uge 21 ti: Afslutning