Problemlösning. Programmeringsmetaforer Instruktion Konstruktion Problemlösning Adaptation Demonstration.

Slides:



Advertisements
Liknande presentationer
Teknisk psykologi – design för användaren
Advertisements

Lärdomar från skolor med mer traditionellt undervisningsmönster
Kopplingen mellan utredning och behandling – vad är det?
det här bildspelet har ”kommit till åren”…så känns den gamla tidsinställningen för seg…tryck och håll ned ”page down”…och ”page up” om det går för fort..;)
Kräkseminarium Bo Ahrenfeldt
”Språk, lärande och identitetsutveckling är nära förknippade
Problemsnack eller bygga lösningar.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 4.
Datavetenskapens roll. Datavetenskap •Vad är datavetenskapens roll i kognitionsvetenskapen?
Inlärningsmiljö för att öka motivation
- Konsten att ge feed-back
Daniel Nylén, Institutionen för Informatik
Funktioner och programorganisation
Som man frågar får man svar. Vad är intressant? Varför?
Logikprogrammering Ons, 25/9
Föreläsning 7 Analys av algoritmer T(n) och ordo
Objektorientering.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 4.
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
Föreläsning 1.
Algoritmer och datastrukturer
Arv.
Objektorienterad tänkande
Lund Studentlitteratur
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 7 Träd.
EN KOMPLETT INDUSTRIPARTNER ! ALLMÄNT OM MELSEC STYRSYSTEM.
Workshop inför Projektet
Pathfinding. –Vad är det? –Sökning från A till B.
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Retorik Konsten att tala Hur håller man ett bra argumenterande tal?
Vektorer (klassen Vector) Sortering
Positiv Livskraft © Att komma dit du vill
Språkteknologiska metoder Språkteknologisk forskning och utveckling (HT 2006)
Date LEDARUTVECKLING Coachning Jan 2010.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk.
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
EcoCraft. Hur det är tänkt…. Härefter kommer ett antal påståenden. Det är inte åsikter eller något slags ”regelverk” Det handlar inte om rätt eller fel.
Att besöka skolor Camilla Bergvall, ordförande Djurens Rätt Helsingborg & Hanna Eriksson, vice ordförande Djurens Rätt Helsingborg
SYSTEMATISKT KVALITETSARBETE I FÖRSKOLEVERK-SAMHETEN
Föreläsning 11 J-uppgiften. Nästa period ägnas åt J-uppgiften. Den är individuell, dvs man jobbar på egen hand med uppgiften (inte tillsammans med labbkompisen).
Namnrum, räckvidd och rekursion Linda Mannila
Logikprogrammering 21/10 Binära träd
1 Introduktion till AI AI=“Få maskiner att göra sånt som, om…” AI kognitionspsykologi 3 viktiga områden: Kunskapsrepresentation Sökning (och kontroll)
Programmeringsmetodik
Datastrukturer och algoritmer
Läsbar prolog CM 8.1. allmäna principer correctness user-friendliness efficiency readability modifiability robustness documentation.
Bedömning O Bedöma = åsätta någon ett visst värde
Industriell Produktion KTH Kursinformation KTH Industriell produktion Brinellvägen Stockholm MG2032 Automatiseringsteknik fk.
För utveckling av verksamhet, produkter och livskvalitet. Stack och Kö - Implementering - Tilllämpningar.
1 Kognitiv modellering inom MDI mekanismer för att kunna förutspå användarens uppträdande härstammar från experimentell psykologi, AI och lingvistik.
Datastrukturer och algoritmer
INTUITION OCH INTENTION. Intentionen arbetar som drömmen. Freud menar att vi bearbetar problemet genom att röra oss i en cirkelrörelse runt problemets.
Introduktion. Administration Jag, B448, , Kursböcker enligt webben Schema enligt webbenwebben Laborationer 23, 29/10 + 7/11 kl
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 5: Syntaxanalys (parsning) Syntaxanalysens mål Tillvägagångssätt och komplexitet Syntaxanalys.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 14.
Anders Sjögren Data (i primärminnet) som en länkad lista datatypen för varje element i listan är en struktur, post ( struct )
Föreläsningsanteckningar Kortfattat om programmeringsmetodik Ola Ågren Hur det går till att göra ett program.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 3: Abstrakta datatyper Algebror Abstrakta datatyper Inkapsling och informationsmaskering.
Vad är slöserier? Sådant vi gör som inte skapar något värde direkt eller indirekt för dem och det som vi är till för.
Normativa moralteorier är abstrakta strukturer som klassificerar människor, handlingar och utfall (sakförhållanden) i värdetermer, och framställer ett.
ACD 3 Bligård & Simonsen ACD 3 (Aktivitetscentrerad design) Lars-Ola Bligård & Eva Simonsen
Coaching.
Vad skiljer de bästa instruktörerna från de bra?
Programmeringsträff 2. Programmeringsträff 2 Lgr 11 om programmering Centrala innehållet matematik Algebra 1-3 – Hur entydiga stegvisa instruktioner.
Repetitionsföreläsning 1: Lite rekursion & problemlösning
Presentationens avskrift:

