Forelæsning 1.1 Kursusintroduktion Introduktion til programmering



Relaterede dokumenter
Sudoku. (tal en gang)

Forelæsning Uge 1 Mandag

Forelæsning Uge 1 Mandag

Velkommen til Introduktion til Programmering

Velkommen til Introduktion til Programmering

Programmering 2. dprog2 E

Programmering 2. dprog2 E

Grundlæggende Algoritmer og Datastrukturer

Objektorienteret programmering

DM507 Algoritmer og datastrukturer

Forelæsning Uge 7 Torsdag

Kunstig intelligens. Thomas Bolander, Lektor, DTU Compute. Siri-kommissionen, 17. august Thomas Bolander, Siri-kommissionen, 17/8-16 p.

Titel: Barry s Bespoke Bakery

Forelæsning Uge 3 Torsdag

Forelæserne har alle virket meget engagerede og generelt set været gode til at formidle deres respektive emner.

Introduktion til DM507

TEKNOLOGIFORSTÅELSE EN NY FAGLIGHED I FOLKESKOLEN

Forelæsning Uge 1 Torsdag

Det er muligt at chekce følgende opg. i CodeJudge: og

FORSTÅ FREMTIDEN? 28. november, Anders Kofod-Petersen Vicedirektør, Alexandra Instituttet Professor, NTNU

Forelæsning Uge 3 Torsdag

Videnskab & Teknologi

DM502. Peter Schneider-Kamp

LÆRINGSSTILSTEST TEST TESTVÆRKTØJ TIL VEJLEDERE / Et screeningsværktøj så du sikrer en god læring hos dine elever og mindsker frafald.

Håndbog for net-studerende ved IT-Universitetet i København

Introduktion til Datalogi

Forvaltning / Politik og Administration / Socialvidenskab

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

Introduktion til objektorientering. OO, Java og BlueJ

Tilmelding sker via STADS-Selvbetjening indenfor annonceret tilmeldingsperiode, som du kan se på Studieadministrationens hjemmeside

Tilmelding sker via STADS-Selvbetjening indenfor annonceret tilmeldingsperiode, som du kan se på Studieadministrationens hjemmeside

Læseplan for valgfaget teknologiforståelse. (forsøg)

how to save excel as pdf

Matematik i stort format Udematematik med åbne sanser

Tilmelding sker via STADS-Selvbetjening indenfor annonceret tilmeldingsperiode, som du kan se på Studieadministrationens hjemmeside

Elev-til-elev læring med opgaveeksempler. uden hjælpemidler

Rolf Fagerberg. Forår 2015

Pædagogisk kursus for instruktorer gang. Gry Sandholm Jensen

Forvaltning / Politik og Administration / Socialvidenskab

DRONNINGER (QUEENS) Opgave 1

Lær Python dag 1 - modul 1

Jan B. Larsen HTX Næstved Computational Thinking Albena Nielsen N. Zahles Gymnasium 2018/2019

Undervisningsbeskrivelse

Udbud på engelsk i UCL. Skabelon til beskrivelse

Generelt om faget: (Eventuelle kommentarer til højre) - Givet målbeskrivelsen ovenfor, hvordan vurderer du så pensum?

Tilmelding sker via stads selvbetjening indenfor annonceret tilmeldingsperiode, som du kan se på Studieadministrationens hjemmeside

Læseplan for valgfaget teknologiforståelse

BRP Kursusintroduktion og Java-oversigt

Forelæsning Uge 2 Torsdag

Tilmelding sker via stads selvbetjening indenfor annonceret tilmeldingsperiode, som du kan se på Studieadministrationens hjemmeside

Undervisningsbeskrivelse

Tilmelding sker via stads selvbetjening indenfor annonceret tilmeldingsperiode, som du kan se på Studieadministrationens hjemmeside

Forelæsning Uge 4 Mandag

PÆDAGOGISK KURSUS FOR INSTRUKTORER EFTERÅR GANG

Matematikken i kunstig intelligens Opgaver om koordinerende robotter

Brug sømbrættet til at lave sjove figurer. Lav fx: Få de andre til at gætte, hvad du har lavet. Use the nail board to make funny shapes.

Mål Introducerer de studerende for forskellige anvendelser af IT i den offentlige sektor, samt til programmering af sådanne IT systemer.

Matematikken i kunstig intelligens Opgaver om koordinerende robotter LØSNINGER

Koncentration kræver krop. - event for 9. klasse

