Forelæsning Uge 1 – Mandag Hvad er programmering? –Eksempel: program, der kan løse sudoku opgaver –Programmering og problemløsning dIntProg kurset –Hvad.

Slides:



Advertisements
Lignende præsentationer
Introduktion til programmering
Advertisements

Kursusintroduktion Introduktion til programmering
Sudoku 数 独 (tal en gang). dIntProg, E12Sudoku.2 Oprindelsen af Sudoku Suji wa dokushin ni kagir –tallene må kun forekomme én gang Su doku –tal enkelt.
Introduktion til programmering Kursusintroduktion Greenfoot.
Sudoku 数 独 (tal en gang). dIntProg, E08Sudoku.2 Oprindelsen af Sudoku Suji wa dokushin ni kagir –tallene må kun forekomme én gang Su doku –tal enkelt.
Introduktion til programmering Kursusoversigt. dIntProg, F08Kursusintroduktion.2 dIntProg Forelæsninger –Fire timer om ugen –Mandag samt fredag.
Introduktion til programmering Kursusoversigt. dIntProg, E08Kursusintroduktion.2 Mål (fra kursusbeskrivelsen) Deltagerne skal ved afslutning af kurset.
Eksamen Praktisk prøve.
Værktøj 3: Personlige og kollektive strategier Vi forebygger stress sammen.
Hold gejsten - det motiverende frivilligmiljø. Hvad skaber motivation for en aktivitet/opgave? En oplevet følelse af;  Kontrol og forudsigelighed  Indflydelse.
Skriftlig progression Italiensk FIP. Disposition Skriftlighed og respons Progression Feedback-former (feed up, feed back og feed forward) Karakterer Værktøjskasse.
Dokumentation med mobilen i dansk - sæt komma med mobilen.
Skriv den gode tekst ”Det er ikke sin mor, man skriver til. Hvis læserens opmærksomhed ikke bliver fanget i de første fem linjer, når han aldrig den sjette.”
Programmering I Java/C# Datatekniker Dit første projekt.
Ændr 2. linje i overskriften til AU Passata Light AARHUS UNIVERSITET AU CS CHALLENGE MICHAEL I. SCHWARTZBACH KRISTOFFER JUST ANDERSEN INSTITUT FOR DATALOGI.
Forelæsning Uge 1 – Mandag Hvad er programmering? –Eksempel: program, der kan løse sudoku opgaver –Programmering og problemløsning dIntProg kurset –Hvad.
Kandidatspeciale Klinisk Biomekanik Institut for Idræt & Biomekanik.
Fordybelse i et projekt
Lektion 7 Formål med denne lektion er at arbejde videre med klassekulturen, følge op på surveyen og at afrunde lektionsforløbet i Netwerk. Alle rettigheder.
Studieretningsprojektet
Sammen vil vi lære En uddannelse handler om at blive klogere og dygtige, så I bliver parate til jeres drømmejob. Forestil jer, at vores klasse er verdens.
At udfordre eleverne på deres valg, også i forbindelse med uddannelsesmessen Lektor Marianne Tolstrup, UCL
Dagens program Vi skal tale om: Hvornår og hvordan du træffer valg?
Instruktion til mødeledere
Lektion 1A Formålet med denne lektion er at give eleverne et billede af Netwerk for at forberede dem på forløbet og på, hvor lang tid det varer, samt at.
Forelæsning Uge 1 – Mandag
Lektion 6 Formålet med denne lektion er at introducere eleverne til de fællesskabende aktiviteter, der i høj grad støtter op om skabelsen af et stærkt.
Anvendelse.
E-learning om ballonprojektet
Studieretningsprojektet
Forelæsning Uge 1 – Torsdag
”Avanceret” Programmering
Forberedelse til eksamen
Forelæsning Uge 2 – Mandag
Målet med at give nogle elever en transitmentor
VVS-møde 2012 Aftræk Efter GR-A skal HMN som myndighed forhåndsgodkende vandret aftræk i kæde-, række- og dobbelthuse. Tidligere brug og placering.
Sammenhæng: Eleverne bliver ikke bedre til at skrive og arbejder ikke med deres fejl. Eleverne snyder: bruger oversættelsesmaskiner eller henter stile.
Dokumentation.
Skriv ansøgning 10 gode råd.
Forelæsning Uge 2 – Torsdag
Digital kultur og trivsel på skolen – mod et fælles værdisæt
UDDANNELSE OG JOB 8. klasse
Webinar om fordringstyper til daginstitution
Flerfagligt Forløb 2 Klasse: Fag:.
Klasseven for nyankomne elever
- Fælles forståelse af kerneopgaven
Dokumentation.
Velkommen til Introduktion til Programmering
Walt Disneys kreativitetsmodel
- Fokus på hvordan vi sammen kan styrke løsningen af kerneopgaven.
Kommunikation - trykstil
Innovationsforløb Modul 3 ©
Styrk foreningen Fællesskab og samarbejde
Lektion 6 Formålet med denne lektion er at introducere eleverne til de fællesskabende aktiviteter, der i høj grad støtter op om skabelsen af et stærkt.
Sådan bruger du præsentationen
Der tages udgangspunkt i trekantens 4 hovedtemaer.
Kursus for personer med demens og pårørende
Velkommen til 2. og 3. Introdag Copenhagen Loud Festival
Skrivedag 3: Fra skriftlig opgave til mundtligt oplæg
Alberts historie Af forfatter Signe Rhode og illustrator Anja Løfkvist
Quiz Uge 2 – mandag.
CAMILLAS HISTORIE Dilemmaøvelse.
Lektion 1-2 i Blok 8 Teknologiforståelse som fag - Mellemtrin
Toksikologi med agenter – et forløb i matematik (og bioteknologi)
Metakognitiv behandling til børn med generaliseret angst
KURSUS FOR MAKKERLÆSERE
Flerfagligt Forløb 2 Klasse: Fag:.
Værktøj 10: Forandringer og stress - Individet
Værktøj 5: Lederens opgaver med stress - stressforebyggende lederstil
Organisatorisk Implementering af Machine Learning
Præsentationens transcript:

Forelæsning Uge 1 – Mandag Hvad er programmering? –Eksempel: program, der kan løse sudoku opgaver –Programmering og problemløsning dIntProg kurset –Hvad kan I forvente at lære? –Studiecafé –Undervisningsprincipper –Demo af programmeringsomgivelser Afleveringsopgave: Solnedgang Greenfoot

● Program til at løse Sudoku opgaver Opgaven er at udfylde de manglende felter, således at, –hver af de 9 rækker –hver af de 9 søjler –hvert af de 9 kvadrater indeholder hvert af cifrene 1-9 præcis én gang 2

Lidt Sudoku historik Sudoku er inspireret af latinske kvadrater –Introduceret af schweizeren Leonhard Euler, som var den største matematiker på sin tid Sudoku blev enormt populær fra 1984 og frem –Specielt i Japan, men også i resten af verden –”Sudoku” er en forkortelse af den japanske sætning ”Suji wa dokushin ni kagir” som betyder ”tallene må kun forekomme én gang” –Mange danske aviser har stadig Sudoku opgaver Computere og Sudoku –Sudoku opgaver kan konstrueres ved hjælp af computere –Her skal vi i stedet se på, hvordan Sudoku opgaver kan løses ved hjælp af computere – dvs. ved hjælp af programmering

Strategi med udgangspunkt i ciffer

Strategi med udgangspunkt i felt 3 5

Algoritme til løsning af soduku opgaver Afprøv systematisk alle muligheder a b c d e f g h i a1 c1 e1 g1 i1 a2 b2 e2 h2 i Vi kan ikke komme videre frem (vejen er blokeret) Vi må gå tilbage af den sti vi kom (indtil vi kan tage et andet vejvalg) Det kaldes backtracking

a b c d e f g h i Algoritme til løsning af sudoku opgaver Afprøv systematisk alle muligheder a1 c1 e1 g1 i1 a2 b2 e2 h2 i2...

a b c d e f g h i Algoritme til løsning af sudoku opgaver Afprøv systematisk alle muligheder a1 c1 e1 g1 i1 a2 b2 e2 h2 i2...

a b c d e f g h i Algoritme til løsning af sudoku opgaver Afprøv systematisk alle muligheder a1 c1 e1 g1 i1 a2 b2 e2 h2 i2... Enten finder vi en løsning (i et af del-træerne) eller også har vi vist, at der ikke findes en løsning Vores ”vejvalg” udgør et træ Roden er foroven, grenene i midten og bladene forneden

Algoritmen – pseudokode prøvAlleMuligheder() { HVIS alle felter er udfyldt { udskriv løsning } ELLERS{ husk nuværende felt gå til næste tomme felt FOR hvert ciffer c { HVIS c kan bruges { indsæt c i felt prøvAlleMuligheder() } } fjern sidst indsatte værdi gå tilbage til forrige felt } } 10 // tryAll() // allFilled() // printGrid() // previous = currentField() // advanceToNextUnfilled() // promissing(c) // setFieldValue(c) // tryAll() – Java-kode // clearCurrentField() // setToField()