Problemlösning

Programmeringsmetaforer Instruktion Konstruktion Problemlösning Adaptation Demonstration

1. Instruktion Ett program är en serie instruktioner En programmerare blir en arbetsledare som talar om för datorn vad den skall göra

2. Konstruktion Legoteknik Språket består av byggblock Naturligt med tankar om underhåll och renovering Re-use (sv. Återanvändning) Kanske inte hollistisk (helhetssyn)

3. Problemlösning Strukturerad programmering “Program är en lösning på ett problem, och lösningen skulle idealiskt växa fram genom stegvis detaljering (stepwise refinement) utan att man någonsin skulle behöva backa och göra om.”

Problemlösning Strukturerad programmering Hierarki Modularitet Fördelar i att lokalisera och korrigera fel.

Strukturerad programmering TOP-DOWN Steg för steg bryter ned problemet till delproblem Tillämpas rekursivt Lösningen till huvudproblemet med det (hypotetiska) antagandet att man redan har en lösning till de olika delproblemen.

Strukturerad programmering När ett delproblem når en detaljnivå som är elementär där standardlösningar finns för detta. Ex. datatypen FIFO (First-In-First-Out) om jag vill göra en printerkö Den hierarkiska strukturen som helhet motsvarar ett ’fungerande program’

Strukturerad programmering Tanken var att nedbrytningsprocessen skulle vägledas av den verkliga strukturen i det givna problemet, genom tillämpningsområdets egna naturliga morfologi Programmets komponenter och strukturen skall svara mot verkliga objekt, relationer och egenskaper i världen. Stöds av de tankar Taylor hade i början av 1900 angående tillverkningsindustrin.

Problemlösning Strukturerad programmering Hierarki Modularitet Fördelar i att lokalisera och korrigera fel.

Hierarki Problem => delproblem delproblem => delproblem igen Detta ger en hierarki i slutändan

Problemlösning Strukturerad programmering Hierarki Modularitet Fördelar i att lokalisera och korrigera fel.

Modularitet Komponenter Löst kopplade Högt oberoende Väl definierade gränsytor (Interface) mellan komponenter Höga precisionskrav (beroende på ovan)

Stack (ADT) Tallrikstrave i matsal Operationer: Titta på översta elementet Lägga på ett element Ta bort ett element Kolla om stacken är tom

Stack StackWithArray Komplext, beroenden Generiskt beteende push(Object o) Object top() Stack

Problemlösningsmetaforen Uppmärksamheten flyttas från datorn (instruktionsmetaforen) och program (konstruktionsmetaforen) till abstrakt beteende. Knyter an mot dagens tankar runt OOP där strukturerad programmering med TOP- DOWN ofta kombineras med konstruktionsmetaforens BOTTOM-UP.