Problemløsning i hverdagen (1) Introduktion til objektorientering. Delegering til agenter. Problemløsning i hverdagen (2)

Kursusevaluering efterår 2013 SIV spansk

Studieordning del

Virksomhedens IT værktøjer

Pædagogiske overvejelser

Nye undervisningsformer i molekylært-orienterede biologiske bacheloruddannelser ved KU SCIENCE. Projektforslag Karen Skriver

Semesterbeskrivelse Bacheloruddannelsen i Innovation og Digitalisering, 2. semester

Tilmelding sker via STADS-Selvbetjening indenfor annonceret tilmeldingsperiode, som du kan se på Studieadministrationens hjemmeside

Kreativ programmering

Forelæsning Uge 5 Mandag

Introduktion til Datalogi

Faglig udvikling og strategisk ledelse utopi eller nødvendighed?

Nano-Science og forskningsbaseret undervisning i Kvantemekanik

Forelæsning Uge 2 Torsdag

Hvad får jeg for det?

Vina Nguyen HSSP July 13, 2008

Pædagogisk kursus for instruktorer gang. Gry Sandholm Jensen Hanne Buhl

QGIS Brugermde 9. marts Diaspora*: twitter.com/soerenbc soerenbredlundcaspersen.

DM507 Algoritmer og datastrukturer

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

Semesterbeskrivelse Innovation og Digitalisering, 1. semester.

LEKTIONSPLAN SAMMENDRAG RESULTATER OG EVALUERING LÆRERENS FORBEREDELSE. OVERBLIK: Lektionsplan 3

Semesterbeskrivelse Innovation og Digitalisering, 1. semester.

Sport for the elderly

Tale til studiestart 25. august 2015

Greenfoot En kort introduktion til Programmering og Objekt-Orientering

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Torsdag

Tilmelding sker via STADS-Selvbetjening indenfor annonceret tilmeldingsperiode, som du kan se på Studieadministrationens hjemmeside

Test af It-komponent

Sprog billeder kortlink.dk/rudd

Forberedelsescentreret klasseundervisning. K. Splittorff, I. Bearden, T. Døssing, M. Kjærgaard. S. Horst

Forelæsning Uge 2 Mandag

Ej blot til lyst: Programmering og matematisk dannelse i det 21. århundrede

Vejledning til afholdelse af kursus i makkerlæsning

SÅDAN LÆRER HJERNEN SÅDAN LÆRER DU

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

Forelæsning Uge 2 Torsdag

The Incredible Code Machine med Swift Playgrounds

Transkript:

Forelæsning 1.1 Kursusintroduktion Introduktion til programmering Greenfoot

Hvad kan I forvente at lære på kurset? Simpel programmering til husbehov I vil lære nogle grundliggende ting omkring programmering Efter kurset vil I kunne lave simple programmer og forstå de vigtigste principper bag programmering. Men I bliver ikke verdensmestre i at programmere på 7 uger. Det kræver masser af træning gennem flere år Sammenlign med at lære at spille guitar eller fodbold Programmering kræver masser af praktisk øvelse I lærer ikke at programmere ved at læse bøger eller se videoer I lærer det ved at øve jer igen og igen Der er masser af basale ting som skal sidde på rygmarven og som I skal kunne gøre i søvne Sammenlign med guitar/fodbold og en køreprøve Sudoku.2

Bemanding Kurt Jensen (Aud. F) Michael E. Caspersen (Aud. E) Benjamin Blankholm, Casper Benjamin Freksen, Christoffer Skovgaard, Christopher Riis Bubeck Eriksen, Helene Flyvholm Haagh, Joakim Gregersen Quach, Jon Bjerrum Jacobsen, Jonathan Ahlers Marino, Kenneth Kaiser Kudsk, Kristoffer Theis Skalmstang, Marcus Flyvholm Haagh, Markus Andreassen, Martin Toldam Torp, Mathias Kraft Mathiasen, Mikkel Brun Jakobsen, Morten Bech, Morten Birk, Rasmus Lunding Henriksen, Sune Ohrt Sørensen, Thor Bagge

Indhold Hvad er programmering? Eksemplificeret med sudoku-løser Info om kurset Hvad skal I lære? Hvordan lærer I det? Hvordan tester vi at I har lært det? Kursets web-sider cs.au.dk/dintprog

Hvad er programmering?

Oprindelsen af Sudoku Opfundet af Leonhard Euler Schweizisk matematiker, 1707-1783 Største matematiker på sin tid Latinske kvadrater: Sudoku.6

