[ sida 1 ] Introduktion till Programutveckling - från Information till Tillämpning (7,5 hp) Provmoment: Ladokkod: Tentamen ges för: Tentamen (5 hp) 21IP1A ASYST14h Datum och tid: 2015-11-05, kl 09.00 13.00 Hjälpmedel: Inga hjälpmedel tillåtna Rättningstiden för en tentamen vid sektionen för IT är högst 20 arbetsdagar (ca 4 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 5 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, 4-8: Daniel Rudmark (073-3604050) och Carina Hallqvist (070-7614048), Fråga 2-3: Malin Nilsson, (033-435 4199) 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! 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. Vad kallas en katalog i katalogträdet som befinner sig i en annan katalog? A. Överordnad katalog (Parent directory) B. Underkatalog (Subdirectory) C. Rotkatalog (Root directory) D. Arbetskatalog (Working directory) För uppgifterna 1.2 1.4, matcha nätverkstopologin med lämpligaste beskrivning 1.2. Busstopologi 1.3. Stjärntopologi 1.4. Ringtopologi A. Noderna är sammankopplade i en loop. Alla meddelanden går i en riktning. B. Noderna är kopplade till en centrum-nod genom vilken alla meddelanden går. C. Noderna inom nätverket är hierarkiskt länkade till varandra. D. Noderna är kopplade via en kommunikationslinje via vilken alla meddelanden går i båda riktningarna. 1.5. Vilken av följande metoder finns inte i den abstrakta datatypen kö? A. is_empty B. sort C. enque D. deque För uppgifterna 1.6 1.9, matcha filsuffixet med vilket innehåll vi bör kunna förvänta oss 1.6. png 1.7. xls 1.8. js 1.9. htm A. kalkyldokument. B. webbsida. C. bildfil. D. källkodsfil 1.10. Vilken typ av moln används exklusivt av en specifik grupp eller organisation? A. Publikt moln B. Privat moln C. Hybridmoln D. Gemensamma moln (community clouds)
[ sida 4 ] För uppgifterna 1.11-1.14, matcha ordet eller akronymen med med den utelämnade blanka delen. 1.11. SSL 1.12. Javascript 1.13 HTTP 1.14. hyperlänk A. kan föra över HTML-sidor till en webbläsare. B. Man kan säkra kommunikation från insyn med hjälp av. C. En kan referera från ett dokument på webben till ett annat. D. är ett språk som normalt exekveras i en webbklient. 1.15. En kräver typiskt ett specialskrivet program för att kunna visas och ändras? A. textfil B. binärfil C. källkodsfil D. XML-fil 1.16. 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. kontextbyte B. partitionering C. swappign D. virtuellt minne För uppgifterna 1.17-1.20, matcha protokoll med lämpligaste lager i OSI-modellen. 1.17. TCP 1.18. IP 1.19. SMTP 1.20. Ethernet 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 (4p) Under workshopen (hårdvara, nätverk etc.) fick du/ni bland annat sätta ihop en dator och bekanta dig med dess hårdvara. Då datorn var låst med ett lösenord, fick du flytta CMOS bygeln. Att ta bort eller flytta denna bygel kan jämföras med logiken bakom grindar, gates. Det finns olika typer av grindar; nämn ett par olika typer av grindar samt generellt vad det är för logik bakom grindar. Fråga 3 (8p) Följande Scratch skript har sex variabler: ord, x, hemlig, hemligare, bokstav samt temp. För följande inmatade värden ( ord ), fyll i tabellerna nedan för att visa värdet av varje variabel i slutet av varje iteration av repeat-loopen. Det är inte säkert att du behöver
[ sida 6 ] använda alla rader i tabellerna. Du får gärna visa initialvärdet på varje variabel (dvs. värdet innan repeat-loopen börjar) i tabellhuvudet. A) ord = ant Loop # ord bokstav hemlig hemligare 1 2 3 4 5 6 B) ord = aabbcc Loop # ord bokstav hemlig hemligare 1 2 3 4 5 6 C) ord = wwww Loop # ord bokstav hemlig hemligare 1 2 3 4 5 6 D) När skriptet är klart, vad motsvarar värdet på hemlig? Ange inte bara det faktiska värdet utan beskriv vad värdet är i termer av det inmatade värdet.
[ sida 7 ] Fråga 4 (1 +1 = 2p) Konvertera följande decimala tal till oktala: a) 800 b) 999. Fråga 5 (2+1+1=4p) Binär representation: En bit kan vara antingen 0 eller 1. a) En bit kan representera två saker. Två bitar kan representera fyra saker. Varför? b) Hur många saker kan tre bitar representera? c) Hur många saker kan fyra bitar representera? Fråga 6 (2 + 2 = 4p) a) Hur fungerar algoritmen binärsökning? Ge en förklaring i ord som beskriver algoritmens arbetssätt. b) Använd binärsökning för att hitta nyckelvärdet 17 i nedanstående vektor. Visa varje steg i sökningen genom att ange vilken del av vektor som är aktuell och vilka element som jämförs med det värde vi letar efter. 2 3 5 7 11 13 17 19 23 29 Fråga 7 (3p) Ett operativsystem behöver tillämpa en strategi för att schemalägga inkommande jobb till processorn. Beskriv principerna för hur följande tre strategier fungerar: First Come, First Serve, Shortest job Next samt Round Robin. Fråga 8 (2 + 3 = 5p) I denna uppgift skall ni designa en algoritm som läser in tal från användaren ett i taget, tills användaren anger 0 som input och sedan skriver ut summan av talen. a) Beskriv algoritmen i ord. b) Ange algoritmen 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 Glöm inte att lägga dina svar (inklusive sida 2 från detta häfte, formuläret för kryssfrågorna) i tentamenshäftet! Lägg svaren i samma ordning som frågorna!
[ sida 8 ] Appendix A Notation för pseudokods 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