Java program – kan udføres af computer public void tryAll() { if ( g.allFilled() ) { g.printGrid(); } else { // try all 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); } 11 "games/jpX.sud"

Klassemodel Grid boolean allFilled() void printGrid() Field currentField() void advanceToNextField() boolean promissing(int c) void setFieldValue(int v) void clearCurrentField() void setToField(Field f) Solver void tryAll() 1 12

● Programmering og problemløsning Computerens styrker –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 –Laver ingen fejl (hvis den er programmeret korrekt) 13

Programmering En computer er en generel maskine, der kan programmeres til at gøre forskellige ting Computer + X-program = X-maskine X = skak, sudoku, tekstbehandling, kasseapparat, Facebook, Google, Dropbox, iTunes, Windows, Linux, OS X, … ComputerProgram … 14

En Sudoku-maskine Computer C++Java VM Java … Sudoko-løser Computer C++ Java VM Java … Grid Solver 15

Programmering og problemløsning 16 Identificer problemet Analyser løsningsmuligheder Implementer idéen via et program (f.eks. i Java) Evaluer resultatet Vælg den bedste idé Programmering

Cup turnering (fx tennis eller fodbold) Spillerne/holdene mødes to og to –Vinderen fortsætter til næste runde, mens taberen er slået ud af turneringen og ikke får flere kampe –Vi vil gerne lave en algoritme, som beregner, hvor mange kampe, der skal til, hvis der er X spillere/hold i turneringen 17 Løsning for X = 29 –13 sekstendedels finaler + 3 oversiddere –8 ottendedels finaler –4 kvartfinaler –2 seminfinaler –1 finale –I alt 28 kampe Er der en lettere algoritme til at løse opgaven? –Der bliver slået et hold ud i hver kamp –Så vi skal bruge X-1 kampe (hvor X er antallet af hold)

● Information om dIntProg 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 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 18

Læringsmål Deltagerne skal ved afslutning af kurset kunne –anvende grundlæggende konstruktioner i et programmeringssprog –udvikle simple velstrukturerede programmer og afteste disse –forklare arkitekturen af simple programmer –forklare simple specifikationsmodeller og realisere disse i programmer –anvende standardklasser ved realisering af programmer Eksamen er en praktisk prøve i programmering –30 minutters varighed –svarer til en køreprøve –eneste tilladte hjælpemidler er: JavaDoc for Javas klassebibliotek (API) BlueJ editoren (eller en anden Java editor) 19

Aktiviteter på kurset Hjemmearbejde –gennemgå materiale –forberede opgaver Videoer (30 stk) –præsentation af centralt stof –tilgængeligt når som helst Forelæsninger –overblik, begreber, principper og eksempler –tilgængelige via video 20 Forelæsninger3 timer Øvelser4 timer Hjemmearbejde 5-8 timer I alt timer Øvelser –praktisk arbejde under vejledning af en instruktor (ældre studerende) Opgaver –programmeringsopgaver –1-2 afleveringsopgaver pr uge –obligatoriske (feedback til jer og os) Større projekt i uge 5 –bringer mange ting sammen –intensiv træning inden eksamen Studerende, der på forhånd kender til programmering, kan klare kurset med lavere belastning For dem er forelæsningerne ikke så vigtige, men øvelserne er

Studiecafé To sammenhængende øvelseslokaler er omdannet til studiecafé –Underetagen af bygning 5342, IT-Parken, Åbogade 34 (spørg efter Ada-0) –Lige ved siden af Storcenter Nord –Lokalerne kan benyttes 24/7 –Uden for normal åbningstid kræver det dog, at man har anskaffet et adgangskort, så man kan komme ind Bemandet med to dIntProg instruktorer –Mandag –Onsdag  Starter onsdag den 31.8 –Fredag –Studiecaféen er primært tiltænkt Datalogi- og IT-studerende, men andre dIntProg studerende er velkomne på ovenstående tidspunkter Lokalerne –Nyindrettede med renoveret strømforsyning –Infoskærm og espressomaskine i niche på gangen udenfor (betalingskort købes i informationskontoret på etagen ovenover) 21

22 bb.au.dk

Undervisningsprincipper I møder de samme begreber og teknikker mange gange gennem kurset (spiral-metoden) –Introduktion ved forelæsning –Selvstudie via video og/eller bogkapitel –Praktisk træning ved en eller flere øvelsesgange –Repetition i senere forelæsning –Mere praktisk træning – osv. Kursets forløb –Der introduceres rigtigt meget stof i de første 3-4 uger –Derefter kommer der ikke så meget nyt – i stedet arbejdes der videre med de begreber og teknikker, som I allerede er stødt på Vær med fra start –De første 3-4 uger kan være overvældende og svære –Men hold ud og klø på – kommer I bagud i denne fase, er det meget vanskeligt at indhente 23

Opgaverne i lærerbøgerne Begge lærerbøger indeholder en masse små opgaver –Der er typisk omkring 50 opgaver i hvert kapitel –Nogle opgaver afklarer spørgsmål omkring de gennemgåede begreber –I andre opgaver skal I programmere ved at lave små rettelser/tilføjelser i forskellige projekter Når I læser de enkelte kapitler, er det vigtigt, at I samtidig løser alle opgaverne –I lærer ikke at programmere ved at læse om det –I lærer det ved at øve jer igen og igen 24

Par-programmering Ved øvelserne arbejdes i par (på 2 personer) –Gælder også afleveringsopgaver (bortset fra uge 6 og 7) –I må også gerne lave hjemmearbejde og forberedelse i par/grupper –Ved at arbejde i par hjælper I hinanden, så I ikke så let går i stå på grund af småproblemer –Det træner jer i at kunne arbejde sammen med andre, hvilket er en vigtig kompetence for programmører –Derudover er det en praktisk foranstaltning, således at instruktorerne kan nå at komme rundt på hele holdet (skal kun se og kommentere 12 besvarelser i stedet for 24) 25

Når I ikke kan få jeres kode til at virke 26 Ved øvelserne 1.Spørg dig selv 2.Spørg din makker 3.Spørg et andet par 4.Kig i slides og JavaDoc 5.Spørg jeres instruktor Uden for øvelserne Brug studiecaféen Brug webboardet –I får ofte hurtigt svar –Svaret kan hjælpe mange andre –Man kan spørge anonymt Ved forelæsningerne –Jeg kigger ikke på jeres detaljerede kode i pauserne –Det kan jeg simpelthen ikke nå –Men jeg svarer meget gerne på (næsten) alle andre spørgsmål Læg ikke hele jeres løsning på webboardet –Kun den metode, udtryk, sætning eller lignende som ikke virker –Ellers kan andre "stjæle" jeres kode –Instruktorerne får for meget kode at kigge på

Plagiering 27 Enhver form for plagiering er uacceptabelt og sidestilles med eksamenssnyd, som er en alvorlig forseelse –Det er forbudt at kopiere andre studerendes afleveringsopgaver, og det samme er tilfældet for opgaver, som man finder på nettet eller andet steds –Det gælder både hele opgaver og dele af opgaver (med mindre der eksplicit er gjort opmærksom på, at dele af en opgave er lånt/inspireret andetsteds fra) –Det er både en forseelse at aflevere kopi af andres opgaver og at lade andre aflevere kopi af ens egen opgave –Kurset har nul-tolerance over for plagiering –Studerende, der bliver grebet i plagiering, får ikke godkendt deres obligatoriske opgaver, og kan derfor først komme til eksamen det efterfølgende år (for 1-års studerende betyder det, at de ikke består 1. års prøven og dermed må forlade studiet)

Programmering er svært Programmering –Anderledes –Svær tankegang Faser –Motivation –Begejstring –Tvivl? –Frustration –Eksistentiel krise –Heureka! –Fascination –Indsigt –Magt over teknologien Tid Begejstring 28

Programmeringssprog og -omgivelser Greenfoot 29 Objektorienteret programme- ringssprog

● Afleveringsopgave: Tegninger I BlueJ skal I lave nogle simple børnetegninger ved hjælp af kvadrater, trekanter og cirkler I afleveringsopgaven skal I få solen til at gå ned 30

● Opsummering 31 Hvad er programmering? –Eksempel: program, der kan løse sudoku opgaver –Programmering og problemløsning dIntProg kurset –Hvad kan I forvente at lære? –Studiecafé –Undervisningsprincipper –Demo af programmeringsomgivelser Afleveringsopgave: Tegninger

CS Challenge Henvender sig til alle 1. års studerende, der følger den introducerende datalogiundervisning –Det er et tilbud, og derfor på ingen måde obligatorisk Der stilles seks sjove udfordringer inden for programmering –De skal løses hen over efteråret (første aflevering 11. september) –Hver udfordring illustrerer universelle principper om algoritmer og programmer –Det handler mere om at tænke end at knokle. Deltagerne får detaljeret feedback på deres løsninger CS Challenge kan tælle med i talentforløb –Ekstra udfordringer til særligt talentfulde bachelorstuderende på datalogi og it –Anerkendelse herfor på eksamensbevis –Søges ved starten af 2. studieår –Kræver karaktergennemsnit på 10 fra 1.studieår Mere information: cs.au.dk/Challenge 32

Studiestartsprøve Gælder alle nye bachelorstuderende –Prøvens hovedformål er at identificere de studerende, der ikke har påbegyndt studiet, så de kan udmeldes inden det officielle sommeroptag opgøres Mandag den 5. september 2016 vil I modtage en mail på jeres au-mailadresse. –Mailen indeholder et link til et spørgeskema, som I skal besvare. –Det er obligatorisk at gennemføre studiestartsprøven, da den bruges til at registrere, om I er studieaktive. –I skal besvare spørgeskemaet inden fredag d. 9. september 2016 kl

Det var alt for nu….. … spørgsmål 34