Moderne udgave af Sudoku Spillepladen har 9 rækker 9 søjler 9 blokke (3 x 3) Hver blok, række og søjle har 9 felter Udfylde de manglende felter Hver række, søjle og blok har tallene 1..9 præcis en gang. Sudoku.7

Moderne udgave Introduceret af Howard Garnes, 1979 Amerikansk puslespilsblad (Math Puzzles and Logic Problems, Dell Magazines) Under navnet Number Place Blev enormt populær i Japan (og andre steder) fra 1984 og frem Sudoku, som er en forkortelse af Suji wa dokushin ni kagir som betyder tallene må kun forekomme én gang Stort hit fra 1986 (registreret varemærke) I dag udgives der fem Sudoku-blade hver måned i Japan Sudoku.8

GADs bestsellerliste, 14. oktober 2005 1. Litas: Sudoku 1 2. Litas: Sudoku 2 3. Litas: Sudoku 3 4. Sudoku for begyndere 5. Sudoku 6. Su Doku 7. Su Doku 2 8. Flere Sudoku 9. Junior Sudoku 10. Mange flere Sudoku Sudoku.9

Sudoku og computerprogrammer Wayne Gould Startede i 1997 på et program der kunne konstruere Sudoku-spil Det tog ham efter sigende over seks år... waynegouldpuzzles.com/sudoku/ Levereandør til engelske aviser... Debut i The Times, 12. november 2004... og danske Politiken, 12. juni 2005 Jyllands-Posten, 13. juni 2005 Ekstra Bladet, 15. juni 2005... Sudoku.10

Strategi med udgangspunkt i værdi 1 1 1 1 1 Sudoku.11

Strategi med udgangspunkt i felt 3 Sudoku.12

Hvis man har muskler nok Rå kraft (brute force) Afprøv systematisk alle lovende muligheder 1 2 3 4 a b c d e f g h i 3 9 2 7 8 1 7 9 2 3 9 9 2 7 8 7 8 a1 c1 e1 g1 5 8 i1 6 7 8 9 1 4 7 9 a2 b2 e2 2 4 h2 i2... Sudoku.13

Hvis man har muller nok Rå kraft (brute force) Afprøv systematisk alle lovende muligheder 1 2 3 4 a b c d e f g h i 3 9 2 7 8 1 7 9 4 3 9 9 2 7 8 7 8 a1 c1 e1 g1 5 8 i1 6 7 8 9 1 4 7 9 a2 b2 e2 2 4 h2 i1... Sudoku.14

Hvis man har muller nok Rå kraft (brute force) Afprøv systematisk alle lovende muligheder a b c d e f g h i 3 9 a1 1 2 3 4 3 9 2 7 8 4 9 2 7 8 7 8 c1 e1 g1 5 6 7 8 9 8 1 4 7? 9 2 4 i1 a2 b2 e2 h2 i1... Sudoku.15

Algoritmen prøvallemuligheder() { if <alle felter er udfyldt> { <udskriv grid> } else { <husk felt> <gå til næste frie felt> for <hvert ciffer c> { if <c er lovende> { <fastfrys feltværdi> prøvallemuligheder() } } a b c d e f g h i 3 9 2 7 8 1 7 9 4 1 2 3 4 5 6 7 8 9 } } // backtrack to previous field <fortryd fastfrosne værdi> <gå tilbage til forrige felt> Sudoku.16

