45
Forelæsning Uge 1 – Mandag Hvad er programmering? Program, der kan løse Sudoku opgaver (eksempel) Programmering og problemløsning (generelt) Agenter og metoder UML specifikationssproget – Klassediagrammer – Sekvensdiagrammer Kurset: Introduktion til Programmering Hvad kan I forvente at lære? – Studiecafé – Undervisningsprincipper Demo af programmeringsomgivelser Afleveringsopgave: Raflebæger 1 (DieCup 1)

Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Forelæsning Uge 1 – Mandag• Hvad er programmering?

– Program, der kan løse Sudoku opgaver (eksempel)– Programmering og problemløsning (generelt)

• Agenter og metoder

• UML specifikationssproget– Klassediagrammer– Sekvensdiagrammer

• Kurset: Introduktion til Programmering– Hvad kan I forvente at lære?– Studiecafé– Undervisningsprincipper– Demo af programmeringsomgivelser

• Afleveringsopgave:Raflebæger 1 (DieCup 1)

Page 2: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

● 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

Page 3: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Lidt Sudoku historik• Sudoku er inspireret af latinske kvadrater

– Introduceret af schweizeren Leonhard Euler– En af de 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

3

1707-1783

Page 4: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Strategi med udgangspunkt i ciffer

1

11

1

1

4

1

Page 5: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Strategi med udgangspunkt i felt

3

5

Page 6: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Algoritme til løsning af Sudoku opgaver• Afprøv systematisk alle muligheder

a b c d e f g h i

1

2

3

4

5

6

7

8

9

a1

c1

e1

g1

i1

a2

b2

e2

h2

i2

...

9

3 9

2 7 8

7 8

8

3 9 2 7 81 7

7

9 2

9

2 4

1 4

6

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

Page 7: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

a b c d e f g h i

1

2

3

4

5

6

7

8

9

9

3 9

2 7 8

7 8

8

3 9 2 7 81 7

7

9 4

9

2 4

1 4

7

Algoritme til løsning af Sudoku opgaver• Afprøv systematisk alle muligheder

a1

c1

e1

g1

i1

a2

b2

e2

h2

i2

...

Page 8: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

a b c d e f g h i

1

2

3

4

5

6

7

8

9

9

3 9

2 7 8

7 8

8

3 9 2 7 81 7

7

9 4

9

2 4

1 4

8

Algoritme til løsning af Sudoku opgaver• Afprøv systematisk alle muligheder

a1

c1

e1

g1

i1

a2

b2

e2

h2

i2

...

Page 9: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

a b c d e f g h i

1

2

3

4

5

6

7

8

9

9

3 9

2 7 8

7 8

8

3 9 2 7 8

7

4

9

2 4

1 4

9

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) ellerogså har vi vist, at der ikkefindes en løsningVores ”vejvalg” udgør et træ

Roden er foroven, grenene imidten og bladene forneden

Page 10: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Algoritmen – pseudokodeprøvAlleMuligheder() {HVIS alle felter er udfyldt {

udskriv løsning}ELLERS {

husk nuværende feltgå til næste tomme felt

FOR hvert ciffer c {HVIS c kan bruges {indsæt c i feltprøvAlleMuligheder()

}}

// backtrackfjern sidst indsatte værdigå tilbage til forrige felt

}}

10

// tryAll()// allFilled()// printGrid()

// previous = currentField()// advanceToNextUnfilled()

// promissing(c)// setFieldValue(c)// tryAll()

– Java-kode

// clearCurrentField()// setToField()

Page 11: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Java program – kan udføres af computerpublic void tryAll() {if( g.allFilled() ) {

g.printGrid();}else {

// try all values at next fieldField previous = g.currentField();g.advanceToNextUnfilled();

for( int c = 1; c <= 9; c++ ) {if( g.promissing(c) ) {g.setFieldValue(c);tryAll();

}}

// backtrack to previous fieldg.clearCurrentField();g.setToField(previous);

}}

11"games/jpX.sud"

