[ sida 1 ] Introduktion till Programutveckling - från Information till Tillämpning (7,5 hp) Provmoment: Ladokkod: Tentamen ges för: Tentamen 21IP1A ASYST TentamensKod: Tentamensdatum och tid: 2016-10-31, kl 09.00 13.00 Hjälpmedel: Inga hjälpmedel tillåtna Rättningstiden för en tentamen vid sektionen för Informationsteknologi är högst 15 arbetsdagar (ca 3 veckor). Utöver rättningstiden tillkommer administrativ tid för StudentCentrum och administration för distribution av tentamen samt inregistrering av resultat. Resultatet bör därför vara synligt på MittKonto senast inom 4 veckor efter skrivningstillfället. Betyg: Maxpoäng på denna tentamen är 40 poäng. För betyget Godkänd på tentamen krävs minst 20 poäng. För betyget Väl Godkänd på tentamen krävs minst 30 poäng. Allmänna anvisningar: 1. Skriv endast på ena sidan av pappret, ej fram och baksida. 2. Ange tydligt till vilken fråga svaret hör. 3. Lägg svaren i samma ordning som frågorna i tentamenshäftet 4. Svårlästa svar kan inte rättas! 5. Ansträng er att besvara frågorna tydligt. 6. Markera på omslaget till tentamen vilka frågor du lämnat svar på. 7. Om du finner uppgifterna i tentamenstexten ofullständiga skall du göra egna antaganden för de uppgifter du saknar. Redovisa dina egna antaganden. Samtliga frågor besvaras med kurslitteratur och föreläsningar som utgångspunkt. Om du använt ytterligare informationsmaterial för dina svar, anger du från vilket material i dina svar. Ett tips är att du ägnar som första steg lite tid åt att gå igenom frågorna för att därigenom planera och disponera tiden på bästa sätt. Du bör även vid denna inspektion fundera lite över hur frågan är formulerad för att uttolka frågans intention. Begrepp som t ex, diskutera, exemplifiera, beskriv och förklara säger något om frågans innebörd och hur du bör svara. Lycka till med tentamen! Fråga 1, 3, 5, 7, 8: Carina Hallqvist (070-7614048), Fråga 1, 2, 4, 6: Gideon Mbiydzenyuy (0768-856713) OBS!! Vid en skriftlig tentamen måste studenten visa att hen har tillräckliga kunskaper inom problemområdet. Många gånger är det möjligt att ge exempel och illustrera, ibland det bästa eller till och med det enda sättet, och kan påverka poängsättningen för svaret. Om du anser att en frågeställning inte är komplett, så är det upp till dig att komplettera med eventuellt saknade förutsättningarna. I sådana fall måste du också ange eventuella tillkommande förutsättningar i ditt svar.
[ sida 2 ] Markera rätt svar för kryssfrågorna med ett tydligt X i därför avsedd ruta i svarsfälten nedan. På kryssfrågorna är endast ett svar korrekt. Om mer än en ruta är ikryssad på en fråga räknas det som ett felaktigt svar. Svarsformulär för fråga 1 S 1.1 1.6 1.11 1.16 1.2 1.7 1.12 1.17 1.3 1.8 1.13 1.18 1.4 1.9 1.14 1.19 1.5 1.10 1.15 1.20 Varje korrekt svar ger 0,5 poäng, dvs. max 10 poäng för fråga 1. Glöm inte att lägga denna sida i tentamenshäftet!
[ sida 3 ] Delfrågor för fråga 1. Kryssa i dina svar på sidan 2! 1.1. Vilket av följande skadliga program är förklädd till välvilliga resurser (ex spel)? A. virus B. mask (worm) C. trojansk häst D. logisk bomb För uppgifterna 1.2 1.4, matcha nätverkstopologin med lämpligaste beskrivning 1.2. Wide Area Network (WAN) 1.3. Metropolitan Area Network (MAN) 1.4. Local Area Network (LAN) A. Ett nätverk som kopplar samman ett relativt litet antal datorer på en relativt liten yta, t.ex. sektionen för Informatik på Högskolan Borås. B. Ett nätverk som kopplar samman flera datorer över en större geografisk yta, t.ex. alla datorer inom region väst. C. Infrastruktur för kommunikation som utvecklats i och runt stora städer. D. Ett nätverk som är baserat på en gemensam modell av nätverksarkitektur med ett antal givna protokoll för implementation. 1.5. Vilket av följande beskriver aktiviteten att hämta in en sida från sekundärminnet, vilket kan leda till att en annan sida tvingas ut till sekundärminnet? A. swapping B. kontextbyte C. partitionering D. virtuellt minne För uppgifterna 1.6 1.9, matcha filsuffixet med vilket innehåll vi bör kunna förvänta oss 1.6. c 1.7. tiff 1.8. exe 1.9. mp3 A. binärfil B. ljudfil C. bildfil D. källkodsfil 1.10. Vilket av följande är en nätverksenhet som dirigerar ett paket till sin slutdestination A. modem B. gateway C. nod D. router
[ sida 4 ] För uppgifterna 1.11-1.14, matcha protokoll med lämpligaste lager i OSI-modellen. 1.11. TCP 1.12. IP 1.13. SMTP 1.14. Ethernet 1.15. Vilket av följande är en del av en HTML-tagg och ger ytterligare information om elementet? A. HTML B. attribut C. märkningsspråk (markup language) D. hypertext 1.16. Vilket av följande utför operationer såsom AND, OR, och NOT? A. kontrollenheten B. aritmetiska/logiska enheten C. sekundärminnet D. primärminnet För uppgifterna 1.17-1.20, matcha korrekt symbol med den sanningstabell som representerar motsvarande grind. Glöm inte att lägga svarssidan (sida 2) för kryssvaren i tentamenshäftet! För de följande frågorna bör svaren vara korta och koncisa, dvs. att det inte borde behövas några längre essäer. Svaret för respektive fråga skall skrivas på ett separat blad, tydligt angivet vilken fråga det är ett svar på.
[ sida 5 ] Fråga 2 (2+3=5p) Bilden nedan visar ett Scratch program för att sortera en lista. Studera programmet noggrant och svara på följande frågor: a) Identifiera alla loopar i programmet genom att specificera vilken rad loopen börjar på samt loopens huvudroll. Börja räkna från rad 1 som är när flaggan klickas på (2p) b) Räkna ut antal körningar för varje loop givet nedanstående lista med fem element. D.v.s. listans element visar det antal gånger som loopen körs med hjälp av den variabel som används i programmet. (3p) 10 30 20 40 90 Fråga 3 (5p) Pseudokod är ett språk som designats för att uttrycka algoritmer. Det är inte ett programspråk utan snarare ett skriftspråk för att snabbt kunna uttrycka (ofta med egna ord) val och handlingar. Det finns inga grammatiska regler men pseudokod bör kunna uttrycka ett antal koncept. Vilka är dessa konstruktioner (constructs) som en pseudokod behöver (bör) kunna uttrycka?
[ sida 6 ] Fråga 4 (3p) Beskriv skillnaden mellan textfiler och binära filer. Förklara varför "binärfil" egentligen är en missvisande benämning Fråga 5 (3p) Definiera orden abstraktion samt komplexitet och relatera dem till bilderna nedan. Fråga 6 (2+2 = 4p) a) Vad är ett expertsystem? Ge en beskrivning av vad ett expertsystem har för uppgift och hur det används. b) Redogör för den arkitektur (dvs. sätt att internt bygga) för expertsystem baserade på subsumption-arkitektur-modellen. Fråga 7 (2p) Konvertera följande decimala tal till binärt a) 1492 b) 1066
[ sida 7 ] Fråga 8 (2+3+3 = 8p) Stackar och köer är två av de vanligast förekommande abstrakta datatyperna. Antag nu att vi vill vända på en stack, dvs. att det element som ligger överst skall hamna längst ner, näst översta elementet näst längst ner, osv. Ett exempel: 1 2 3 4 4 3 2 1 En algoritm för att åstadkomma detta är att ta ut elementen ett i taget från stacken tills den är tom, lägga dem i en kö och sedan plocka elementen från kön och lägga på stacken. a) Utför denna algoritm för exempelstacken ovan. Rita i varje steg hur både stack och kö ser ut. b) Ge komplett pseudokod för algoritmen ovan, som tar emot en stack som argument och returnerar en stack med elementen i omvänd ordning. Ni får endast använda operationerna pop, push och stackempty för stack, samt enqueue, dequeue och queueempty för kö. c) Designa nu en algoritm som vänder på en kö med hjälp av en stack. Ange algoritmen i ord och i pseudokod. Se appendix A för vilka operationer ni får använda i pseudokoden endast dessa är tillåtna. Detta är sista sidan Lägg svaren i samma ordning som frågorna!
[ sida 8 ] Tänk på att allt i detta appendix kanske inte används i tentafrågan! Appendix A Notation för pseudokod Variabler Enkla variabler: Använd variabelnamn som inleds med liten bokstav, t.ex. summa eller tal. Enkla variabler behöver inte deklareras innan de används. Vektorer: skall deklareras innan de används, genom att ange typ och storlek. Exempelvis: integer data[20]. För att referera till en plats i vektorn, använd [ ], exempelvis data[7]. Enkla satser Tilldelning: Använd Set to., exempelvis: Set summa to 64 eller Set tal to tal + 1 Input/output: Read för input och Write för output, exempelvis Read num eller Write summa eller Write Summan är + summa Kontrollstrukturer Selektion (Val): Använd IF, eventuellt med ett ELSE. Syntaxen är: IF (villkor) satser om villkoret är sant respektive IF (villkor) satser om villkoret är sant ELSE satser om villkoret är falskt Repetition (Loop): Använd WHILE med följande syntax: WHILE (villkor) satser att upprepa