Utbildningsplan för Software Engineering, 180 högskolepoäng (Software Engineering, 180 ECTS credit points) 1. Allmän information Software Engineering Software Engineering (Programvaruteknik) är tillämpningen av en systematisk, disciplinerad och mätbar metod för utvecklande, användande och underhåll av programvara. Ämnesområdet Software Engineering omfattar kunskap, verktyg, och metoder för att definiera krav på programvara och utföra programvarudesign, konstruktion av programvara, testning av programvara samt underhåll av befintlig programvara. Det är ett faktum att Software Engineering är att betrakta som en ingenjörskonst. Likaledes vill vissa göra gällande att Software Engineering är mer att betrakta som ett hantverk. Oavsett vad så är det ett ingenjörsmässigt ämnesområde som omfattar alla aspekter av produktion av programvara. Det omfattar också etablerandet och användandet av förnuftiga ingenjörsmässiga principer för att på ett ekonomiskt försvarbart sätt ta fram programvara som är pålitlig och fungerar effektivt och ändamålsenligt på verkliga maskiner i sin tänkta omgivning. Programvara finns ofta i produkter och förhållande där synnerligen hög tillgänglighet förväntas, även under de mest krävande omständigheter, till exempel för att övervaka ett kärnkraftverk eller att hålla en jumbojet flygande. Sådana applikationer består av miljoner rader kod, vilket gör dem jämförbara, i komplexitet, med de mest komplexa moderna maskiner. Ett modernt flygplan består av flera miljoner fysiska delar (ett rymdfartyg består av 10 miljoner fysiska delar) och mjukvaran till ett modernt flygplan består av 4 miljoner rader kod. Vanligtvis kommer vi i kontakt med programvaran när vi använder datorer i olika former, vanliga bordsdatorer, handdatorer, mobiltelefoner, spelkonsoler, etc. I dessa datorer finner vi dels programvaran som maskinnära operativsystem och kompilatorer men också i form av ordbehandlare, webbläsare och tv-spel. I företagsvärlden styrs många beslut av affärssystem, programvara som hanterar ekonomi, order, lager och finansiella transaktioner. I stora databaser samlas all information för att sedan bearbetas så att rätt affärsmässiga beslut kan tas. Behovet och vikten av pålitlig programvara kommer bara att öka med tiden. Utveckling av programvara sker ofta i projektform. Vissa organisationer har specialister som utför de olika aktiviteterna i ett programutvecklingsprojekt medan andra organisationer låter programvarutekniker utföra flera eller tom alla av aktiviteterna. I stora projekt kan personer specialisera sig för en roll. I små projekt kan en person få fylla alla rollerna. Dessa specialiserade roller omfattar i industrin kravanalys, systemarkitekter, utvecklare, testare, support, dokumentation, managers och inom akademin utbildare, forskare.
Utbildningen Utbildningen Software Engineering syftar till att studenten skall tillägna sig både grundläggande och fördjupade kunskaper inom ämnesområdet Software Engineering för att efter fullgjord utbildning vara anställningsbar inom industrin och vara förberedd för en fortsatt akademisk karriär. Utbildningen präglas av sina praktiska inslag som genomförs i ett antal projektkurser där studenten praktiskt tillämpar sina teoretiska kunskaper i programutvecklingsprojekt. Dessa projekt strävar att efterlikna verklighetens projekt, vilket ofta innebär att problemställningarna inte enbart är tekniska. Lyckade projekt måste också hantera aspekter såsom planering, uppföljning, organisation och kommunikation mellan människor. I projekten ställs studenten inför en extern beställare och kravställare vilket ofta slutar i att studenten får använda teoretiska kunskaper, uppfinningsrikedom och sunt förnuft. I projektkurserna förvärvar studenten kunskap av sådan art så svårligen kan läras ut på annat sätt. Utbildningen Software Engineering är för den som vill jobba med programutveckling, oavsett vilken specialisering man tänker sig och oavsett om man söker en karriär inom industrin, akademin eller som egen företagare. En högskolepoäng motsvarar en poäng i European Credit Transfer System (ECTS). 2. Beslut och riktlinjer Beslut om att inrätta utbildningsprogrammet har fattats av Högskolestyrelsen för Blekinge Tekniska Högskola. Ansvarig sektion för programmet är Sektionen för datavetenskap och kommunikation. Utbildningsplanen är fastställd av dekanus på delegation från Grundutbildningsnämnden 2008-10-29, senast fastställd av dekanus på delegation från Utbildningsnämnden 2010-06-22. Utbildningsplanen gäller för studenter antagna från och med hösten 2008. 3. Mål Utöver de nationellt reglerade målen, vilka återfinns i Appendix B, gäller följande mål för utbildningen. Efter genomförd utbildning skall studenten: behärska storskalig produktion av programvara av hög kvalitet för såväl administrativa som tekniska tillämpningsområden; förstå och praktiskt kunna tillämpa moderna teknologier för analys, design, konstruktion och test av programvara; ha förvärvat grundläggande kunskaper om de organisatoriska aspekter som påverkar programvarukonstruktionen samt praktiskt kunna tillämpa denna kunskap i en projektgrupp; i detalj förstå de för programvarukonstruktion viktigaste utvecklingsmetoderna och dess tillämpningar samt praktiskt kunna tillämpa dem; behärska förmågan att självständigt söka kunskap och på egen hand tillägna sig nya färdigheter i ett snabbt föränderligt område. 4. Lärande och utbildning
Studerande på utbildningsprogrammet förväntas studera heltid under 3 år. Utbildningsprogrammet ges enbart på campus. Undervisningen ges i form av föreläsningar, lektioner och seminarier. Praktiska moment genomförs som övningar, laborationer eller praktikfall. Det förekommer att kurser eller moment genomförs som projekt med givna tidsramar. Utbildningens inledande år ägnas åt grundläggande kunskaper i matematik, problemlösning, programmering och modellering. En del av året ägnas åt grundläggande studier inom Datavetenskap såsom data- och telekommunikation samt datorteknik. Årskurs 2 inleds med ett individuellt projekt där studenten får använda sina hittills tillgodogjorda kunskaper i programvaruteknik. På detta följer kurser i fördjupningsområden inom Programvaruteknik och Datavetenskap, exempelvis operativsystem och kompilatorteknik. Årskursen avslutas med ett småskaligt programvaruutvecklingsprojekt i grupper om maximalt 5 personer. Under termin 5 erbjuds en fördjupning i främst Programvaruteknik och Datavetenskap. Studenten får möjlighet att välja bland ett antal valbara kurser. Utbildningen avslutas med ett storskaligt programvaruutvecklingsprojekt i grupper om maximalt 20 personer, vilket innefattar kandidatexamenskravet på ett självständigt arbete motsvarande minst 15 högskolepoäng. Utbildningen bedrivs huvudsakligen på svenska men enstaka föreläsningar och hela kurser på engelska kan förekomma. Litteraturen är i huvudsak på engelska. 5. Huvudsakligt upplägg av utbildningen Nedan visas rekommenderad studiegång. Kurserna läses normalt sett parallellt på halvfart. Varje läsperiod omfattar totalt 15 högskolepoäng. Utbildningsprogrammet genomgår kontinuerlig utvärdering och utveckling, vilket kan medföra att kursutbudet och kursernas placering i tiden förändras. Årskurs 1 Läsperiod 1 Läsperiod 2 Läsperiod 3 Läsperiod 4 PA1101 DV1121 Objektorienterad Programmering och algoritmer systemutveckling 22,5 hp MA1105 Analys och diskret matematik 15hp ET1109 Data- och telekommunikation DV1117 Datorteknik Årskurs 2 Läsperiod 1 Läsperiod 2 Läsperiod 3 Läsperiod 4 PA1102 DV1206 PA1201 Individuellt Realtids- och Litet programvaruprojekt i grupp programvaruprojekt operativsystem 15hp DV1201 Valbara kurser lp2 Valbara kurser lp3 Valbara kurser lp4
Databasteknik Dnr BTH 56-0690-2010 Årskurs 3 Läsperiod 1 Läsperiod 2 Läsperiod 3 Läsperiod 4 Valbara kurser Valbara kurser Valbara kurser Valbara kurser PA1304 Stort programvaruprojekt i grupp 30hp Skuggade ( ) kurser är obligatoriska. Övriga kurser är starkt att rekommendera men går att byta ut, mot motsvarande eller likvärdiga, efter dialog med programansvarig. Här följer en detaljerad beskrivning av de obligatoriska/rekommenderade kurserna. OBLIGATORISKA KURSER PT = Programvaruteknik DV = Datavetenskap DV1121, Programmering och algoritmer (22,5 hp, PT/DV) Efter genomförd kurs skall studenten ha förvärvat förmågan att självständigt utifrån en problembeskrivning konstruera ett, enligt objektorienterade principer, väl strukturerat och händelsestyrt program med grafiskt användargränssnitt. Studenten skall även ha tillägnat sig grundläggande kunskaper om datastrukturer och dess implementation i ett programmeringsspråk samt gällande analys och konstruktion av algoritmer. MA1105, Analys och diskret matematik (15hp, Matematik) Målet för kursen är att studenten självständigt skall kunna formalisera och teoretisera praktiska problem av datavetenskaplig art, i syfte att med adekvata matematiska metoder lösa, förenkla, omformulera, eller påvisa egenskaper hos dem. PA1101, Objektorienterad systemutveckling (, PT/DV) Studenten tillägnar sig en grundläggande färdighet inom objektorienterad modellering, speciellt objektorienterad design samt grundläggande förståelse för arbetsmetoder som används vid utveckling av objektorienterade system. Studenten lär sig återanvändningens betydelse för effektivare och framgångsrikare systemutveckling vilken också exemplifieras med objektorienterade designmönster och ramverk. PA1102, Individuellt programvaruprojekt (, PT) I kursen får studenten tillvarata och använda sin dittills utvecklade förmåga inom programutveckling och vidareutveckla denna genom att självständigt genomföra ett utvecklingsprojekt av ett mindre system. Detta system beställs av en riktig kund och skall levereras med hög kvalitet, enligt specificerade krav och inom en bestämd tid. DV1201, Databasteknik (, PT/DV) Målet med kursen är att studenten på ett metodiskt och strukturerat sätt skall kunna, självständigt eller i grupp, utveckla en större databasbaserad client/server applikation.
Studenten lär sig datamodellering och normalisering samt praktiserar hur en datamodell översätts till ett schema för en relationsdatabas. Studenten utövar frågespråk (SQL) i teori och praktik samt utvecklar en större databas/programmerings uppgift. PA1201, Litet programvaruprojekt i grupp (15hp, PT) Genom att delta i ett programutvecklingsprojekt i grupper om max 5 personer vidareutvecklar och breddar studenten sin kunskap inom det programvarutekniska området. Studenten övar kravställning och diskussioner med kund, planering och uppföljning, gruppdynamik och metoder för programutveckling samt djupdykning i utvalda programmerings tekniker. Studenten lär sig ett arbetssätt som baseras på åtagandekultur. PA1304, Stort programvaruprojekt i grupp (30hp, PT), G2E Denna kurs är kronan på verket i programvaruteknikers utbildning. Att delta i ett projekt med mellan 15-20 studenter som organiserar sig själva och hanterar planering och uppföljning av projektet samt sköter kravdiskussioner med kunden ger studenterna möjlighet att få en detaljerad inblick i vad ett storskaligt programutvecklingsprojekt kan innebära. Studenterna ges möjlighet att praktisera alla sina inlärda förmågor samt att ytterligare förkovra sig i dem genom att välja olika roller i projektet. REKOMMENDERADE KURSER ET1109, Data- och telekommunikation (, Elektronik) Studenten förvärvar grundläggande kunskaper i ämnet datakommunikation med inriktning mot Internet samt en översikt på systemnivå över GSM-nätet och framtida mobiltelefonnät. DV1117, Datorteknik (, DV) Studenten förvärvar grundläggande kunskaper om datorers uppbyggnad och funktionssätt. Studenten praktiserar assemblerprogrammering och maskinnära C-programmering. DV1206, Realtids- och operativsystem (, PT/DV) Efter avslutad kurs skall studenten ha en grundlig förståelse för ett operativsystems uppbyggnad och funktion samt kunna visa på hur ett antal existerande realtids- och operativsystem är byggda. VALBARA KURSER Det andra året har studenten möjlighet att välja kurser i läsperioderna 2, 3 och 4. Studenten väljer 1 kurs per läsperiod. Nedanstående bild visar de kurser som är valbara och när. Årskurs 2 Läsperiod 2 Läsperiod 3 Läsperiod 4 DV1304 FE1208 DV1203 Människadatorinteraktion och arbetsvetenskap Projektorganisation Kompilatorteknik EN1109 Tillämpad engelska I DV1311 Webbteknologier och tillämpningar EN1305 Professionell teknisk kommunikation
Det tredje året väljer studenten själv vilka kurser som skall läsas. Två kurser per läsperiod väljs och på det sättet kan studenten själv välja en specialisering av sin utbildning. Läsperiod 1 Läsperiod 2 DV1306 Tillämpad artificiell intelligens DV1305 Programmering i UNIX-miljö PA1301 Programvaruarkitektur DV2401 Agentsystem DV1202 Inbyggda system PA2410 Produktlinjearkitekturer Årskurs 3 FE1108 MA1106 Industriell ekonomi Linjär algebra Grundläggande 7,5p företagsekomoni 7,5p Se appendix A för mer information om de valbara kurserna. Valfria kurser utöver ovanstående kan förekomma. Sådana val sker alltid i dialog med programansvarig. 6. Bedömning och examination Utbildningsprogrammets mål uppnås genom de kurser som ingår i examen. Bedömning och examination sker på kursnivå och detaljer rörande examination och betygssättning finns i respektive kursplan. 7. Utvärdering Alla studenter uppmanas att delta i utvärderingen av programmet. Under utbildningens gång utvärderas också varje kurs, och program- och kursutvärderingarna ligger som grund för fortsatt utvecklingsarbete. 8. Förkunskapskrav För tillträde till utbildningsprogrammet krävs, förutom grundläggande behörighet för högskolestudier: Matematik kurs C med lägst betyget Godkänd. 9. Övergångsregler mellan årskurser Övergångsregler styrs av förkunskaper till respektive kurs. Förkunskapskraven till de olika kurserna regleras av kursplanerna.
10. Examen Dnr BTH 56-0690-2010 Utbildningen leder fram till en examen på grundnivå: Filosofie kandidatexamen. Huvudområde: Programvaruteknik. Motsvarande benämning på engelska är Bachelor of Science. Main field of study: Software Engineering. eller Teknologie kandidatexamen. Huvudområde: Programvaruteknik. Motsvarande benämning på engelska är Bachelor of Science. Main field of study: Software Engineering. Observera reglerna för Teknologie kandidatexamen som kräver 15 högskolepoäng inom ämnet Matematik eller Tillämpad Matematik; se bilaga 2 till examensordningen för Blekinge Tekniska Högskola. Se Appendix B för relevanta utdrag ur examensordningen.
Appendix A: Valbara kurser inom utbildningsprogrammet Under läsperiod 2, 3 och 4 under läsår 2 kan studenten välja bland följande kurser. EN1109 Tillämpad engelska I (, EN) Tillämpad engelska avser ge den studerande viktiga baskunskaper i det engelska språket. Kursen är lämpad såväl för dem som tänker bedriva studier i andra ämnen, vars kurslitteratur ofta är på engelska, som för dem som vill fortsätta engelskstudier på en högre nivå eller förbättra sina språkkunskaper I allmänhet. EN1305 Professionell teknisk kommunikation ( EN) I kursen tränar studenten förmågan att skapa skrifliga och visuellt tilltalande document för professionell kommunikation och lär sig att förstå hur målgruppen och syfte påverkar designen av skriflig och muntlig kommunikation. DV1311, Webbteknologier och tillämpningar (, DV) Kursen hanterar frågeställningar kring arkitektur av web-lösningar. I kursen introduceras koncept som låter oss resonera kring underliggande strukturen och designen av webbaserade applikationer.teknologier för att skapa struktur, för att göra presentation och dynamisk interaktion tas också upp. DV1304, Människa-datorinteraktion (, DV) Studenten tillägnar sig en förståelse för ämnet Människa Dator Interaktion och till design koncept i en bredare mening samtidigt förvärvas kunskaper inom grundläggande principer för att designa informations system. Studenten lär sig vad the Scandinavian approach av systemutveckling innebär. DV1203, Kompilatorteknik (, PT/DV) Studenten tillägnar sig grundläggande kunskaper i teorin för översättning av programspråk samt praktisk erfarenhet av kompilatorkonstruktion. FE1208, Projektorganisation och arbetsvetenskap (, Företagsekonomi) Studenten förvärvar en förståelse för problem som kan uppstå i projekt där flera människor samarbetar samt kunskaper i hur dessa problem kan hanteras. Efter kurs skall studenten kunna påvisa grundläggande kunskaper i organisation och samordning av projekt samt ha förståelse för om hur införande av modern teknik påverkar arbetets innehåll och organisation. Under läsperiod 1 och 2 vid läsår 3 får studenten själv välja kurser. DVC004, Tillämpad artificiell intelligens (7,5p, DV) (DV1306, G1F) Målet med kursen är att studenten skall inhämta en grundläggande förståelse i tillämpad artificiell intelligens, dess grundläggande metoder och dess applikationer. Studenten studerar bland annat algoritmer, spelalgoritmer, expertsystem, mönsterigenkänning, naturligt språk och agenter. DVD005, Agentsystem (7,5p, DV) (DV2401, A1N) Målet med kursen är att studenten skall skapa sig en förståelse om agentsystem och vilka problem som är lämpliga att lösa med agentprogrammering.
DVC011, Programmering i UNIX-miljö (7,5p, DV) (DV1305, G2F) Målet med kursen är att studenten skall tillägna sig en fördjupad förståelse av UNIXbaserade system samt fördjupade kunskaper i operativsystemnära programmering. DVB018, Inbyggda system (7,5p, DV) (DV1202, G1F) Målet med kursen är att studenten skall tillägna sig kunskaper om datorns inre struktur och funktionalitet, assemblerprogrammering samt concurrent programming. PAC002, Programvaruarkitekturer (7,5p, PT) (PA1301, G2F) Målet med kursen är att studenten skall tillägna sig en översiktlig kunskap i design av programvaruarkitekturer för applikationer och metoder för att utvärdera dem. Studenten orienterar sig om komponent-baserad utveckling och utför praktiska övningar inom programvaruarkitekturer. PAD008, Produktlinjearkitekturer (7,5p, PT) (PA2410, A1F) Målet med kursen är att studenten skall tillägna sig kunskaper om hur strukturering av programvaruprodukter till produkt-linjer kan effektivisera utvecklingsprocessen. Studenten förvärvar kunskaper i tekniska, organisatoriska, processer och affärsmässiga aspekter av produktlinje arkitekturer. MAA013, Linjär algebra, (7,5p, Matematik) (MA1106, G1N) Målet med kursen är att studenten skall tillägna sig kunskap inom linjära ekvationssystem, vektorer i planet och rummet, skalärprodukt, vektorprodukt, matriser, linjära avbildningar och determinanter. FEA038, Industriell ekonomi: Grundläggande företagsekonomi (7,5p, Företagsekonomi) (FE1108, G1N) Målet med kursen är att studenten skall tillägna sig en förståelse för och kunna använda grundläggande ekonomiska begrepp inom framförallt industriell ekonomi.
Appendix B: Utdrag ur nationella och lokala examensordningen Kandidatexamen Omfattning Kandidatexamen uppnås efter att studenten fullgjort kursfordringar om 180 högskolepoäng med viss inriktning som varje högskola själv bestämmer, varav minst 90 högskolepoäng med successiv fördjupning inom det huvudsakliga området (huvudområdet) för utbildningen. Mål Kunskap och förståelse För kandidatexamen skall studenten visa kunskap och förståelse inom huvudområdet för utbildningen, inbegripet kunskap om områdets vetenskapliga grund, kunskap om tillämpliga metoder inom området, fördjupning inom någon del av området samt orientering om aktuella forskningsfrågor. Färdighet och förmåga För kandidatexamen skall studenten visa förmåga att söka, samla, värdera och kritiskt tolka relevant information i en problemställning samt att kritiskt diskutera företeelser, frågeställningar och situationer, visa förmåga att självständigt identifiera, formulera och lösa problem samt att genomföra uppgifter inom givna tidsramar, visa förmåga att muntligt och skriftligt redogöra för och diskutera information, problem och lösningar i dialog med olika grupper, och visa sådan färdighet som fordras för att självständigt arbeta inom det område som utbildningen avser. Värderingsförmåga och förhållningssätt För kandidatexamen skall studenten visa förmåga att inom huvudområdet för utbildningen göra bedömningar med hänsyn till relevanta vetenskapliga, samhälleliga och etiska aspekter, visa insikt om kunskapens roll i samhället och om människors ansvar för hur den används, och visa förmåga att identifiera sitt behov av ytterligare kunskap och att utveckla sin kompetens. Självständigt arbete (examensarbete) För kandidatexamen skall studenten inom ramen för kursfordringarna ha fullgjort ett självständigt arbete (examensarbete) om minst 15 högskolepoäng inom huvudområdet för utbildningen. Övrigt För kandidatexamen med en viss inriktning skall också de preciserade krav gälla som varje högskola själv bestämmer inom ramen för kraven i denna examensbeskrivning. Högskolespecifikt för BTH: För kandidatexamen krävs minst 30 högskolepoäng på C-nivå i huvudområdet, varav det självständiga arbetet ska utgöra minst 15 högskolepoäng.