Föreläsning 11 i programmeringsparadigm. Negering.
|
|
- Ulla-Britt Ivarsson
- för 7 år sedan
- Visningar:
Transkript
1 Föreläsning 11 i programmeringsparadigm. Negering. Brna avsnitt 7.2. Prologs negering \+ fungerar som så att om vi har delmålet \+ p(...), så körs p(..). Om denna körnings lyckas så misslyckas \+ p(...)och tvärtom. Detta sätt att implementera negering i Prolog leder till en mängd konstigheter, speciellt om p(...) innehåller logiska variabler som vid körningen fortfarande ej är substituerade (bundna (bound)) till konstanter. Exempel som liknar bokens exempel: Program database: man(jim). man(fred). woman(x) :- \+ man(x). person(x) :- man(x). person(jane). Har vi denna databas ger frågorna man(jim), man(fred), man(jane) och man(x) vettiga svar, men frågan woman(x)ger svaret no vilket inte är det svar vi skulle få med en logisk läsning, vi vill kanske ha förslaget X = jane. woman(x) ger en körning av man(x) som lyckas med X = jim, varför woman(x) misslyckas och misslyckade körning ger inga substitutioner, bindningar. Inte heller denna definition funger bra : woman(x) :- \+ man(x), person(x). % Fungerar ej om X "unbound" Men denna fungerar bättre: woman(x) :- person(x), \+ man(x). % Fungerar. Detta beror på att när vi kör \+ man(x)så är X=jim, X=fred, eller X=jane och vi får vettiga resultat. Alltså. Konstiga svar när man kör \+ p(..) om inte de logiska variablerna i p(..) är substituerade, "bunda", när vi "kommer till" \+ p(..). Därför fungerar det ofta bättre om \+ "är långt till höger". Inför labben "Stabila äktenskap". Den procedurella läsningen av den lösning jag tänkt mig är att man först genererar man alla tänkbara kombinationer av par (detta var list-labben som förhoppningsvis redan är gjord), sedan testar man att en kombination inte är instabil med hjälp av \+. Vid instatbilitetstesten är då alla logiska variabler substituerade.
2 Fler icke-logiska saker i Prolog, dvs mer "non-pure Prolog". Det finns en massa saker i Prolog som överhuvud taget inte har en logisk läsning, och en del av dessa saker gör att Prolog kan användas lite mer som ett vanligt programmeringsspråk. read också write m fl för inmatning, och utmatning. Brna Interlude sid 105. \+ negering, not, se ovan. Brna 7.2 sid 6.7 is funktionell "räknemaskin" i Prolog. Brna sid 54. assert m fl. Program som ändrar sig själv under körningen (livsfarligt). Brna 9.2 sid 91 findall m fl. Generar listor med lösningar som man sedan kan använda i programmet.! snitt (cut). Gör att man kan avbryta delar av "backtrackingen". Brna 9.1 sid 87. Snitt fungerar så här: a! a Exempel på vad som kan hända om a misslyckas (dvs vi "backtrackar" från a:s Fail-port). Vad som alltid händer om a misslyckas (dvs vi "backtrackar" från a:s Fail-port) och vi har ett snitt omedelbart till vänster om a. Snitt beskär delar av sökträdet. Vi kan använda snitt om vi är klyftigare än Prolog och med säkerhet vet att vissa "backtrackingar" är meningslösa för att vi vet att de ej kan producera nya lösningar. Sådana snitt kallas gröna och program med gröna snitt exekverar snabbare, men om programmet utan snitt har en logisk läsning så har programmet med snitt fortfarande samma logiska läsning. Andra snitt som påverkar körningen så att man får andra lösningar eller färre lösningar kallas röda snitt och förstör den logiska läsningen. \+ (negering, not) är implementerat med snitt på detta sätt \+ X :- X,!,fail. % kör X, lyckas det så passerar vi!, misslyckas, ingen "backtracking". \+ X. % misslyckades körningen "backtrackar" vi hit, vi lyckas.
3 Man kan skriva \+ X istället för \+(X) eftersom \+ räknas som en operor. Detta är ett rött snitt. Märk också att argumentet (eller operanden) till operatorn \+, dvs X, blir första delmål i högerledet, dvs "data" har plötsligt blivit "kod" eller "program"!!! Detta underlättas ju i Prolog av att sammansatta termer ("data") och delmål ("kod") ser ut på samma sätt: T. ex tall(jim) kan ju ur syntaxsynpunkt t. ex. vara både ett argument till ett predikat eller element i en lista [.., tall(jim),...], men också ett faktum tall(jim). eller ett delmål i ett högerled... :-..., tall(jim),.... När datorer uppfanns var man fascinerad av att "data" vid körningen kunde övergå till "kod" (båda sakerna är ju följder av ettor och nollor), men man kom snart på att det i de flesta fall var alldeles för anarkistiskt att skriva program på detta sätt. Även användning av assert innebär ju att "data" blir "kod". Ett exempel på grönt snitt: Detta predikat är logiskt ekvivalent med minimum(n1,n2,n1) :- N1 <= N2,!. minimum(n1, N2, N1) :- N1 <= N2. minimum(n1,n2,n2) :- N2 < N1,!. minimum(n1, N2, N2) :- N2 < N1. Vi vet ju med våra mattekunskaper att "backtracking" är onödigt eftersom de två delmålen N1 <= N2 och N2 < N1 aldrig samtidigt kan vara sanna. Predikatet med gröna snitt undviker dock meningslös "backtracking". En imperativ programmerare kan ju frestas att förenkla detta till (rött snitt) : predikatet är inte logiskt ekvivalent med minimum(n1,n2,n1) :- N1 <= N2,!. minimum(n1, N2, N1) :- N1 <= N2. minimum(n1,n2,n2). minimum(n1, N2, N2). Prova till exempel minimum(2,5,5) som felaktigt blir sant i predikatet utan!, dvs predikatet med snitt har inte längre någon logisk läsning men påminner om if.. then.. else.. i imperativa språk. I eliza nedan används snitt och sidoeffekts mål, vilket gör att programmet delvis blir som ett imperativt språk. Att lära sig allt om Prolog är säkert en kurs på minst 8 poäng, så.vi är långt ifrån full-lärda. Språket är alltså komplext, men om man lär sig mycket om Prolog kan man skriva mycket mer sofiskerade program än vad vi gjort i denna kurs. I funktionella delen av kursen har vi däremot lärt oss stora delar av vad som finns att lära oss om Haskell, eftersom Haskell innehåller färre element än Prolog, men element som p g a sin generalitet är mycket kraftfulla. För att till fullo uppskatta Haskells potential krävs nog större vana än vi hunnit få i denna kurs.
4 Tillämpningar av Prolog. Ur förordet i boken Bratko: Prolog Programming for Artificial Intetelligence (tredje upplagan 2001) : The truth is that Prolog is a general programming language and any algorithm can be programmed in it. The impractical orthodox schools s position (dvs att programmen alltid skall ha en logisk deklarativ läsning, "Pure Prolog") was modified by Prolog practioners who adopted a more pragmatic view, benefiting from combining the new declarative approcach with the traditional, procedural one. Om vikten av att lära sig lite om Prolog säger Bratko detta, som även kan sägas om språken i den funktionella paradigmen: Wheras conventional languages are procedurally oriented, Prolog introduces the descripteve, or declarative, view. This greatly alters the way of thinking about problems and makes learning to program in Prolog an exciting intellectual challenge. Many belive that every student of computer science should learn something about Prolog at some point because Prolog enforces a different problem-solving paradigm complementary to other programming languages. AI. Vanliga språk för AI-tillämpningar är Lisp och Prolog eller moderna utvidningar av Prolog, t ex "constraint logic programming", CLP, som kan användas för schemaläggning och planering i logistiska sytem. Med hjälp av Induktiv logikprogrammering konstrueras Prolog-program från exempel. Expertsystem. Program som är tänkta att fungera som en expert på något område som t ex program för att bevilja krediter. Sådan program tänktes utveckas av en "kunskapsingenjör" som kan Prolog som "tappar" en expert på hur denne resonerar, både kvalitativt och kvantitativt. Spelprogram. I Bratkos bok diskuteras bl a schackspelande program. I Sterling och Shapiro Mastermind, Nim och Kalah. I båda böckerna diskuteras också allmänna principer och allmänna program för spel i allmänhet. Tolkar (grammatikor). Brna kap 8. I Prolog är det fascinerande enkelt at skriva enkla program för att kontrollera syntax för (främst formella) språk och även knyta syntaxen till semantiska åtgärder. Jag har bland annat gjort tentamensuppgifter för att kolla kemiska formler som också räknar ut molekylvikter, program för att tolka de franska respektive det danska sättet ( to och halvfems ) att uttrycka tal. Ingår inte i kursen i år. Sök-problem. Djupet först inbyggd, men andra söktekniker programmeras lätt i Prolog.
5 Läsanvisning: Paradigmer. Lär dig vilka paradigmer det finns, vad som utmärker dem (semantik) och några exempel på språk. Se föreläsningsanteckningar 1. Viktigt att förstå varför OO används i stället för klassisk imperativ programmering, läs "Vitsen med OO" i föreläsningsanteckningarna. Läsanvisning: Funktionell programmering. Två alternativ: Jag har ju inte följt böckerna slaviskt, så att läsa förläsningsanteckningarna kan vara bra. Typklasser behandlas utförligare i föreläsningsanteckningarna 7, läs där. C&K : Introduction to Computing Alla kapitel utom 2, 6, 9,11, 12, 13. Dessa kapitel är dock lätt kursiv läsning för den intresserade. Lat evaluering behandlas ej; läs föreläsningsanteckningarna. Fokker : Functional programming : kap 1. Hela kapitlet. En del praktiska saker skiljer mellan Gofer och Hugs. Hur man kör rent praktiskt kommer förstås inte på tentan. kap 2. Hela kapitlet. Avsnitt 2.4 kan läsas som exempel på har man programmerar i Haskell, men det kommer inte några utpräglade numeriska uppgifter på tentan. kap 3. Hela kap. Avsnitt om bråk och sökträd kan se som exempel på hur man programmerar en ADT, men jag frågar inte på just dessa exempel. Från labbhäftet repeterara hur man skriver interaktiva program. Där finns också ett avsnitt om typer som man kan läsas som komplement till Fokker. Läsanvisning: Brna Prolog Programming. Brna Kap 1. Hela kapitlet. Brna Kap 2. Hela kapitlet. Brna Kap 3. Hela kapitlet. "Resolution tables" och "search space trees" kommer jag inte att fråga om. Jag har dock främst förklarat Prologs sätt att jobba med Byrd-boxar, se kapitel 5. Brna Kap 4. Hela kapitlet. write/1 behöver man inte kunna. Brna Kap 5. Hela kapitlet, dock inte exekverings-träd och bevisträd. Jag har dock mer ingående använt lådmodellen, se i första hand förläsningsanteckningarna. Brna Kap Interlude Practal matters. De mesta i detta kapitel lämpar sig inte för tentafrågor eller ingår inte, men det kan komma frågor på min variant av Byrd-box-modellen och dess förhållande till Sicstus trace-utskrifter, se förläsningsanteckningarna. Brna Kap 6. Hela kapitlet, dock inte bevisträd 6.4. Kapitlet innehåller tips ("schemata") om hur man tänker när man programmerar predikat för listor, tips som vi tillämpat, fast jag inte direkt har föreläst utgående från boken.
6 Brna Kap 7. Kunna lite om negering avsnitt 7.2 och tillräckligt om "generate and test" för att klara labbarna "Tidernas knepigaste problem", "Stabila äktenskap" och liknade tentaproblem. Brna Kap 8. Ingår ej i kursen. (Antagligen nästa år, kursen då 5 p) Brna Kap 9. Läs en del om vad snitt, cut (!) är. Även föreläsningsanteckningarna.gröna och röda snitt. Brna Kap 10. Läs 10.1 t o m Brna Another Interlude Inpu/Output. Ingår ej i kursen Brna Kap 11. Ingår ej i kursen Brna Kap 12. Ingår ej i kursen Jag har ju inte följt boken slaviskt, så att läsa förläsningsanteckningarna kan vara bra. Ett klassiskt datorprogram : Eliza. Efter Sterling och Shapiro Program Programmen i denna bok finns på eliza finns på /info/progp02/prolog/eliza.pl (men för att få det att fungera bytte jag /== till /= i lookup). Det är ett roligt program att köra. Ett likande program skrevs 1966 av Weizenbaum. Han blev förskräckt av folks reaktioner på programmet och skrev en mycket bra bok om datorer och mänskligt vetande (Weizenbaum, J : Computer Power and Human reason ) /* Körning?- eliza. : [i, am, unhappy]. How long have you been unhappy? : [my, father, loves, me]. Please you tell me more about father : [i, am, unhappy]. How long have you been unhappy? : [since, yesterday]. Please go on. : [what, shall, i, do]. Please go on. : [i, feel, happy]. Do you often feel that way? : [bye]. Goodbye. I hope I have helped you yes */ /* eliza :- Simulates a conversation via side effects. */ % You need to type in a list of words such as [i, am,unhappy]. eliza :- read(input), eliza(input),!. eliza([bye]) :- reply([ Goodbye. I hope I have helped you ]). eliza(input) :- pattern(stimulus,response), match(stimulus,table,input), % Sophisticated multi-use match(response,table,output), % of match! reply(output), read(input1),!, eliza(input1).
7 /* match(patterm,dictionary,words) :- Pattern matches the list of words Words, and matchings are recorded in the Dictionary. */ match([n Pattern],Table,Target) :- integer(n), lookup(n,table,lefttarget), append(lefttarget,righttarget,target), match(pattern,table,righttarget). match([word Pattern],Table,[Word Target]) :- atom(word), match(pattern,table,target). match([],table,[]). /* pattern(stimulus,response) :- Response is an applicable response pattern to the pattern Stimulus. */ pattern([i,am,1],[ How,long,have,you,been,1,?]). pattern([1,you,2,me],[ What,makes,you,think, I,2,you,?]). pattern([i,like,1],[ Does,anyone,else,in,your,family,like,1,?]). pattern([i,feel,1],[ Do,you,often,feel,that,way,?]). pattern([1,x,2],[ Please,you,tell,me,more,about,X]) :- important(x). pattern([1],[ Please,go,on,. ]). important(father). important(sister). important(son). important(mother). important(brother). important(daughter). reply([head Tail]) :- write(head), write( ), reply(tail). reply([]) :- nl. lookup(x,[(x,v) XVs],V). lookup(x,[(x1,v1) XVs],V) :- X \= X1, lookup(x,xvs,v). /* append(xs,ys,xsys) :- XsYs is the result of concatening the lists Xs and Ys. */ append([],ys,ys). append([x Xs],Ys,[X Zs]) :- append(xs,ys,zs). Annan klassiker : Placera damer på schackbräde. Från Sterling och Shapiro. Problem: Placera 8 damer på ett schackbräde så att de ej hotar varandra. /* queens(n,queens) :- Queens is a placement that solves the N queens problem, represented as a permutation of the list of numbers [1,2,...,N] i. e.[row for column 2, row for column 2... ] */ Naivt generera-test-program: queens(n,qs) :- range(1,n,ns), permutation(ns,qs), safe(qs). % -- generate and - test - % safe(qs) :- The placement Qs is safe. safe([q Qs]) :- safe(qs), not attack(q,qs). safe([]). attack(x,xs) :- attack(x,1,xs). attack(x,n,[y Ys]) :- X is Y+N ; X is Y-N. attack(x,n,[y Ys]) :- N1 is N+1, attack(x,n1,ys).
8 range(m,n,[m Ns]) :- M < N, M1 is M+1, range(m1,n,ns). range(n,n,[n]). Modifikationer för ett mycket effektivare program: queens(n,qs) :- range(1,n,ns), queens(ns,[],qs). queens(unplacedqs,safeqs,qs) :- select(q,unplacedqs,unplacedqs1), not attack(q,safeqs), queens(unplacedqs1,[q SafeQs],Qs). queens([],qs,qs). Problemet löst i Haskell (med Prologliknade körsätt) : module Queens where import Interact -- Prolog like presentation of list::[a] haskellprolog :: Show a => ([a], String) -> IO() haskellprolog ([], _) = putstr "\nno" haskellprolog (list, qv) = makeinteractiveprogram startstatus firstpromt f where firstpromt = qv ++ " = " ++ show firstsolution ++ "? " (firstsolution : startstatus) = list f:: Show a => [a] -> String -> ([a], String, Bool) f [] _ = ( [], "\nno", False) f (a:as) ";" = ( as, qv ++ " = " ++ show a ++ "? ", True) f (a:as) _ = ( as, "\nyes", False) -- 8 queens problem queens (n,qv) = (try [1..n] [] [], qv) try ::[Integer] -> [Integer] -> [Integer] -> [[Integer]] try [] [] safeqs = [safeqs] -- found one solution try [] triedqs safeqs = [] -- no solution try (q:unplacedqs) triedqs safeqs attack q safeqs = res2 otherwise = res1 ++ res2 where res1 = try (triedqs++unplacedqs) ([]) (q:safeqs) res2 = try (unplacedqs) (q:triedqs) (safeqs) attack :: Integer -> [Integer] -> Bool attack x xs = att x 1 xs where att x n [] = False att x n (y:ys) = x == y+n x == y-n att x (n+1) ys -- Körning: Queens> haskellprolog (queens(8, "Rs")) Rs = [4,2,7,3,6,8,5,1]? ; Rs = [5,2,4,7,3,8,6,1]? ; Rs = [3,6,4,2,8,5,7,1]? yes
9 Fikitiv tenta, prologdel. 1. a) Skriv ett Prolog-predikat för double/2 : % double(list, ListLIst) varje element i List finns två gånger i % ListList dvs double([1, 2, 3], [1, 1, 2, 2, 3, 3]) är sant. b) Vad ger Prolog för körresultat om du ställer frågan :?- double([1, 2, 3], Rs). c) Vad ger Prolog för körresultat om du ställer frågan :?- double(rs, [1,1,2,2,3,3]). d) Vad ger Prolog för körresultat om du ställer frågan :?- double(rs, [1,1,2]). 2. Skriv ett program för select(x,harxs,ettmindrexs) med betydelsen att listan EttMindreXs är resultat av att en förekomst av X har tagits bort från HarXs. 3. Skriv ett Prolog-predikat för twiceinlist/2: % twiceinlist(x, Xs) Elementet X förkommer minst två gånger i Xs. 4. Vad avses med ett prologprogram som gör "generate-and_test"? Hur kan sådana program ofta fås att exekvera fortare? 5. Rena Prolog program ("pure Prolog") 1) Har bara en deklarativ (logisk) läsnig X) Har både en deklarativ och en procedurell läsning 2) Har bara en procedurell läsning För att förstå Prolog program med röda snitt! 1) Måste man göra en deklarativ (logisk) läsnig X) Måste man göra en procedurell läsning 2) Är obegripliga. "Backtracking" kan innebära att 1) Att Prolog försöker på nytt att få ett delmål (subgoal) att lyckas om efterföljande delmål har misslyckats. X) Att Prolog använder klausulerna i ett predikat i omvänd ordning. 2) Att Prolog traverserar elementen i en lista i omvänd ordning. Logiskt och (konjunktion) skrivs i Prolog med 1) :- X) ny klausul 2), Logiskt eller (disjunktion) skrivs i Prolog med 1) :- X) ny klausul 2), 6. Bestäm om följande unifieringar misslyckas eller lyckas, och i det senare fallet vilka substitutioner som görs. house(red, Nat, dog, water, Cig) = house(y, noweigan, Z, water, Cig1). p(x, [X Xs], f) = p(f, Zs, Y). p(x, [X Xs], g) = p(f, Zs, X). 3 = 2+1.
10 Svar fikitiv tenta, prologdel. double([], []). -- 1a) double([x Xs], [X,X Zs]) :- double(xs, Zs). Rs = [1,1,2,2,3,3]? ; no -- b Rs = [1,2,3]? ; no -- c no -- d labbupgift, inget svar här -- 2 twiceinlist(x, Xs) :- select(x, Xs, WXs), select(x, WXs, WWXs) -- 3 genmerate_and_test(svar) :- generate(svar), test(svar) Effektivisering: Flytta delar av testet in i generatorn. generate(r). Föreslår en massalösningar test(y). Tillåter bara BaraTillåtnaLösningar XX12X --5 Y = red, Z = dog, Nat = noweigan, Cig1 = Cig -- 6 X = f, Y = f, Zs = [f Xs] unifierar ej unifierar ej
Föreläsning 13 i programmeringsparadigm.
Föreläsning 13 i programmeringsparadigm. Jag har ju delat ut Lite grann om syntax, semantik och syntaxanalys. Några ex finns på Nadas kursexpedidition. Labben "Danska räkneord" ska göras med en syntaxanlysator
Föreläsning 12 i programmeringsparadigm. Negering.
Föreläsning 12 i programmeringsparadigm. Negering. Brna avsnitt 7.2. Prologs negering \+ fungerar som så att om vi har delmålet \+ p(...), så körs p(..). Om denna körnings lyckas så misslyckas \+ p(...)och
Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1).
Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1). Repetition: I Haskell är mönster-passning (pattern-matchning) jättepraktiskt: När vi gör ett anrop av en funktion med ett visst argument
Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar.
Nada Tentamensdag 2004 aug 23 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(5p + 20p +5p+ 20p) + (10p +12p + 8p +10p) = 10p + 50p + 40 p
Del : Paradigmer allmänt.
Nada Tentamensdag 2003 jan 13 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 3 (Haskell) + 4 (Prolog) = 5p +(15p + 15p +20p) + (10p +12p + 15p +8p) = 5p + 50p + 45 p = 100p
Kursanalys för Programmeringsparadigm 2D1361, läsperiod 1 och 2 läsåret 2005/2006
Leif Kusoffsky 2005 - dec - 07 Nada KTH Kursanalys för Programmeringsparadigm 2D1361, läsperiod 1 och 2 läsåret 2005/2006 Kursdata Momentindelning Kursen genomförd Kursledare Kurslitteratur Antal studenter
Nada Tentamensdag 2004 okt 18 Tentamen Programmeringsparadigm Skrivtid 5 h
Nada Tentamensdag 2004 okt 18 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(6p + 18p +6p+ 20p) + (10p +12p + 8p +10p) = 10p + 50p + 40 p
Nada KTH 2004 jan 12 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13
Nada KTH 2004 jan 12 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 9 10p +( 5p + 14p +15p+ 16p) + (12p +10p + 10p +8p) = 10p + 50p
Föreläsning 9 i programmeringsparadigm. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1.
Föreläsning 9 i programmeringsparadigm. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1. Användning av Prolog. Prolog har framför allt används inom AI ( Articifial Intellegence),
DD1361 Programmeringsparadigm HT15
DD1361 Programmeringsparadigm HT15 Logikprogrammering 1 Dilian Gurov, TCS Innehåll Logikprogrammering Kontrollflöde Unifiering Backtracking Negation Snitt Induktiva datatyper och rekursion Inbyggda datatyper:
Nada KTH 2003 okt 23 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13
Nada KTH 2003 okt 23 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 9 10p +(14p + 12p +10p+ 14p) + (8p +12p + 12p +8p) = 10p + 50p
DD1361 Programmeringsparadigm HT17
DD1361 Programmeringsparadigm HT17 Logikprogrammering 1 Dilian Gurov, KTH Delkursinnehåll Logisk versus procedurell läsning Kontrollflöde: Unifiering, Backtracking, Snitt Induktiva datatyper och rekursion
Föreläsning 8. newtype Chess = Chess [(Square, Chessman)] -- data ist f newtype OK -- data istället för newtype krävs om >1 konstruerare.
Föreläsning 8. Typer och programmeringsstil i Haskell. När vi definerade ett schack gjorde vi så här: newtype Chess = Chess [(Square, Chessman)] -- data ist f newtype OK deriving Show -- newtype effektivare
DD1361 Programmeringsparadigm HT16
DD1361 Programmeringsparadigm HT16 Logikprogrammering 1 Dilian Gurov, TCS Delkursinnehåll Logikprogrammering Logisk versus procedurell läsning Kontrollflöde Unifiering, Backtracking, Snitt Negation Induktiva
Del : Paradigmer allmänt.
Nada Tentamensdag 2003 aug 25 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 5p +(12p + 15p +5p+ 20p) + (10p +14p + 8p +11p) = 5p + 52p + 43 p
Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar.
Nada Tentamensdag 2005 jan11 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(6p + 10p +14p+ 20p) + (9p +11p + 8p +12p) = 10p + 50p + 40 p
DD1361 Programmeringsparadigm HT15
DD1361 Programmeringsparadigm HT15 Logikprogrammering 3 Dilian Gurov, TCS Idag Induktiva datatyper: Träd (inte inbyggd) Binära träd utan data Binära träd med data Prolog-specifika konstruktioner Negation,
DD1361 Programmeringsparadigm HT15
DD1361 Programmeringsparadigm HT15 Logikprogrammering 3 Dilian Gurov, TCS Idag Induktiva datatyper: Träd (inte inbyggd) Binära träd utan data Binära träd med data Prolog-specifika konstruktioner Negation,
Traditionell Programmering
Crash Course in Prolog Baran Çürüklü Introduktion till PROLOG, dvs. PROgramming in LOGic Prolog-programmen är deklarativa och består av egenskaper, relationer och regler. Lisp and Prolog är de vanligaste
Centrala begrepp i prolog och logikprogrammering. Annamaris lista
Centrala begrepp i prolog och logikprogrammering Annamaris lista Databas med fakta och regler: Ett prolog-system består av en databas av fakta, och regler som gäller för dessa fakta. Fakta har formen av
Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?
Föreläsning 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?
DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION :15-13: 15
DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION 120607 08:15-13: 15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition En ordbok: studentenshemspråk engelska Betygsgräns:
Ett Logikprogram. Logik och Programmering. Introduktion till PROLOG, dvs. PROgramming in LOGic. Viktiga begrepp/områden i Prolog. Framtiden?
Crash Course in Prolog Peter Funk FUKO HT2001 IDt, Computer Science and Engineering Mälardalen University Västerås, Sweden Peter.Funk@mdh.se Introduktion till PROLOG, dvs. PROgramming in LOGic Prolog-programmen
Föreläsning 9 Innehåll. Söndra och härska. Fibonaccitalen. Söndra och härska. Divide and conquer teknik för att konstruera rekursiva algoritmer.
Föreläsning 9 Innehåll Mer om rekursion söndra-och-härska-algoritmer dynamisk programmering backtracking Orientering om versionshantering med git Söndra och härska Divide and conquer teknik för att konstruera
Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt
Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling
Introduktion till formella metoder Programmeringsmetodik 1. Inledning
Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur
Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.
Välkomna till DIT012 IPGO 1 Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1. Lärare och Handledare Kursansvariga, examinatorer, föreläsare och handledare
Introduktion till Haskell
Introduktion till Haskell Elias Riedel Gårding NMA11, Teknisk Fysik (KTH) 2014 18 februari 2018 Elias Riedel Gårding (NMA11, F14) Introduktion till Haskell 18 februari 2018 1 / 29 Om Haskell Historik 1927:
Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.
Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0
Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk
Föreläsning 2 steknik DD1310 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer funktioner betyder att instruera en dator Ett program
Föreläsning 9 Innehåll. Söndra och härska. Fibonaccitalen. Söndra och härska. Divide and conquer teknik för att konstruera rekursiva algoritmer.
Föreläsning 9 Innehåll Mer om rekursion söndra-och-härska-algoritmer dynamisk programmering backtracking Orientering om versionshantering med git Söndra och härska Divide and conquer teknik för att konstruera
Hur fattar samhället beslut när forskarna är oeniga?
Hur fattar samhället beslut när forskarna är oeniga? Martin Peterson m.peterson@tue.nl www.martinpeterson.org Oenighet om vad? 1.Hårda vetenskapliga fakta? ( X observerades vid tid t ) 1.Den vetenskapliga
Föreläsning 10 i programmeringsparadigm. Boxmodellen för append.
Föreläsning 10 i programmeringsparadigm. Boxmodellen för append. Jag försöker förklara denna bild för en körning av append([1,2], [3, 4], Rs) närmare på föreläsningen. Principen är att vid anrop (Call)
Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34
Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger
Imperativ programmering
Imperativ programmering 1DL126 3p Imperativ programmering Jesper Wilhelmsson ICQ: 20328079 Yahoo: amigajoppe MSN / epost: jesperw@it.uu.se Rum: 1335 Tel: 471 1046 Imperativ programmering Vilka programmeringsspråk
Prova på-laboration i Prolog
Prova på-laboration i Prolog Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2006-09-12 1. Introduktion till Prolog Programspråket Prolog konstruerades i början
Deklarativt programmeringsparadigm
Deklarativt programmeringsparadigm Det vi introducerade på förra föreläsningen var ett exempel på deklarativ programmering. Vi specificerade en fallanalys som innehöll fakta och regler för hur man skulle
Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk
Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program
Föreläsning 8. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1.
Föreläsning 8. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1. Användning av Prolog. Haskell kan i princip användas till mycket, men grafiska paket, kopplingar till färdiga
Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk
Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är
1. Varje bevissteg ska motiveras formellt (informella bevis ger 0 poang)
Tentamen i Programmeringsteori Institutionen for datorteknik Uppsala universitet 1996{08{14 Larare: Parosh A. A., M. Kindahl Plats: Polacksbacken Skrivtid: 9 15 Hjalpmedel: Inga Anvisningar: 1. Varje bevissteg
TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13:15
TENTAMEN I PROGRAMSPRÅK -- DVG C01 140605 kl. 08:15-13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition Betygsgräns: Kurs: Max 60p, Med beröm godkänd 50p, Icke utan beröm godkänd
DD1361 Programmeringsparadigm. Carina Edlund
DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp
Dagens föreläsning Programmering i Lisp Fö 7. Sammanfattning funktionell programmering Exempel på funktionella programspråk
1 Dagens föreläsning Programmering i Lisp Fö 7 Kopplingen funktionella programmering och diskret matematik. Jämför vad ni hittills gjort i denna kurs och i den diskreta matematiken, med referenser in i
Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion
Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)
Tentamensdag 2002-aug-20 Tentamen i Funktionell Programmering Skrivtid 5 h
Nada Tentamensdag 2002-aug-20 Tentamen i Funktionell Programmering Skrivtid 5 h Antalet uppgifter : 5 ( 26p +22p + 14p +26p + 12 p= 100 p ) Lärare, jourhavande lärare : Leif Kusoffsky ------------------------------------------------------------------------------------------------------------------
Tentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180)
Göteborgs Universitet och Chalmers Tekniska Högskola 19 januari 2005 Datavetenskap TDA180/TDA181/INN110 Tentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180) Onsdagen
OMTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15
OMTENTAMEN I PROGRAMSPRÅK -- DVG C01 130823 kl. 08:15-13: 15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition Betygsgräns: Kurs: Max 60p, Med beröm godkänd 50p, Icke utan beröm godkänd
Föreläsning [ ] i programmeringsparadigm. Om multiparadigm-språket OZ och en tjock bok.
Föreläsning [14.. 15] i programmeringsparadigm. Jag har ju delat ut Lite grann om syntax, semantik och syntaxanalys. Några ex finns på Nadas kursexpedidition. Labben "Danska räkneord" ska göras med en
Utvärdering SFI, ht -13
Utvärdering SFI, ht -13 Biblioteksbesöken 3% Ej svarat 3% 26% 68% Jag hoppas att gå till biblioteket en gång två veckor I think its important to come to library but maybe not every week I like because
Support Manual HoistLocatel Electronic Locks
Support Manual HoistLocatel Electronic Locks 1. S70, Create a Terminating Card for Cards Terminating Card 2. Select the card you want to block, look among Card No. Then click on the single arrow pointing
Kungliga Tekniska Högskolan Ämneskod 2D1370 Tentamensdag 2001-maj-31 Tentamen i Funktionell Programmering Skrivtid 4 h
Kungliga Tekniska Högskolan Ämneskod 2D1370 Nada Tentamensdag 2001-maj-31 Tentamen i Funktionell Programmering Skrivtid 4 h Antalet uppgifter : 4 ( 8p +10p + 10p +12p = 40 p) Lärare, jourhavande lärare
Adding active and blended learning to an introductory mechanics course
Adding active and blended learning to an introductory mechanics course Ulf Gran Chalmers, Physics Background Mechanics 1 for Engineering Physics and Engineering Mathematics (SP2/3, 7.5 hp) 200+ students
Program & programmering
Program & programmering Vad är program? Satser och instruktioner, toggla igenom exempel Program på olika nivåer, för olika maskiner, för olika saker Tolka program; kompilator, intepretator, binärbytekod,
Writing with context. Att skriva med sammanhang
Writing with context Att skriva med sammanhang What makes a piece of writing easy and interesting to read? Discuss in pairs and write down one word (in English or Swedish) to express your opinion http://korta.nu/sust(answer
Föreläsning 5 i programmeringsparadigm.
Föreläsning 5 i programmeringsparadigm. λ-notation (lamda-notation, anonyma funktioner). Hutton 4.5. (Fokker 2.3.4.) Vi kan om vi vill definiera hjälpkonstanter, t ex i denna funktiondefinition : kommunalskatt
Make a speech. How to make the perfect speech. söndag 6 oktober 13
Make a speech How to make the perfect speech FOPPA FOPPA Finding FOPPA Finding Organizing FOPPA Finding Organizing Phrasing FOPPA Finding Organizing Phrasing Preparing FOPPA Finding Organizing Phrasing
JavaScript del 3 If, Operatorer och Confirm
JavaScript del 3 If, Operatorer och Confirm Under förra uppgiften så kollade vi på hur användaren kan ge oss information via promt(), vi använde den informationen både för att skriva ut den och för att
DD1361 Programmeringsparadigm Föreläsning 1: Intro
DD1361 Programmeringsparadigm Föreläsning 1: Intro Per Austrin KTH 2015-08-31 https://www.kth.se/social/course/dd1361/ Dagens föreläsning Översikt om: 1. Ämnet 2. Lärarna 3. Kursformalia (betyg etc) Dagens
Datavetenskapligt program, N1COS
Ansökan om fortsatta studier inom program, våren 2015 Datavetenskapligt program, N1COS Inför varje termin måste du söka till de kurser du vill gå. Sista datum för ansökan till höstens kurser är den 15
Introduktion till programmering. Standardfunktioner. Vad används datorer till? Standardfunktioner. Föreläsning 2. Prelude. $ ghci...
Introduktion till programmering Standardfunktioner Tecken och strängar Utskrifter och effekter Föreläsning 2 Prelude Alla fördefinierade funktioner vi använder definieras i modulen Prelude. Denna modul
Föreläsning 4 (och 5?) i programmeringsparadigm.
Föreläsning 4 (och 5?) i programmeringsparadigm. Högre ordningens funktioner på listor; funktioner som argument: map, filter. (Fokker 3.1.3, C&K p 37, 38) map -- förändra alla element i en lista på samma
LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik
LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik SIGNALBEHANDLING I MULTIMEDIA, EITA50, LP4, 209 Inlämningsuppgift av 2, Assignment out of 2 Inlämningstid: Lämnas in senast kl
1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)
UMEÅ UNIVERSITY Department of Mathematics and Mathematical Statistics Pre-exam in mathematics Linear algebra 2012-02-07 1. Compute the following matrix: (2 p 3 1 2 3 2 2 7 ( 4 3 5 2 2. Compute the determinant
Introduktion till programmering D0009E. Föreläsning 1: Programmets väg
Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1 Vad är en dator? En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne (inte helt olikt förra
Flervariabel Analys för Civilingenjörsutbildning i datateknik
Flervariabel Analys för Civilingenjörsutbildning i datateknik Henrik Shahgholian KTH Royal Inst. of Tech. 2 / 9 Utbildningens mål Gällande matematik: Visa grundliga kunskaper i matematik. Härmed förstås
Men först: Några funktioner ur preluden. Introduktion till programmering. Uppgiften. Variationer av uppgiften. Föreläsning 4
Introduktion till programmering Men först: Några funktioner ur preluden Vad är skillnaden mellan head str och take 1 str? Föreläsning 4 Ett större exempel. head :: [a] -> a take :: Int -> [a] -> [a] tail
COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall
COMPUTABILITY BERÄKNINGSBARHET Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall Den centrala frågan: givet ett problem, kan det ha en algoritmisk lösning?
DVA336 (Parallella system, H15, Västerås, 24053)
DVA336 (Parallella system, H15, Västerås, 24053) Respondents: 28 Answer Count: 9 Answer Frequency: 32,14 % Teaching methods The teaching methods in the course, that is their practical implementation and
Föreläsning 11 i programmeringsparadigm. Boxmodellen i Sicstus-manualen.
Föreläsning 11 i programmeringsparadigm. Boxmodellen i Sicstus-manualen. The Procedure Box Control Flow Model During debugging, the debugger prints out a sequence of goals in various states of instantiation
Föreläsning 8 Innehåll
Föreläsning 8 Innehåll Orientering om samarbete om Eclipse-projekt med git Orientering om konstruktion av användargränssnitt i Android Mer om rekursion söndra-och-härska-algoritmer dynamisk programmering
Sats. Om t är en rätvinklig triangel så är summan av kvadraterna på kateterna i t lika med kvadraten på hypotenusan.
Lunds tekniska högskola Datavetenskap Lennart Andersson Föreläsningsanteckningar EDAF10 3 Predikatlogik 3.1 Motivering I satslogiken är de minsta beståndsdelarna satslogiska variabler som kan anta värdena
Länkning av Prolog under C
Länkning av Prolog under C Kent Boortz Swedish Institute of Computer Science Box 1263, S-164 28 Kista, Sweden 1 september 1991 T91:14 Sammanfattning SICStus länkmoduler ger möjlighet att blanda Prolog-
Tentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180)
Göteborgs Universitet och Chalmers Tekniska Högskola 25 oktober 2005 Datavetenskap TDA180/TDA181/INN110 Tentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180) Onsdagen
Deklarativ programmering
Kursens mål Deklarativ programmering Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap Linköpings universitet 2008-02-26 redogöra för och använda reguljära uttryck använda XML för att definera
Föreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
Språket Scheme. DAT 060: Introduktion till (funktions)programmering. DrScheme. uttryck. Jacek Malec m. fl. evaluering av uttryck.
DAT 060: Introduktion till (funktions)programmering. Jacek Malec m. fl. www.cs.lth.se/home/jacek Malec/dat060 Idag: 1. Kursens innehåll 2. Kursens organisation 3. Programmeringsspråket Scheme 4. Introduktion
Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1
Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut
Webbregistrering pa kurs och termin
Webbregistrering pa kurs och termin 1. Du loggar in på www.kth.se via den personliga menyn Under fliken Kurser och under fliken Program finns på höger sida en länk till Studieöversiktssidan. På den sidan
Logik och kontrollstrukturer
Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch
Dugga Datastrukturer (DAT036)
Dugga Datastrukturer (DAT036) Duggans datum: 2012-11-21. Författare: Nils Anders Danielsson. För att en uppgift ska räknas som löst så måste en i princip helt korrekt lösning lämnas in. Enstaka mindre
Module 1: Functions, Limits, Continuity
Department of mathematics SF1625 Calculus 1 Year 2015/2016 Module 1: Functions, Limits, Continuity This module includes Chapter P and 1 from Calculus by Adams and Essex and is taught in three lectures,
samhälle Susanna Öhman
Risker i ett heteronormativt samhälle Susanna Öhman 1 Bakgrund Riskhantering och riskforskning har baserats på ett antagande om att befolkningen är homogen Befolkningen har alltid varit heterogen när det
Förskola i Bromma- Examensarbete. Henrik Westling. Supervisor. Examiner
Förskola i Bromma- Examensarbete Henrik Westling Handledare/ Supervisor Examinator/ Examiner Ori Merom Erik Wingquist Examensarbete inom arkitektur, grundnivå 15 hp Degree Project in Architecture, First
Workplan Food. Spring term 2016 Year 7. Name:
Workplan Food Spring term 2016 Year 7 Name: During the time we work with this workplan you will also be getting some tests in English. You cannot practice for these tests. Compulsory o Read My Canadian
TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18
TDDC74 Programmering: Abstraktion och modellering Datortenta - 017-10-7, kl 14-18 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis
Pre-Test 1: M0030M - Linear Algebra.
Pre-Test : M3M - Linear Algebra. Test your knowledge on Linear Algebra for the course M3M by solving the problems in this test. It should not take you longer than 9 minutes. M3M Problem : Betrakta fyra
Enjoy Vattenfallsmodellen i funktionella språk
Föreläsning 2 i Programmeringsparadigm Funktionell programmering := variabler pekare sidoeffekter ;...; Fy, fy => bugfree förståeliga korta inga "satser", bara uttryck! Enjoy Vattenfallsmodellen i funktionella
Software Technology. Josef Svenningsson
Software Technology Josef Svenningsson Software Technology Software Technology Området Software Technology handlar i mångt och mycket om följande frågeställning: Hur designar man programmeringsspråk för
Enjoy Vattenfallsmodellen i funktionella språk
Föreläsning 2 i Programmeringsparadigm Funktionell programmering := variabler pekare sidoeffekter ;...; Fy, fy => bugfree förståeliga korta inga "satser", bara uttryck! Enjoy Vattenfallsmodellen i funktionella
denna del en poäng. 1. (Dugga 1.1) och v = (a) Beräkna u (2u 2u v) om u = . (1p) och som är parallell
Kursen bedöms med betyg, 4, 5 eller underänd, där 5 är högsta betyg. För godänt betyg rävs minst 4 poäng från uppgifterna -7. Var och en av dessa sju uppgifter an ge maximalt poäng. För var och en av uppgifterna
Travel General. General - Essentials. General - Conversation. Asking for help. Asking if a person speaks English
- Essentials Can you help me, please? Asking for help Do you speak? Asking if a person speaks Do you speak _[language]_? Asking if a person speaks a certain language I don't speak_[language]_. Clarifying
Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016
Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter
ALGORITMER, OPTIMERING OCH LABYRINTER
ALGORITMER, OPTIMERING OCH LABYRINTER Text: Marie Andersson, Learncode AB Illustrationer: Li Rosén Foton: Shutterstock Har du någonsin lagat mat efter recept eller monterat ihop en möbel från IKEA? Då
Vässa kraven och förbättra samarbetet med hjälp av Behaviour Driven Development Anna Fallqvist Eriksson
Vässa kraven och förbättra samarbetet med hjälp av Behaviour Driven Development Anna Fallqvist Eriksson Kravhantering På Riktigt, 16 maj 2018 Anna Fallqvist Eriksson Agilista, Go See Talents linkedin.com/in/anfaer/
Deklarativ programmering
Deklarativ programmering TDP007 Konstruktion av datorspråk Föreläsning 7 Peter Dalenius Institutionen för datavetenskap 2014-03-03 Deklarativ programmering Program skrivet i ett deklarativt språk logikspråk,
Föreläsning 6 i programmeringsparadigm. Tips kring programmering i Haskell och kring labbarna.
Föreläsning 6 i programmeringsparadigm. Tips kring programmering i Haskell och kring labbarna. Att arbeta med två fönster. Hugs är ju en tolk (interpreter) vilket har stora fördelar vid programutveckling.
Wittgenstein for dummies Eller hur vi gör det obegripliga begripligt. Västerås 15 februari 2017
Wittgenstein for dummies Eller hur vi gör det obegripliga begripligt Västerås 15 februari 2017 En värld är varje människa, befolkad av blinda varelser i dunkelt uppror mot jaget konungen som härskar över
Read Texterna består av enkla dialoger mellan två personer A och B. Pedagogen bör presentera texten så att uttalet finns med under bearbetningen.
! Materialet vill ge en gemensam bas av användbara fraser för dialoger i klassrummet. skapa dialoger mellan elever på engelska. skapa tydliga roller för två personer, och. presentera meningsfulla fraser