Programmering II (ID1019) :00-13: hp
|
|
- Mikael Larsson
- för 6 år sedan
- Visningar:
Transkript
1 ID1019 Johan Montelius Programmering II (ID1019) :00-13: hp Instruktioner Betyg Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren skall lämnas på dessa sidor, använd det utrymme som nns under varje uppgift för att skriva ner ditt svar. Svar skall skrivas på svenska. Du skall lämna in hela denna tentamen. Inga ytterligare sidor skall lämnas in. Tentamen har ett antal uppgifter där några är lite svårare än andra. De svårare uppgifterna är markerade med en stjärna, poäng*, och ger poäng för de högre betygen. Vi delar alltså upp tentamen in grundpoäng och högre poäng. Se först och främst till att klara de normala poängen innan du ger dig i kast med de högre poängen. Notera att det av de 40 grundpoängen räknas bara som högst 34 och, att högre poäng inte kompenserar för avsaknad av grundpoäng. Gränserna för betyg är som följer: E: 24 grundpoäng D: 30 grundpoäng 1
2 C: 34 grundpoäng B: 34 grundpoäng och 14 högre poäng A: 34 grundpoäng och 20 högre poäng Gränserna kan komma att justeras nedåt men inte uppåt. Erhållna poäng Skriv inte här, detta är för rättningen. Uppgift Σ Max G/H 4/- 10/2 2/6 4/2 4/4 16/10 40/24 G/H Totalt antal poäng: Betyg: 2
3 1 Datastrukturer och mönstermatchning 1.1 vad är Y [2 poäng] Vad är bindningen för Y i följande mönstermatchningar (var för sig), i de fall där matchningen lyckas: [X, Y _] = [1,2,3] [X,_ Y] = [1,2] [X,Z,Y] = [1 [2 [3]]] Z = 2, X = {foo, Z}, {_, Y} = X X = 1, Z = [], Y = [X,Z] 1.2 strängar med ihopslagning på konstant tid [2 poäng] Om vi representerar strängar som listor av ASCII-värden så är det enkelt att läsa från en sträng eftersom det första elementet kan nås på konstant tid (det ligger ju först i listan). Det är dock rätt jobbigt att slå ihop två strängar eftersom detta måste göras med en append-operation. Vi skulle kunna representera strängar som antingen 1/ en lista av ASCII-värden eller 2/ en struktur som i sig innehåller två strängar. Fördelen skulle vara att man då kunde sätta ihop två strängar på konstant tid. Nackdelen är naturligtvis att det ibland är lite jobbigt att hitta första bokstaven. Beskriv denna form av representation. Du får själv bestämma vilka strukturer som skall användas; använd med fördel s.k. typ-notation. Implementera funktionen concat/2 som tar två strängar och returerar den ihopslagna strängen. 3
4 2 Rekursiva funktioner 2.1 ta bort alla sekvenser av upprepningar [2 poäng] Antag att vi har en lista av element och vill skapa en en lista som består av samma element i samma ordning men där vi har plockat bort alla upprepningar av element som kommer efter varandra. Om vi har listan: [1,2,2,3,1,2,4,4,4,2,3,3,1] Så skall vi skapa listan: [1,2,3,1,2,4,2,3,1] Notera att vi fortfarande har dubbletter av element, som 2 i exemplet, men att dessa inte kommer direkt efter varandra. Hur implementeras funktionen reduce/1 som har ovan givna egenskaper? 2.2 Caesarchier [2 poäng] Ett Caesarchier är kanske den enklaste formen av kryptering och görs genom att man byter ut varje bokstav i ett meddelande mot den bokstav som är tre positioner tidigare i alfabetet. Ordet hej skulle alltså kodas ebg. Antag att vi endast använder bokstäverna 'a' till 'z' och att vi hanterar alfabetet som en ring; dvs 'a' kodas som 'x', 'b' som 'y' och 'c' som 'z'. Mellanslag kodas som mellanslag så meningen encoded you are blir bkzlaba vlr xob. ASCII-värdet för mellanslag är 32 (vi kan även skriva $ men det är lite 4
5 svårt att se mellanslaget). Värdet för 'a' är 97 och 'z' har värdet 122. Skriv funktionen encode/1 som tar en sträng och returnerar den kodade versionen. 2.3 En triss i poker [2 poäng] Antag att vi vill implementerat ett program som spelar poker. Vi har valt att representera en hand som en lista av fem oordnade kort. Skriv en funktion triss/1 som kan avgöra om vi har en triss på hand (tre kort av samma valör). Funktionen skall returnera true om vi har ett tretal och annars false. Du får själv välja hur kort skall representeras. Funktionen kan returnera true om om vi har ett fyrtal eller en så kallad kåk (en triss och ett par) eftersom båda dessa händer inehåller en triss. Till din hjälp får du använda biblioteksfunktionen lists:filter/2 som tar en funktion och en lista med element och returnerar en lista med de element för vilket funktionen returnerar true. Som exempel kommer anropet: > lists:filter(fun(x) -> X > 3 end, [8,2,6,3]). 5
6 att returnerar [8,6]. 2.4 merg sort bättre än quick sort [2 poäng] Algoritmen merge sort bygger på att man först delar upp en lista i två lika stora delar, sorterar delarna och sedan sammanfogar de två sorterade listorna. Algoritmen kan implementeras som följer: msort([]) -> []; msort(a) -> {L1, L2} = split(a), merge(msort(l1), msort(l2)). Antag att listan består av heltal. Hur implementerar du funktionen merge/2? 6
7 2.5 från hög till lista [2 poäng] Antag att vi har en så kallad hög (på engelska heap), som är representerad som ett binärt träd. En hög är antingen tom, som vi representerar med atomen nil, eller en nod som består av ett element och två grenar som också är högar, {heap, Element, Left, Right}. En viktig egenskap hos en hög är att det minsta elementet ligger i roten. Det näst minsta elementet ligger antingen i dess högra eller vänstra gren men eftersom båda dessa är högar så vet vi att det ligger överst i någon av dessa. Implementera en funktion heap_to_list/1 som tar en hög som argument och returnerar en ordnad lista av alla element. Du får inte använda dig av några biblioteksfunktioner men du kan använda dig av någonting du just skrivit ;-). 7
8 2.6 ta bort det minsta [2 poäng*] Den stora fördelen med en hög (heap) är ju att vi alltid hittar det minsta värdet i trädets rot. Det är kanske inte helt enkelt att plocka bort det minsta och ordna om så att man får en ny hög. Lösningen blir dock ganska enkel om man tänker rekursivt. Skriv en funktion pop/1, som tar en hög och returnerar {ok, Value, Heap} där Value är högens minsta värde och Heap en ny hög där värdet har tagits bort. Om man försöker göra pop på en tom hög skall funktionen returnerar false. 3 Evaluering av uttryck Vi har under kursen arbetat med att beskriva hur ett språk kan denieras genom att formellt beskriva vilka termer, uttryck och datastrukturer vi har och hur vi med hjälp av regler kan beskriva vad som skall hända när vi 8
9 evaluerar uttryck. De följande frågorna antar att vi har denierat ett litet funktionellt språk enligt de riktlinjer vi gått igenom. 3.1 evaluera ett uttryck [2 poäng] Evaluera följande uttryck, antag att: Eσ(a) σ = {X/a, Y/{a, b}} Eσ({X, X}) Eσ(Y ) 3.2 and, or och xor [2 poäng*] Det vore väl rätt så bra om vi i språket kunde ha de boolska operatorer inbyggda i språket. För att hantera detta detta skall vi först utöka språket och sen även deniera vilka regler som skall gälla vid evaluering. För enkelhetens skull så skriver vi alla boolska uttryck med parenteser så att vi har associationen helt klar. Operanderna är '&' för and, ' ' för or och 'x' för xor. Vi vill naturligtvis även ha de två boolska värdena true och false. Vi vill kunna skriva sekvenser som: A = true, B = false, ((A & B) (A x B)) Eftersom vi vill utöka de uttryck som vi kan hantera så ändrar vi beskrivningen av <expr> så att det även innefattar boolska uttryck. expr ::=... bool 9
10 Nu behöver vi bara med en BNF-grammatik beskriva hur de boolska uttrycken, <bool>, ser ut; hur ser en sådan beskrivning ut? Vi måste även ha en regel som beskriver vad som skall göras när vi skall evaluera ett boolskt uttryck. Hur skall vi skriva en ny regel för evalueringsfunktionen E? I din beskrivning så skall du använda dig av notationen, och för att beskriva vad som skall göras. 3.3 lambda [4 poäng*] Antag att vi har utökat vårt språk till att även kunna hantera lambdauttryck. Vi har en syntax för dessa och evaluerar dem enligt följande regel: Eσ((fun(vars) -> sequence end) closure(param, sequence, θ) Här är param en sekvens av variabelidentierare och θ den delmängd av σ som har variabelbindningarna för de fria variablerna i sequence. Frågan är nu vad vi skall göra när vi skall evaluera en tillämpning av vår closure på en sekvens av argument. Eσ(closure(param, sequence, θ)(args)) >...? 10
11 4 Komplexitet I svaren till nedanstående frågor så var noga med att ange vad till exempel n är och motivera ditt svar. 4.1 traversera ett träd [2 poäng] Antag att vi har ett binärt träd där en nod är representerat som antingen {leaf, E} eller {tree, Left, Right}. Antag att trädet är balanserat - vad är den asymptotiska tidskomplexiteten för att traversera trädet med följande funktion: traverse({leaf, E}) -> [E]; traverse({node, Left, Right}) -> traverse(left) ++ traverse(right). 4.2 kanske lite bättre... eller [2 poäng] Är det någon skillnad om vi istället skriver vår funktion så här: 11
12 traverse(tree) -> traverse(tree, []). traverse({leaf, E}, Sofar) -> [E Sofar]; traverse({node, Left, Right}, Sofar) -> traverse(left, traverse(right, Sofar)). 4.3 traversera en hög [2 poäng*] I uppgift 2.5 så gjorde vi om en hög till en lista. Vad är den asymptotiska tidskomplexiteten för denna operation? Antag att högen är balanserad så vi är inte intresserade av den extrema situation där vi har alla element i ena grenen. 5 Concurrency 5.1 atomic swap [2 poäng] Implementera en procedur new/1 som skapar en process som skall fungera som en minnescell. Argumentet till proceduren är cellens initiala värde. Processen skall hanter två meddelande: {swap, New, From} och {set, New}. I det första fallet skall den process som begärt uppdateringen, From, få ett 12
13 meddelande tillbaks {ok, Old}, där Old är det värde som cellen hade innan uppdateringen. I det andra fallet skickas det inte något svar i retur. 5.2 spin-lock [2 poäng] En inte helt eektivt sätt att implementera ett lås är ett så kallat spin-lock. Idén är att prova att ta ta låset och fortsätta att prova tills man får låset. Antag att vi har implementerat proceduren new/1 i föregående uppgift och vi vill använda en cell för att implementera ett spin-lock. Implementera tre procedurer: create/0, lock/1 och release/1. Proceduren 13
14 create/0 skall returnera ett lås som lock/1 och release/1 kan använda. Procedurerna lock/1 och release/1 skall returner ok. 5.3 en semafor [4 poäng*] En spin-lock i all ära men det är mer behändigt att ha ett lås i form av en så kallad semafor. En semafor är en konstruktion där man kan anmäla intresse för att få ett lås och man får det när det är ledigt. Om låset för närvarande inte är ledigt så får man vänta men man behöver inte göra någonting själv eller ens vara medveten om att man väntar. En semafor är också mer generell i det att den kan tillåta era processer att ta låset samtidigt men den har ett maximalt antal som den släpper in. Om antalet är 1 så kallas semaforen för binär. Hur skulle vi implementera en semafor i Erlang? Vi kan implementera den som en process som kan ta två meddelanden: {request, From} och release. En process som skickar ett request-meddelande kommer om/när det nns lås kvar, få ett meddelande granted tillbaks. När processen är färdig i den kritiska sektorn skall den skicka ett release-meddelande till semaforen som då kan ge resursen till nästa process om det nns någon som väntar. Implementerar proceduren new/1 som skapar en semafor som har den giv- 14
15 na funktionaliteten. Argumentet till proceduren är de antalet resurser som semaforen har. 6 Programmering 6.1 en liten kalkylator [totalt poäng] Du skall implementera en liten kalkylator som skall kunna hantera aritmetiska uttryck med addition och subtraktion över heltal. 15
16 6.1.1 representera och evaluerar uttryck [ 6 poäng] Du skall först beskriva hur aritmetiska uttryck skall representeras och sedan implementera en funktion eval/1 som tar ett uttryck och returnerar resultatet av det evaluerade uttrycket lägg till en omgivning [2 poäng*] Antag att vi även vill kunna hantera variabler i våra aritmetiska uttryck. Vi måste utöka vår representation till att även kunna beskriva variabler och sen implementera en evalueringsfunktion eval/2 som tar ett uttryck och en omgivning och returnerar ett svar. För enkelhetens skull så antar vi att vi redan har implementerat en modul, env, som exporterar en funktion lookup/2 som tar en identierare och en omgivning och returnerar antingen {Id, Val} om det nns en bindning för variabeln, eller false om det inte nns någon bindning. Funktionen eval/2 skall returnera antingen {ok, Res} om evalueringen lyc- 16
17 kas, eller error om vi till exempel försöker evaluera ett uttryck med en variabel som inte har en bindning. Implementera funktionen eval/ en barberare [ totalt poäng] Ett klassiskt exempel på ett synkroniseringsproblem är att hantera kunder som kommer in till en barberare. Antagandet är att vi har en barberare som naturligtvis bara kan raka en kund åt gången. Vi har dock tre väntstolar i salongen så kunder som kommer in kan slå sig ner och vänta om det nns plats. En kund som kommer in i salongen då alla stolar är upptagna kommer vända i dörren och ta en promenad innan han gör ett nytt försök. Om man vänder i dörren så kan man inte räkna med att bli rakad men om man får sitta ner och vänta så skall man garanterat bli rakad och ingen skall kunna smita före i kön hur implementerar ett väntrum [6 poäng] När vi implementerar detta i Erlang så är det naturligt att dela upp problemet i två olika processer: en som hanterar väntrummet och en som agerar barberare. Barberaren kan fråga väntrummet efter nästa kund och får då en pid på näste man till rakning. Kunden ombeds ta plats i frisörsstolen och efter ett tag får denne ett meddelande att rakningen är klar. Själva proceduren som implementerar barberare skulle kunna skrivas som följer: barber(waiting) -> 17
18 Waiting! {next, self()}, receive {ok, Customer} -> end. Customer! have_a_seat, cut_cut_cut_shave_hot_towel_talk(), Customer! thatz_it, barber(waiting) Väntrummet svara på välkomsthälsningar från kunder som kommer in i salongen, och ber dem antingen vänta eller meddelar att det är fullt. Hur kan den rekursiva procedur som beskriver väntrummet implementeras? en kund som ett tillståndsdiagram [2 poäng*] En kund ges när den skapas tillgång till pid:en till ett väntrum. Kunden skall meddela sin ankomst när han kliver innanför dörren. Om han ombeds sitta ner, väntar han på sin tur och blir sen om allt fungerar rakad. När rakningen är klar så är han fri att göra andra saker, men vi kommer låta kunden terminera. Om alla väntstolar är upptagna skall kunden ta en tur runt kvarteret och sedan återkomma till salongen. Hur skulle vi kunna beskriva en kund som ett tillståndsdiagram. Visa vilka tillstånd som kunden benner sig i och vilka meddelanden som får den att 18
19 byta tillstånd. Beskriv även vilka meddelanden den skickar när den kommer till ett nytt tillstånd. 6.3 en LDAP server [totalt poäng] LDAP, Lightweight Directory Access Protocol, är ett protokoll över vilket man kan göra förfrågningar mot en katalogtjänst. Protkollet är denerat över TCP/IP och har ett otal olika meddelanden för att göra förfrågningar, addera, modiera eller ta bort information i en katalog. LDAP används till exempel av -klienter när de skall hämta adresser från ett delat adressregister en enkel lösning [4 poäng] Om vi antar att vi har en modul, ldap, som kan hantera en förfrågan från en klient så skulle en LDAP-server kunna ha följande struktur: -define(port, 67). start() -> spawn(fun() -> init(?port) end). init(port) -> case gen_tcp:listen(port, [binary, {active, true}]) of {ok, Listen} -> handler(listen), 19
20 gen_tcp:close(listen); {error, Error} -> io:format("ldap server: initialization failed: ~w~n", [Error]), error end. handler(listen) -> case gen_tcp:accept(listen) of end. {ok, Client} -> ldap:request(client), handler(listen); {error, Error} -> error Denna struktur har dock en begränsning i hur snabbt den kan hantera förfrågningar. Beskriv den begränsning som strukturen har och föreslå en enkel förändring som skulle göra att att vi skulle kunna hantera era förfrågningar per tidsenhet två ugor i en smäll [3 poäng*] Vi antar att du har löst föregående fråga på ett tillfredställande sätt. Det skulle betyda att servern skulle kunna hantera betydligt er förfrågningar per tidsenhet men det har även ytterligare en fördel. Lösningen ger oss säkert en annan stor fördel som har att göra med att modulen ldap är rätt komplex 20
21 och kanske inte helt tillförlitlig. Vad är problemet och varför är den lösning som du ger i föregående fråga även till viss del en lösning på detta problem? ett mindre problem, kanske [3 poäng*] Den lösning som du föreslagit i föregående fråga är nog mycket bra i de esta fall. Den kanske dock inte har ideal egenskaper om vår server får ett myket stort antal förfrågningar under en mycket kort tid. Var blir problemet och hur skulle man kunna kontrollera situationen? Du behöver inte implementera en lösning men beskriva hur en lösning skulle kunna se ut och om lösningen har några nackdelar i sig. 21
Programmering II (ID1019) :00-13: hp
ID1019 Johan Montelius Programmering II (ID1019) 2016-03-19 09:00-13:00 7.5 hp Instruktioner Betyg Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Programmering II (ID1019) :00-11:00
ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren
Programmering II (ID1019) :00-11:00
ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren
Programmering II (ID1019) :00-12:00
ID1019 Johan Montelius Programmering II (ID1019) 2015-03-13 09:00-12:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren
Programmering II (ID1019) :00-17:00
ID1019 Johan Montelius Programmering II (ID1019) 2014-03-10 14:00-17:00 Förnamn: Efternamn: Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Programmering II (ID1019) :00-12:00
ID1019 Johan Montelius Programmering II (ID1019) 2014-01-16 09:00-12:00 Förnamn: Efternamn: Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Programmering II (ID1019) :00-12:00
ID1019 Johan Montelius Programmering II (ID1019) 2015-03-13 09:00-12:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren
Tillämpad Programmering (ID1218) :00-13:00
ID1218 Johan Montelius Tillämpad Programmering (ID1218) 2014-03-13 09:00-13:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Programmering II (ID1019) :00-12:00
ID1019 Johan Montelius Programmering II (ID1019) 2018-03-13 08:00-12:00 Instruktioner Betyg Svaren skall lämnas på dessa sidor, använd det utrymme som nns under varje uppgift för att skriva ner ditt svar.
Programmering II (ID1019)
ID1019 Johan Montelius Instruktioner Betyg Programmering II (ID1019) 2019-03-08 Svaren skall lämnas på dessa sidor, använd det utrymme som nns under varje uppgift för att skriva ner ditt svar (inte på
Programmering II (ID1019) :00-12:00
ID1019 Johan Montelius Programmering II (ID1019) 2017-03-13 08:00-12:00 Instruktioner Betyg Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Programmering II (ID1019) :00-12:00
ID1019 Johan Montelius Programmering II (ID1019) 2014-01-16 09:00-12:00 Förnamn: Efternamn: Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Programmering II (ID1019) :00-13: hp
ID1019 Johan Montelius Programmering II (ID1019) 2016-06-10 09:00-13:00 7.5 hp Instruktioner Betyg Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Två fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c)
Programmönster: # Listan som sekvens, Rekursiv process Enkel genomgång av sekvens (element på toppnivån i en lista)) TDDC60 Programmering: abstraktion och modellering Föreläsning 5 Rekursiva och iterativa
Omtentamen: Tillämpad Programmering (ID1218) :00-13:00
ID1218 Johan Montelius Omtentamen: Tillämpad Programmering (ID1218) 2012-06-12 09:00-13:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas
TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014
TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt. Använd
Tentamen i. TDDC67 Funktionell programmering och Lisp
1 Linköpings tekniska högskola Institutionen för datavetenskap Anders Haraldsson Tentamen i TDDC67 Funktionell programmering och Lisp och äldre kurser TDDC57 Programmering, Lisp och funktionell programmering
Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00
Operativsystem ID2200 Tentamen TEN1 3.8 hp 2018-04-03 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa
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
Tentamen Datastrukturer (DAT036/DAT037/DIT960)
Tentamen Datastrukturer (DAT036/DAT037/DIT960) Datum och tid för tentamen: 2016-04-07, 14:00 18:00. Författare: Nils Anders Danielsson. (Tack till Per Hallgren och Nick Smallbone för feedback.) Ansvarig:
Tentamen Datastrukturer (DAT036)
Tentamen Datastrukturer (DAT036) Datum och tid för tentamen: 2013-12-16, 14:00 18:00. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker tentamenssalarna ca 15:00 och
TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 9 juni 2016, kl 14 18
TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 9 juni 2016, kl 14 18 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.
Föreläsning 4 Datastrukturer (DAT037)
Föreläsning 4 Datastrukturer (DAT07) Fredrik Lindblad 1 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/2015/course/dat07 1 Innehåll
Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00
Operativsystem ID2206 Tentamen TEN1 4.5 hp 2018-04-03 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa
Prov i DAT 312: Algoritmer och datastrukturer för systemvetare
Prov i DAT 312: Algoritmer och datastrukturer för systemvetare Jacek Malec Datavetenskap, LU 11 april 2003 Datum 11 april 2003 Tid 14 19 Ansvarig lärare Jacek Malec (tel. 03 9890431) Hjälpmedel inga Antal
Tillämpad Programmering (ID1218) :00-13:00
ID1218 Johan Montelius Tillämpad Programmering (ID1218) 2013-06-04 09:00-13:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,
Tentamen Datastrukturer (DAT036)
Tentamen Datastrukturer (DAT036) Datum och tid för tentamen: 2014-04-25, 14:00 18:00. Författare: Nils Anders Danielsson. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker
Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad
1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2 Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok,
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel
Data- och Programstrukturer Provmoment: Ladokkod: Tentamen ges för: Omtentamen NDP011 Systemarkitektprogrammet 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum:
Programmering II (ID1019) :00-12:00
ID1019 Johan Montelius Programmering II (ID1019) 2018-06-07 08:00-12:00 Instruktioner Betyg Svaren skall lämnas på dessa sidor, använd det utrymme som nns under varje uppgift för att skriva ner ditt svar.
Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2
Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.) - Iteratorer
TDDC74 Programmering, abstraktion och modellering DUGGA 2
AID-nummer: Datum: 2011-02-18 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering DUGGA 2 Fredag 18 feb 2011
Tentamen Datastrukturer, DAT037 (DAT036)
Tentamen Datastrukturer, DAT037 (DAT036) Datum och tid för tentamen: 2017-01-11, 14:00 18:00. Ansvarig: Fredrik Lindblad. Nås på tel nr. 031-772 2038. Besöker tentamenssalarna ca 15:00 och ca 17:00. Godkända
Dagens föreläsning Programmering i Lisp Fö 5
Anders Haraldsson 1 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.3) - Iteratorer - Egenskaper
Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!
Tentamen Programmeringsteknik II 2014-01-09 Skrivtid: 0800-1300 Hjälpmedel: Java-bok (vilken som helst) Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja
Tentamen Datastrukturer D DAT 035/INN960
Tentamen Datastrukturer D DAT 035/INN960 22 december 2006 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.) Betygsgränser,
Operativsystem (IS1350) :00-12:00
Operativsystem (IS1350) 2017-03-15 08:00-12:00 Namn: Instruktioner Betyg Du får endast ha med dig skrivmateriel. Mobiler etc skall lämnas till tentamensvakterna. Svaren skall lämnas på dessa sidor, använd
Tentamen i Introduktion till programmering
Tentamen i Introduktion till programmering Kurskod: Skrivtid: D0009E 09:00-13:00 (4 timmar) Totalt antal uppgifter: 7 Totalt antal poäng: 38 Tentamensdatum: 2014-05-17 Jourhavande lärare: Tillåtna hjälpmedel:
TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12
TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.
Tentamen i Algoritmer & Datastrukturer i Java
Tentamen i Algoritmer & Datastrukturer i Java Hjälpmedel: Skrivhjälpmedel, miniräknare. Ort / Datum: Halmstad / 2008-05-27 Skrivtid: 4 timmar Kontakt person: Nicolina Månsson, tel. 035-167487 Poäng / Betyg:
Föreläsning 9 Datastrukturer (DAT037)
Föreläsning Datastrukturer (DAT07) Fredrik Lindblad 27 november 207 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/20/course/dat07 Innehåll 2
Tillämpad Programmering (ID1218) :00-12:00
ID1218 Johan Montelius Tillämpad Programmering (ID1218) 2012-12-10 09:00-12:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Tentamen i Algoritmer & Datastrukturer i Java
Tentamen i Algoritmer & Datastrukturer i Java Hjälpmedel: Skrivhjälpmedel, miniräknare. Ort / Datum: Halmstad / 2007-03-13 Skrivtid: 4 timmar Kontakt person: Nicolina Månsson, tel. 035-167487 Poäng / Betyg:
Föreläsning Datastrukturer (DAT036)
Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-25 Idag Starkt sammanhängande komponenter Duggaresultat Sökträd Starkt sammanhängande komponenter Uppspännande skog Graf, och en möjlig
Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner
Lektion 4, del 1, kapitel 10 Funktioner i JavaScript Inlärningsmål Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner Introduktion
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Prioritetskö Heap Representation som
Tentamen Datastrukturer (DAT036)
Tentamen Datastrukturer (DAT036) Datum och tid för tentamen: 2012-08-24, 8:30 12:30. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker tentamenssalarna ca 9:30 och ca
Obligatorisk uppgift 5
(5 oktober 2018 Symbolisk kalkylator 1 ) Obligatorisk uppgift 5 En kalkylator som hanterar uttryck symboliskt dvs värden är uttryck inte bara tal. Uppgiften exemplifierar: objektorientering återanvändning
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
Tentamen Datastrukturer (DAT037)
Tentamen Datastrukturer (DAT07) Datum och tid för tentamen: 2016-01-09, 14:00 18:00. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker tentamenssalarna ca 15:00 och ca
Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.
Tentamen Programmeringsteknik II 2014-0-27 Skrivtid: 0800 100 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg
Tentamen Datastrukturer, DAT037 (DAT036)
Tentamen Datastrukturer, DAT037 (DAT036) Datum, tid och plats för tentamen: 2017-08-17, 8:30 12:30, M. Ansvarig: Fredrik Lindblad. Nås på tel nr. 031-772 2038. Besöker tentamenssalarna ca 9:30 och ca 11:00.
Programkonstruktion och Datastrukturer
Programkonstruktion och Datastrukturer VT 2012 Tidskomplexitet Elias Castegren elias.castegren.7381@student.uu.se Problem och algoritmer Ett problem är en uppgift som ska lösas. Beräkna n! givet n>0 Räkna
Föreläsning 4 Datastrukturer (DAT037)
Föreläsning 4 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-10 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/2015/course/dat037 Förra
public boolean containskey(string key) { return search(key, head)!= null; }
Tentamen Programmeringsteknik II 2009-05-26 med lösningar Skrivtid: 0900-1200 Uppgifter 1. Programbilagan ListMap.java innehåller en klass som implementerar en avbildning mellan mängden strängar och mängden
Lösningsförslag för tentamen i Datastrukturer (DAT037) från
Lösningsförslag för tentamen i Datastrukturer (DAT7) från --9 Nils Anders Danielsson. Träd- och köoperationerna har alla tidskomplexiteten O(log s), där s är antalet element i trädet/kön (notera att jämförelser
Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.
Tentamen Programmeringsteknik II 2015-05-26 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg
Rekursiva algoritmer sortering sökning mönstermatchning
Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 6-7 Rekursiva strukturer rekursiva definitioner rekursiva funktioner rekursiva bevis: induktion - rekursion strukturell
Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1)
Binära träd Algoritmer och Datastrukturer Markus Saers markus.saers@lingfil.uu.se Upplägg Binära träd (9) Binära sökträd (0.) Träd Många botaniska termer Träd, rot, löv, gren, Trädets rot kan ha ett antal
Övningsuppgifter kapitel 8
Inst. för Systemteknik Introduktion till programmering (SMD 180), 5 p Övningsuppgifter kapitel 8 1. Listor är en viktig datatyp i Python. Hur definierar kursboken lista? Vad kallas de värden som tillsammans
Tentamen, Algoritmer och datastrukturer
UNDS TEKNISKA ÖGSKOA (6) Institutionen för datavetenskap Tentamen, Algoritmer och datastrukturer 23 8 29, 8. 3. Anvisningar: Denna tentamen består av fem uppgifter. Totalt är skrivningen på 36 poäng och
Tillämpad programmering
Tillämpad programmering Erlang II Johan Montelius 1 Datastrukturer literaler atomer: foo, gurka, 'ett o två' nummer: 1,2,.. 3.14... samansatta (compound) tupler: {foo, a, b, 2} cons-cell: [gurka tomat
Tentamen'('Datastrukturer,'algoritmer'och'programkonstruktion.'
Tentamen'('Datastrukturer,'algoritmer'och'programkonstruktion.' Skrivtid: 08.30 13.30 Hjälpmedel: Inga Lärare: Betygsgränser DVA104' Akademin)för)innovation,)design)och)teknik) Onsdag)2014:01:15) Caroline
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,
Självbalanserande träd AVL-träd. Koffman & Wolfgang kapitel 9, avsnitt 1 2
Självbalanserande träd AVL-träd Koffman & Wolfgang kapitel 9, avsnitt 1 2 1 Balanserade träd Nodbalanserat träd: skillnaden i antalet noder mellan vänster och höger delträd är högst 1 Höjdbalanserat träd:
Föreläsning 13. Träd
Föreläsning 13 Träd Träd Ett träd är en datastruktur som tillåter oss att modellera sådant som vi inte kan modellera med linjära datastrukturer. Ett datavetenskapligt träd består av noder med pilar emellan.
Tentamen Datastrukturer för D2 DAT 035
Tentamen Datastrukturer för D2 DAT 035 17 december 2005 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.) Betygsgränser:
Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00
Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen 2019-04-16 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Anteckningarna lämnas
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,
Fredag 10 juni 2016 kl 8 12
KTH CSC, Alexander Baltatzis DD1320/1321 Lösningsförslag Fredag 10 juni 2016 kl 8 12 Hjälpmedel: En algoritmbok (ej pythonkramaren) och ditt eget formelblad. För betyg E krävs att alla E-uppgifter är godkända,
Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt
Binära träd (forts) Ett binärt träd kan lagras i ett enda sammanhängande minne Roten har index 1 Vänster barn till nod i har index 2*i Höger barn till nod i har index 2*i + 1 Föräldern till nod i har index
Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren att du har förstått dessa även om detaljer kan vara felaktiga.
Tentamen Programmeringsteknik II 2013-06-05 Skrivtid: 1400-1700 Hjälpmedel: Java-bok (vilken som helst) Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,
Algoritmanalys. Inledning. Informationsteknologi Malin Källén, Tom Smedsaas 1 september 2016
Informationsteknologi Malin Källén, Tom Smedsaas 1 september 2016 Algoritmanalys Inledning Exempel 1: x n När vi talade om rekursion presenterade vi två olika sätt att beräkna x n, ett iterativt: x n =
Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.
Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra
13 Prioritetsköer, heapar
Prioritetsköer, heapar 31 13 Prioritetsköer, heapar U 101. En prioritetskö är en samling element där varje element har en prioritet (som används för att jämföra elementen med). Elementen plockas ut i prioritetsordning
Tentamen i Algoritmer & Datastrukturer i Java
Tentamen i Algoritmer & Datastrukturer i Java Hjälpmedel: Skrivhjälpmedel, miniräknare. Ort / Datum: Halmstad / 2010-03-16 Skrivtid: 4 timmar Kontaktperson: Nicolina Månsson Poäng / Betyg: Max 44 poäng
6 Rekursion. 6.1 Rekursionens fyra principer. 6.2 Några vanliga användningsområden för rekursion. Problem löses genom:
6 Rekursion 6.1 Rekursionens fyra principer Problem löses genom: 1. förenkling med hjälp av "sig själv". 2. att varje rekursionssteg löser ett identiskt men mindre problem. 3. att det finns ett speciellt
Tildatenta Lösningsskiss
Tildatenta 2017-10-20 Lösningsskiss E-delen 1. KMP PAPPAPARTY next[i] = 0 1 0 2 1 0 4 3 1 1 2. Parent-pekare Utskriftfunktionen fungerar så här: 1. Om noden inte är None a. gör vi först ett rekursivt anrop
TENTAMEN: Algoritmer och datastrukturer. Läs detta!
1 (6) TENTAMEN: Algoritmer och datastrukturer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Börja varje uppgift på ett nytt blad. Skriv ditt idnummer på varje blad (så att vi
Tentamen med lösningsförslag Datastrukturer för D2 DAT 035
Tentamen med lösningsförslag Datastrukturer för D2 DAT 035 17 december 2005 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.)
TENTAMEN: Algoritmer och datastrukturer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.
1 (8) TENTMEN: lgoritmer och datastrukturer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. örja varje uppgift på ett nytt blad. Skriv inga lösningar i tesen. Skriv ditt idnummer
Inlämningsuppgift MiniPlotter
LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap EDAA01 Programmeringsteknik fördjupningskurs Inlämningsuppgift MiniPlotter I den här uppgiften ska ett program som ritar grafer av matematiska funktioner
TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer
Tentamen i... TDDC30/725G63 Objektorienterad programmering i Java, datastrukturer och algoritmer Datum 2011-12-19 Tid 14-18 Provkod DAT1 Institution Institutionen för Datavetenskap (IDA) Jour Johan Janzén
Tentamen TEN1 HI
Tentamen TEN1 HI1029 2014-03-14 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha
Programkonstruktion och. Datastrukturer
Programkonstruktion och Datastrukturer Repetitionskurs, sommaren 2011 Datastrukturer (hash-tabeller och heapar) Elias Castegren elias.castegren.7381@student.uu.se Arrayer igen En array är en linjär datastruktur
TDDC74 Programmering, abstraktion och modellering. Tentamen
AID-nummer: Datum: 2011-06-10 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Fredag 10 juni
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Träd Traversering Insättning, borttagning
Problemlösning och funktioner Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Problemlösningsstrategier Repetition av funktioner Mer om funktioner 2 Problemlösningsstrategier 3 PROBLEMLÖSNINGSSTRATEGIER Strategier Det finns ett flertal olika ansatser till
Användarhandledning Version 1.2
Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...
Symbolisk data. quote. (define a 1) (define b 2) (jacek johan david) (list a b)
Symbolisk data (1 2 3 4) (a b c d) (jacek johan david) ((jacek "jacek@cs.lth.se") (johan "johang@cs.lth.se") (david "dat99dpe@ludat.lth.se")) ((anna 13) (per 11) (klas 9) (eva 4)) (+ (* 23 4) (/ y x))
Sökning och sortering
Sökning och sortering Programmering för språkteknologer 2 Sara Stymne 2013-09-16 Idag Sökning Analys av algoritmer komplexitet Sortering Vad är sökning? Sökning innebär att hitta ett värde i en samling
TDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Pekare och Listor Eric Elfving Institutionen för datavetenskap 31 oktober 2014 Översikt 2/41 Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor Arbeta
Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)
Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201) Lars-Henrik Eriksson Fredag 5 april 2013, kl 14:00 17:00, i Polacksbackens skrivsal Hjälpmedel: Inga. Inte heller elektronisk
Föreläsning 9 Innehåll
Föreläsning 9 Innehåll Träd, speciellt binära träd egenskaper användningsområden implementering Datavetenskap (LTH) Föreläsning 9 HT 2017 1 / 31 Inlämningsuppgiften De föreläsningar som inlämningsuppgiften
TDDC74 Programmering, abstraktion och modellering. Tentamen
AID-nummer: Datum: 2011-01-11 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Tisdag 11 januari
TDDC74 Programmering, abstraktion och modellering. Tentamen
AID-nummer: Datum: 2012-01-10 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Tisdag 10 januari