Page 12: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Computerens styrker• Computeren kan

– foretage beregninger lynhurtigt– 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

12

• En computer er en generel maskine, der kan programmeres til at gøre forskellige ting– Computer + X-program = X-maskine

Computer

Program

Program

Program

Program

X = skak, sudoku, tekstbehandling, kasseapparat, Facebook, Google, Dropbox, iTunes, Windows, Linux, OS X, …

Lag på lag:

Page 13: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

En Sudoku-maskine

Computer

C++

Java VM

Java

…Sudoko-løser

Computer

C++

Java VM

Java

Grid

Solver

13

Page 14: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

● Agenter og metoder• Hvis min bil går i stykker

– Jeg henvender mig på et autoværksted ogforklarer dem hvad problemet er

– Jeg overlader bilen til værkstedet og fården senere tilbage i repareret stand

14

• Hvad har jeg gjort for at løse mit problem?– Fundet en passende agent eller serviceudbyder– Overbragt agenten en meddelelse om mit problem– Det er herefter agentens ansvar at løse problemet på mine vegne– Agenten har en metode til at løse problemet, men den behøver jeg

ikke at kende til

Page 15: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Agenter og metoder – blomsterhandel• Samme princip hvis jeg skal sende blomster til min farmor i

Svendborg

– Jeg henvender mig til min lokale blomsterhandler med en meddelelse, der indeholder information om, hvilke blomster jeg ønsker, samt min farmors adresse, og så sker resten bag kulisserne uden min indblanding

– Formodentlig ved at blomsterhandleren videregiver min meddelelse til enblomsterhandler i Svendborg, der sørger for at fremskaffe blomsterne, binde enbuket og få dem sendt ud til min farmor

15

Page 16: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Delegering til agenter

• Løsning af problemet er agentens ansvar– Agenter kan frit anvende en vilkårlig fremgangsmåde (metode) til at

løse et problem– De skal blot levere en løsning på den type service, de tilbyder– Det giver stor fleksibilitet, at vi andre ikke blander os i agenters måde

at løse problemerne på

16

• Der er forskellige slags agenter– Hver type agent har sine metoder, som er specifikke for netop den

service, vedkommende tilbyder– Havde jeg henvendt mig på autoværkstedet med mit blomsterproblem,

ville de have svaret, at de ikke har nogen metode til at løse det problem– Omvendt kan blomsterhandleren ikke reparere biler

Page 17: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

● UML: Et grafisk specifikationssprog

• Diagramtyper– Klassediagrammer– Sekvensdiagrammer– Objektdiagrammer (senere)– …

17

Klassediagram Sekvensdiagram

Page 18: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Klassediagram for Sudoku løseren

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

18

STRUKTUR(statisk)

Page 19: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Klassediagram for blomsterhandel

Blomsterhandler Bud

levérbindBuketindbetal

bringUdoverbring

1 *

19

STRUKTUR(statisk)

Page 20: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Sekvensdiagram for blomsterhandel

Mig Alexandra Blomster Quist Blomster Bud Johnny Farmor

levér(b,a)

levér(b,a)

bindBuket(b)

bringUd(b,a)

overbring(b,a)

20

OPFØRSEL(dynamisk)

Page 21: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Klassediagram for autoværksted

Værkfører

fix(bil)skrivFaktura

E-Mekanikerreparér(bil)checkKarburatorreparérKarburator

CPUTestertestCPU(bil)

I-Mekaniker

reparér(bil) 11

1

* *

*

21

STRUKTUR(statisk)

Page 22: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Mig Værkfører I-Mekaniker

Sekvensdiagram for autoværksted

fix(bil)reparér(bil)

E-Mekaniker

checkKarburator

reparérKarburator

reparér(bil)

CPUTester

testCPU(bil)

skrivFaktura

22

OPFØRSEL(dynamisk)

Page 23: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Klassediagram for studieadministration

23

Fag

Studerende

*

*

Lokale1*Lærer * *

Prøveform*

Karakter1

*

