Utbildningsplan för Dnr 56-1113/07 International Software Engineering, 180 högskolepoäng (International 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 av 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 deras 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 av 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 dess 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. Utbildningsprogrammet International Software Engineering vill förbereda studenten för en internationell karriärmöjlighet. Detta säkerställs genom studier i språk och framförallt genom att, termin 5, genomföra studierna utomlands. 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 2006-10-25. Ansvarig sektion för programmet är Sektionen för teknik. Utbildningsplanen är fastställd av dekanus på delegation från Grundutbildningsnämnden 2007-08-31. Utbildningsplanen gäller för studenter antagna från och med hösten 2007. 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 tillämpa moderna teknologier för analys, design, konstruktion och test av programvara; 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 deras tillämpningar samt praktiskt kunna tillämpa dem; visa 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 tre år. Utbildningsprogrammet ges enbart på campus. Undervisningen ges i form av föreläsningar, lektioner, 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 sker studierna på ett annat Universitet/Högskola i utlandet. Studenterna får där möjlighet att förkovra och fördjupa sig inom de kurser som där utbjuds. 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.5hp 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 Databasteknik XXXXX Tillämpad engelska DV1203 Kompilatorteknik XXXXXX Teknisk engelska Å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 Färgmarkerade ( ) 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. PAC004, Stort programvaruprojekt i grupp (30hp, PT) 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. DV1304, Människodatorinteraktion (, 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. XXXXXX, Tillämpad Engelska (, Engelska) Målet med kursen är att fördjupa studentens kunskap att fritt kunna kommunicera på engelska i text eller talad form. XXXXXX, Teknisk Engelska (, Engelska) Målet med kursen är att fördjupa studentens kunskap att fritt kunna kommunicera på engelska i text eller talad form inom det tekniska särområdet. VALBARA KURSER De valbara kurserna under höstterminen på det tredje läsåret är likställigt med det utbud som finns på det Universitet/Högskola där dessa studier är förlagda. 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 och Engelska A 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 Utbildningen leder fram till en examen på grundnivå med antingen benämningen: eller Filosofie kandidatexamen med huvudområdet Programvaruteknik (motsvarande benämning på engelska är Bachelor of Science in Software Engineering) Teknologie kandidatexamen med huvudområdet Programvaruteknik (motsvarande benämning på engelska är Bachelor of Science in Software Engineering)
Observera reglerna för Teknologie kandidatexamen som kräver 15 högskolepoäng inom ämnet Matematik eller Tillämpad Matematik; se examensordningen för Blekinge Tekniska Högskola. Se Appendix B för relevanta utdrag ur examensordningen.
Appendix A: Valbara kurser inom programmet Det finns inga valbara kurser inom utbildningsprogrammet. Termin fem skall dock tillbringas vid lärosäte utomlands.
Appendix B: Utdrag ur nationella 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.