4. Adaptation Bygger till skillnad mot tidigare på att problemet och dess miljö inte är helt kända. Miljön kan vara dynamisk t.ex iterativ process utan definierade stoppvillkor

Nivå Val av metafor beror delvis på nivån och delvis på uppgift/problem Låg – nära maskinen passar instruktionsmetaforen Mellan – passar oftast problemlösningsmetaforen Hög – passar oftast adaptionsmetaforen

5. Demonstration Konkret programmering (programming by example) Ex. leda industrirobot genom önskade rörelser Ställer frågan om programmering är att utforma det resulterade beteendet eller att utforma programmet

Problemlösning Definition av problem 1)ett väl definierat mål, väl definierade kriterier på ett sökt tillstånd 2)en väl definierad utgångspunkt, ett starttillstånd 3)en välavgränsad repertoar av väldefinierade operationer för att transformera tillstånd

Lösning En struktur av operationer som förbinder utgångspunkt och mål Ibland duger vilken lösning som helst, men ibland vill man ha en lösning som är optimerad (ur något perspektiv)

Behållarna Givet att vi har två behållare, en som rymmer 7 dl och en som rymmer 3 dl Ingen av dem har någon gradering I startläget är den större full med vatten och mindre tom Målet är att den mindre skall innehålla 1 dl

Operationer 1)Töm den större 2)Häll till den mindre från den större 3)Häll till den större från den mindre 4)Töm den mindre 5)Fyll den större från en kran 6)Fyll den mindre från en kran

Träd Rot (1) Nod (1, 2, 3, 4) Löv (2, 3, 4) Barn (2, 3, 4) Föräldrar (1, 2, 3)

Behållarna 2 Om målet är att ha 2 dl i den mindre, hur gör vi då?

Sökning i träd Om vi vill göra uttömmande sökningar i träd för att finna en lösning till ett problem så kan vi göra på på två sätt Bredden först Djupet först Ohanterligt vid till exempel schack

Heuristik Metod för att finna lösning snabbare (än uttömmande sökning) Grekiska för att finna Metod för att upptäcka eller bilda ny relevant kunskap Läran om sådana metoder Tumregler

Heuristisk sökning Positiv – rekommendera vissa noder som är mer intressanta Negativ – t.ex. inte fortsätta under ett visst djup Sökalgoritmer med heuristik oftast väsentligt snabbare än uttömande sökning Schackdatorer

Riktning Framåt – från utgångspunkt Bakåt – från mål

Metoder för PL i DV Två nivåer 1)Programmeringsmetodik. Metoder och trick för att lösa programmeringsuppgift, dvs det är programmeraren som skall lösa problemet, och det är programmet som är lösningen. Ex. Iteration (adaptation), Rekursion (uppdelning) 2)Program som skall lösa problem. Uppgift för AI.

Problemlösning och programbyggnadskonst Ex. Brokonstruktion Problemet Vilka punkter A och B Vilken sorts trafik Trafikvolym Väderpåverkan (miljö) Framtida krav Materialkunskap, tekniker (standarder), verktygslåda (hjälpmedel)

Problemet kräver: A)Förståelse för hur den färdiga konstruktionen skall utnyttjas, vilken uppgift den fyller, driftsförhållanden, framtida behov etc. B)Materialkännedom, teknikkunskaper, kunskaper i bakomliggande teorier C)Kunskap och färdighet i att använda olika hjälpmedel och verktyg D)Metodkunskap, förmåga att utvärdera konstruktionsförslag, kvalitetskriterier, kretivitet

Relaterar mot (i DV) 1)Uppgiftsformulering, problemspecifikation 2)algoritmkonstruktion (problemlösning) 3)verifikation (att algoritmen uppfyller specifikationen) 4)kodning (programskrivning) 5)testning och avlusning 6)validering (att programmet löser uppgiften) 7)dokumentering (löper parallellt med de andra momenten) 8)underhåll (sträcker sig över programmets hela livslängd)