• Studerende (Rasmus, Stine, Søren, ...)• Fag (Programmering, Calculus, ...)• Lærer (Kurt Jensen, …..)• Lokale (Aud. E, Aud. F)• Prøveform (mundtlig, skriftlig, projekt, ...)• Karakter (bestået, udeblevet, 7, ...)

Klasser (begreber)

Objekter(instanser af begreber)

STRUKTUR(statisk)

Page 24: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

● Information om 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å 15 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

24

Page 25: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Læringsmål• Efter kurset vil deltagerne have kendskab til principper og

teknikker for systematisk konstruktion af programmer, og de vil kunne– anvende et almindeligt programmeringssprog– udvikle velstrukturerede programmer og afteste/debugge disse– forklare arkitekturen af programmer, herunder nedarvning, abstrakte

klasser og interfaces– forklare simple specifikationsmodeller og realisere disse i programmer– anvende standardklasser ved realisering af programmer

25

Page 26: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Eksamen• Mundtlig prøve med forberedelse

– 10 spørgsmål, der dækker kursets centrale emneområder)– Eksaminanden trækker et spørgsmål og forventes at demonstrere

• Kendskab til de vigtigste begreber indenfor det trukne emneområde• Evne til a programmere i Java ved at præsentere små velvalgte

programstumper indenfor emneområdet• Evne til at svare på simple spørgsmål inden for emneområdet, herunder

relatere kursets projektopgaver til emneområdet

• I slutningen af uge 7 er der en praktisk prøve i programmering– 30 minutters varighed (svarer til en køreprøve)

• I kursets anden halvdel er der et gennemgående projekt– I skal konstruere et simpelt computer spil– Delaflevering hver uge (hvor man benytter de ting der er gennemgået ugen før)

• Køreprøve og projekt tæller med til den endelige karakter– Køreprøven ≈ 20 %, projektet ≈ 30 %, mundtlige eksamen ≈ 50 %– Helhedsvurdering, hvor alle tre dele skal være tilfredsstillende 26

Page 27: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Aktiviteter på kurset

27

• Hjemmearbejde– Læse kapitlerne i lærebogen

• Herunder løse de ca. 50 småopgaver, der er i hvert kapitel• Det er vigtigt at I løser opgaverne – I lærer kun at programmere ved

at øve jer, og de fleste af opgaverne er små programmeringsopgaver– Gennemse videonoter (ca. 60 i alt)

• Præsenterer vigtigt stof • Tilgængelige døgnet rundt

• Øvelser– Praktisk arbejde under vejledning af instruktor (ældre studerende)

• Ugentlige obligatoriske afleveringsopgaver• Spørgsmål til lærebog og videonoter

• Forelæsninger– Giver overblik over begreber, principper – Gennemgår eksempler– Indeholder quizzer, hvor I deltager aktivt– Optages på video og er således tilgængelige, hvis der er ting man

vil have genopfrisket

Page 28: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Forelæsninger

28

• Sprog– Fakultetet har besluttet, at bachelorkurser på Science og Technology

undervises på dansk (med mindre forelæseren ikke er dansktalende)– Derfor vil jeg tale dansk, og mine slides vil være på dansk– Mange fagudtryk og mange navne fra programmerne er på engelsk– Sproget bliver derfor en (lidt uskøn) blanding af dansk og engelsk– Det bliver I nødt til at leve med

• Udbytte af forelæsningerne– Hovedformålet med forelæsningerne er at give jer et overblik over

begreber og principper samt gennemgå udvalgte eksempler– For nogle af jer vil det herefter være væsentligt lettere at læse lærebogen– Andre synes, at det er nemmere selv at gå i gang med lærebogen – uden

at gå til forelæsningerne (eller høre dem på video)– Det er helt ok for mig– I skal selvfølgelig kun komme til forelæsningerne, hvis de hjælper jer– I skal dog være opmærksomme på, at mine slides indeholder en del

materiale, som ikke er med i lærebogen og som bruges i opgaver oger en del af eksamenspensum