Hvad har vi brug for at kunne på et Grid prøvallemuligheder() { if <alle felter er udfyldt> { <udskriv grid> } else { <husk seneste felt> <gå til næste frie felt> for <hvert ciffer c> { if <c er lovende> { <fastfrys feltværdi> prøvallemuligheder() } } // tryall() // allfilled() // printgrid() // Previous = currentfield() // advancetonextunfilled() // promissing(c) // setfieldvalue(c) // tryall() } } // backtrack to previous field <fortryd fastfrosne værdi> <gå tilbage til forrige felt> // clearcurrentfield() // settofield() Sudoku.17

Java-version public void tryall() { if ( g.allfilled() ) { g.printgrid(); } else { // try all promissing values at next field Field previous = g.currentfield(); g.advancetonextunfilled(); for ( int c = 1; c <=9; c++ ) { if ( g.promissing(c) ) { g.setfieldvalue(c); tryall(); } } } } // backtrack to previous field g.clearcurrentfield(); g.settofield(previous); Sudoku.18

Klassemodel void tryall() Solver 1 Grid boolean allfilled() void printgrid() Field currentfield() void advancetonextfield() boolean promissing(int c) void setfieldvalue(int v) void clearcurrentfield() void settofield(field f) Sudoku.19

Mennesket mod maskinen... (hjerne) 1997 Deep Blue vinder matchen 3,5 2,5 Sudoku.20

Mennesket mod maskinen... (muskler) Kasper Dyb Gul Dyb Gul løfter 187,5 kg mod Kaspers 180 kg Sudoku.21

Computere og intelligens... En computer der spiller skak udviser menneskelige træk i samme grad som en gaffeltruck der løfter gods... Sudoku.22

Computerens styrke At kunne foretage simple beregninger lynhurtigt På kort tid at kunne lagre store datamængder søge i store datamængder bearbejde store datamængder afsøge et stort antal muligheder og kombinationer Informations-Repræsentations-Transformations- Maskine hurtig og sikker i detaljen skal programmeres! Sudoku.23

Computer og program En computer er en generel maskine, men uden program(mer) er den intet værd! Computer + X-program = X-maskine X = Windows, Linux, OS X, skak, sudoku, tekst, musik, studieadministration, social interaktion, flykontrol, strålebehandling, DNA-forskning, kommunikation, spil, læse, regne, undervise, motorstyring, bremsestyring, bolighandel, bilhandel, dagligvarehandel, billeddeling, videodeling, søge, oversættelse, Program Program Program Program Computer Sudoku.24

En Sudoku-maskine Sudoko-løser Java Java VM C++ Computer Sudoku.25

En Sudoku-maskine Sudoko-løser: Solver Grid Java Java VM C++ Computer Sudoku.26

Programmering Programmering = + Problemløsning Kodning (i Java) Sudoku.27

Problemløsning Kodning (i Java) Sudoku.28

Om programmering Programmering Anderledes Svær tankegang Faser Motivation Begejstring Tvivl Frustration Eksistentiel krise Heureka! Fascination Kompetencer Indsigt Magt over teknologien Begejstring Tid Human beings are not accustomed to being perfect, and few areas of human activity demand it. Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program. F. Brooks, The Mythical Man-Month, pp. 7-8

Time Magazine, 1984 In 1984, TIME magazine quoted the chief editor of a certain software publication as saying: "Put the right kind of software into a computer, and it will do whatever you want it to. There may be limits on what you can do with the machines themselves, but there are no limits on what you can do with software. Sludder! Der er grænser masser af grænser men ufatteligt mange ting kan lade sig gøre. Sudoku.30

Greenfoot Info om kurset

Programmeringsomgivelser Greenfoot

Afleveringsopgave 1.1: Solnedgang I opgave 1.1-1.14 i BlueJ bogen laver I et lille program, der kan tegne nedenstående billede. I afleveringsopgaven skal I udvide programmet, således at solen går ned.

Hvad skal I lære? Og hvordan tjekker vi at I har lært det?

Mål og valg af prøveform Deltagerne skal ved afslutning af kurset kunne anvende grundlæggende konstruktioner i et sædvanligt programmeringssprog identificere og forklare arkitekturen af simple programmer identificere og forklare betydningen af simple specifikationsmodeller implementere simple specifikationsmodeller i et sædvanligt programmeringssprog anvende standardklasser ved realisering af programmer. Mundtlig prøve Skriftlig prøve Multiple choice Praktisk prøve Det obligatoriske program checker lidt bredere ift. læringsmålene

Undervisningsformer i dintprog Forelæsninger overblik, begreber, principper og eksempler (forud) detaljer (bagud) Øvelser (vigtigst!) praktisk arbejde under vejledning styret refleksion (efter behov) Videoer alternativ præsentation af centralt stof tilgængeligt når som helst Afleveringsopgaver holde jer til ilden (kærligt spark bagi) feedback (til jer og til os) Hjemmearbejde læs bogen og lav opgaverne samtidig med (se video) forbered øvrige opgaver Projekt (uge 6) bringer mange ting sammen højdetræning inden eksamen

Studieformer Par-programmering (driver og navigator) øvelser afleveringsopgave studier Disciplin lav jeres ting til tiden kurset er tilrettelagt ud fra den forudsætning Kreativitet find selv på udvidelse af opgaverne udfordr jeres forståelse og kompetencer Spørg vent ikke! brug hinanden, jeres instruktor, os, webboardet,...

Vejledende timeforbrug Forelæsninger: Øvelser: Hjemmearbejde : < 4 timer 4 timer > 7 timer Ialt ~15 timer

cs.au.dk/dintprog