– Som et minimum skal I derfor gennemgå forelæsningsslidsene

Page 29: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

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 instruktorer fra vores kursus– Mandag 10-12– Onsdag 13-15– Fredag 11-13

• Faciliteter– Pæne velegnede lokaler med god strømforsyning– Infoskærm og espressomaskine i niche på gangen udenfor

(betalingskort købes i informationskontoret på etagen ovenover)

29

Page 30: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

30bb.au.dk

Page 31: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Undervisningsprincipper• I møder de samme begreber og teknikker mange gange gennem

kurset (spiral-metoden)– Introduktion ved forelæsning– Selvstudie via videonote og/eller bogkapitel– Praktisk træning ved en eller flere øvelsesgange– Repetition i senere forelæsning– Mere praktisk træning – osv.

• Vær med fra start– De første 3-4 uger kan være overvældende og svære – specielt, hvis

man ikke har erfaring med programmering– Men hold ud og klø på – kommer I bagud i denne fase, er det vanskeligt

at indhente (der kommer ikke et tidspunkt, hvor vi skifter til noget helt andet)

31

Page 32: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Par-programmering• Ved øvelserne arbejdes i par (på 2 personer)

– Gælder også afleveringsopgaver (bortset fra uge 5-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)

32

Page 33: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Når I ikke kan få jeres kode til at virke

33

• Ved øvelserne1. Spørg dig selv2. Spørg din makker3. Spørg et andet par4. Kig i slides og JavaDoc5. Spørg jeres instruktor

• Uden for øvelserneBrug studiecaféenBrug 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å

Page 34: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Plagiering

34

• 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

– Det betyder, at man ikke består 1. års prøven og dermed må forlade studiet

Page 35: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Programmering er svært

• Programmering– Anderledes– Ny tankegang

• Faser– Motivation– Begejstring– Tvivl?– Frustration– Eksistentiel krise– Heureka!– Fascination– Indsigt– Magt over teknologien

Tid

Begejstring

35

Page 36: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Øvelserne i de to første uger

36

• Første øvelsesgang i uge 1– Hjælp til installation af Java og BlueJ (om nødvendigt)– Opgaverne fra Kapitel 1 i BlueJ bogen– I bør på forhånd kigge på så mange af disse opgaver som muligt – men det

kan være svært at nå for visse af øvelsesholdene

• Anden øvelsesgang i uge 1– Afleveringsopgave om Raflebæger (den ser vi på om et øjeblik)

• Første øvelsesgang i uge 2– Opgaverne fra Kapitel 2 og 3 i BlueJ bogen – Husk at forberede jer på dem

• Anden øvelsesgang i uge 2– Ny afleveringsopgave om Raflebæger, hvor terningerne nu kan have et

vilkårligt positivt antal sider• Efter de første to uger forventer vi, at I selv løser de ca. 50

småopgaver, der er i hvert BlueJ kapitel – mens I læser kapitlet– Nogle opgaver tjekker begreber, mens andre er små programmeringsopgaver– Det er vigtigt at I øver jer på disse – I lærer kun at programmere ved at øve jer– I skal også huske at gennemse de videonoter, der hører til kapitlet

Page 37: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

● Afleveringsopgave: Raflebæger 1 (DieCup 1)

• Terning har to metoder:– roll() repræsenterer et kast med terningen– getEyes() returnere det viste antal øjne (i sidste slag)

• Raflebæger indeholder to terninger og har to metoder:– roll() repræsenterer et kast med de to terninger– getEyes() returnere det viste antal øjne (i sidste slag)

• I skal implementere et system med et raflebæger og to terninger

37

Tilfældige kast kan modelleres ved hjælp af klassen Random

fra Java’s klassebibliotek(i opgaven er det forklaret,

hvordan dette gøres)

DieCup

Die d1Die d2

void roll()int getEyes()

Die

int eyes

void roll()int getEyes()

2

Raflebæger Terning

Page 38: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

● Opsummering

38

• Hvad er programmering?– Program, der kan løse Sudoku opgaver (eksempel)– Programmering og problemløsning (generelt)

• Agenter og metoder

• UML specifikationssproget– Klassediagrammer– Sekvensdiagrammer

• Kurset: Introduktion til Programmering– Hvad kan I forvente at lære?– Studiecafé– Undervisningsprincipper– Demo af programmeringsomgivelser

• Afleveringsopgave: Raflebæger 1 (DieCup 1)

Page 39: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Indholdet af kurset dIntProg• Objektorienteret programmering

– Java er vores programmeringssprog– BlueJ er vores programmeringsomgivelser (editor)– Undervejs bruger vi kode produceret af andre

(Javas klassebibliotek)

• Modeldrevet programmering– Programmeringsopgaver tager udgangspunkt i simple

objektorienterede modeller (klassediagrammer og sekvensdiagrammer– UML diagrammerne er vores specifikationssprog– Java er vores implementationssprog

39Blå skovskadeBlue jay

Page 40: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Praktiske ting

40

• Mails– Det er VIGTIGT, at I ser de mails, som jeg og instruktorerne sender– Alle mails sendes til jeres officielle AU adresse– Videresendelse af (al mail til AU adressen) kan sættes op via mit.au.dk– Hvis I har problemer, så spørg jeres instruktor og/eller medstuderende

• I skal installere Java 8 JDK og BlueJ– Hvis I har problemer, så spørg jeres instruktor og/eller medstuderende

• Læs kursets websider og følge med i de nyheder, der kommer på webboardet– Herunder ugebrevene, som indeholder vigtig information om,

hvad der sker på kurset i den pågældende uge

Page 41: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

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 optag 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 12.00

41

Page 42: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

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 studerende– 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 http://cs.au.dk/Challenge/42

Page 43: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Universitetsstudier er fuldtidsarbejde• Vi forventer, at I arbejder 45 timer pr uge, dvs. 15 timer pr kursus

– Svarer til en 37 timers arbejdsuge – når de eksamens- og undervisningsfrie perioder tages med i beregningen

– Studerende, der på forhånd kendertil programmering, kan i begyndelsenklare kurset med lidt lavere belastning

– Husk begreberne

43

Forelæsninger 3-4 timerØvelser 4 timerHjemmearbejde 5-7 timerI alt 12-15 timer

• Brug gerne Studiecaféen, som jeres "kontor"– Underetagen af bygning 5342, IT-Parken, Åbogade 34

(spørg efter Ada-0)– Lokalerne kan benyttes 24/7

• Bemandet med to dIntProg instruktorer– Mandag 10-12– Onsdag 13-15– Fredag 11-13

Page 44: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

Fast timeplan• Som ny studerende kan det være en god ide at lave et fast

arbejdsskema, således at tingene ikke bare flyder

44

MAN TIR ONS TOR FRE LØR SØN

8-9 TØ fri fri fri forelæsning fri fri

9-10 TØ studiecafé fri TØ forelæsning fri fri

10-11 studiecafé studiecafé studiecafé TØ studiecafé fri fri

11-12 frokost studiecafé studiecafé frokost studiecafé fri fri

12-13 forelæsning studiecafé frokost studiecafé frokost fri fri

13-14 forelæsning frokost TØ studiecafé studiecafé fri fri

14-15 forelæsning studiecafé TØ forelæsning læsegruppe fri fri

15-16 forelæsning studiecafé studiecafé forelæsning læsegruppe fri studér

16-17 fri læsegruppe studiecafé fri fri fri studér

17-18 fri læsegruppe fri fri fri fri studér

18-19 fri fri fri fri fri fri fri

19-20 fri fri fri fri fri fri fri

20-21 studér fri læsegruppe studér fri fri studér

21-22 studér fri læsegruppe studér fri fri studér

• Video om time management Link

Page 45: Forelæsning Uge 1 – Mandag - Aarhus Universitet · 2019. 3. 13. · Java VM Java … Sudoko-løser ... – Hver type agent har sine metoder, som er specifikke for netop den service,

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

45