En av de vanligaste frågorna jag får när jag berättar att jag pluggar Mjukvaruteknik är ”Vad är skillnaden mellan mjukvaruteknik och datateknik?” och om personen som frågar är något mer insatt kanske hen frågar ”Så mjukvaruteknik är som datateknik utan hårdvara?”. Båda frågorna är rimliga och relevanta, men då det finns markanta skillnader mellan programmen är det inte alltid helt lätt att ge ett korrekt och uttömmande svar. För de blivande studenter som undrar vilket program de ska söka vill jag med detta inlägg peka på de viktigaste skillnaderna, och slå ett slag för att Mjukvaruteknik är BÄST!
Bakgrund
Det finns en del diskussioner av varierande kvalitet om programmen på diverse forum. De bästa jag har stött på är dessa:
Flashback: #1 och #2.
Reddit: #1 och #2.
I mitt inlägg kommer jag använda vissa begrepp som kan vara okända för de som inte läser till civilingenjör på LiU, här kommer därför en kort ordlista med förklaringar:
- D – Programbeteckning för Datateknik
- U – Programbeteckning för Mjukvaruteknik
- Envarre – Envariabelanalys, en matematikkurs
- Flervarre – Flervariabelanalys, också en matematikkurs
Kurser
Ett utmärkt sätt att jämföra programmen på är att se vilka kurser som ingår. Flera kurser samläses på D och U. Detta visualiseras i Venndiagrammet.

Venndiagrammet visar att U läser något färre kurser än D. En mer detaljerad bild ges genom tabellerna nedan. Om någon kurs låter extra intressant är det bara att googla på kurskoden så dyker dess kurshemsida upp som första träff, förmodligen.
Kurser som D och U samläser
Kurskod | Kursnamn |
TDDD86 | Datastrukturer, algoritmer och programmeringsparadigm |
TDDC66 | Datorsystem och programmering |
TATA65 | Diskret matematik |
TATA41 | Envariabelanalys 1 |
TDDD73 | Funktionell och imperativ programmering i Python |
TDDD99 | Ingenjörsprofessionalism |
TATA79 | Inledande matematisk analys |
TDDD96 | Kandidatprojekt i programvaruutveckling |
TATA24 | Linjär algebra |
TDDD78 | Objektorienterad programmering och Java |
TDDD63 | Perspektiv på datateknik/datavetenskap |
TDDB68 | Processprogrammering och operativsystem |
TDDC93 | Programutvecklingsmetodik teori |
Kurser som D läser
Kurskod | Kursnamn |
TSEA83 | Datorkonstruktion |
TSEA82 | Datorteknik |
TSEA22 | Digitalteknik |
TSEA24 | Elektronik |
TATA42 | Envariabelanalys 2 |
TATA76 | Flervariabelanalys |
TFYA86 | Fysik |
TDDD60 | Interaktiva system |
TAOP33 | Kombinatorisk optimering gk |
TSEA29 | Konstruktion med mikrodatorer, projektkurs |
TDDD88 | Logik |
TAMS27 | Matematisk statistik |
TFYY68 | Mekanik |
TSRT12 | Reglerteknik |
TSKS10 | Signaler, information och kommunikation |
TSDT84 | Signaler och system samt transformer |
Kurser som U läser
Kurskod | Kursnamn |
TDDC17 | Artificiell intelligens |
TDDD92 | Artificiell intelligens – projekt |
TDDD37 | Databasteknik |
TSEA28 | Datorteknik Y |
TATA90 | Flervariabelanalys och differentialekvationer |
TDDD85 | Formella språk och automatateori |
TFYA87 | Fysik och mekanik |
TDDD72 | Logik |
TDDD80 | Projekt: Mobila och sociala applikationer |
TSRT19 | Reglerteknik |
TDAB01 | Sannolikhetslära och statistik |
TSKS21 | Signaler, information och bilder |
TDDD93 | Storskaliga distribuerade system och nätverk |
Analys
Tabellerna ovan avslöjar flera viktiga skillnader mellan programmen. Det som ursprungligen fick mig att välja mjukvaruteknik var att D läser Datorkonstruktion, Digitalteknik och Elektronik medan U läser AI, Databasteknik och projektkursen Mobila och sociala applikationer (Android-utveckling). Jag tycker det är jätteroligt att bygga datorer, men att förstå mig på tekniken bakom lockar inte. Att däremot kunna slänga upp en databas och knåpa ihop en Android-app är både roligt och användbart.
D har bredden, U har spetsen
U är inte en lika bred utbildning som D, men den är kärnfull. Till exempel läser D separata kurser i Fysik och Mekanik medan U endast läser en kurs som kombinerar de två ämnena. Samma sak gäller för matematiken där D läser både Envariabelanalys 2 och Flervariabelanalys medan U istället läser kursen TATA90: Flervariabelanalys och differentialekvationer. I TATA90 har man plockat in de viktigaste delarna ur envarre 2 för att förstå momenten i flervarren. När vi är inne på ämnet matematik och flervariabelanalys tänkte jag visa lite statistik från tentaresultaten från respektive programs flervariabelkurs:


Slutsatsen från bilderna ovan är alltså, om du inte vill ha betyg U i flervarre, gå U. Jag är inte säker på att det här är en rättvis jämförelse, man kan ju nästan aldrig lita på statistik men TATA90 var den bästa matematikkurs jag läst. Det är ett ganska ovanligt uttalande när det kommer till flervariabelanalys skulle jag tro.
Masterprofiler
Till det fjärde och femte året följer de flesta studenterna en masterprofil, dvs specialiserar sig mot något ämne de tycker är intressant. Eftersom att D har en bredare utbildning med all elektronik och signalteori är de också kvalificerade till fler masterprofiler. U kan endast välja mellan 6 mjukvaruinriktade masterprofiler, men jag tycker det räcker till gott och väl. Vill man ha lite mer information om vilka profiler som finns kan man kika på dessa här.
Slutplädering
Hittills har jag varit ganska objektiv i inlägget, men det är slut från och med nu. Här kommer de bästa argumenten för att välja U.
U är ett kreativt program
En stor del av studierna på U går ut på att skapa saker genom mjukvara. I utbildningen ingår App-utveckling, AI-programmering (typ programmera robotar som spelar fotboll) och annat kul. Jag skulle vilja påstå att U är LiUs mest kreativa program, med brasklappen att jag har rätt dålig koll på vad som händer på Design och Produktuveckling (DPU) och Medieteknik (MT).
På U har nästan varje kurs anknytning till programmering. En viktig skillnad gentemot D är att U bakar in programmeringsmoment i kurser som annars hålls rent teoretiska, några exempel är statistikkursen där vi fick lära oss programmeringsspråket R och i fysiken fick vi använda våra kunskaper för att göra ett enkelt spel där vi programmerade fysiken. (Tyvärr ska de visst ta bort programmeringsprojektet i fysikkursen till kommande år och istället ha en större tentamen men så kan det vara när man inte vill att studenterna ska ha roligt.)
Även om allt jag skapat under mina år på LiU inte är mästerverk så är konceptet att under hela utbildningen alltid läsa minst en kurs som innehåller programmering väldigt viktigt. Programmering är ett hantverk som kräver tusentals timmar att bemästra. Som student på Mjukvaruteknik kommer du ständigt utöka och underhålla kunskaperna i programmering vilket gör U till den överlägset bästa civilingenjörsutbildningen för den som söker ett arbete som innefattar programmering.
Signaler^2
D har hela två kurser som har ”Signaler” i titeln. Min personliga åsikt är att man endast behöver genomleva en kurs i signalteori för allmänbildningens skull. Därefter kan man släppa det ämnet till förmån för roligare och mer relevanta ämnen. Som blivande student kan det vara svårt att greppa vad signalteori handlar om så låt mig ge en bild som exempel:

Signalteori är ett fascinerande ämne och jag är glad att det finns människor som tycker det är roligt, men det är bland det mest obegripliga jag stött på. Jag har varken gjort lumpen eller läst D, men det känns som båda ger erfarenheter av härdande karaktär. Det är inte kul när man gör det, men man kommer ur det starkare än någonsin. Jag ser på mina vänner som gjort lumpen iller läser D med stor beundran och respekt, ni är hjältar!
Mjukvaran är själen i svensk industri
Under mitt korta arbetsliv har jag haft kollegor som pluggat D, Y, TBI etc. Samtliga har arbetat med programmering och det är tveklöst en av de mest eftertraktade kompetenserna idag. Ett av mina favoritcitat från STEW 2016 kom från en av höjdarna på ett av Linköpings större företag:
It is all software. The electronics and mechanical engineers are lost!
Att läsa Mjukvaruteknik är inte bara roligt, det är också den utbildning som gör dig bäst lämpad för framtiden. THE FUTURE IS SOFTWARE!
Slutord
Att ge ett uttömmande och korrekt svar på frågan ”Vad är skillnaden mellan mjukvaruteknik och datateknik?” var svårare än jag trodde. Kanske är det här inlägget bara en ursäkt för mig att göra roliga grafer och diagram i R, men jag hoppas att det kan hjälpa någon. Om det är något du fortfarande undrar eller inte håller med om så gör din röst hörd i kommentarsfältet.
LIU verkar vara en sjukt bra skola. Skulle du säga att KTHs utbilding datavetenskap räknas som en U utbildning i och med att dom har blandat kurserna, rätta mig om jag har fel. Skulle du rekommendera andra Högskolor man kan plugga Mjukvaruutveckling civilingjör på?
Hej Ibrahim!
Bra men kluriga frågor, jag ska svara så gott jag kan.
KTHs civilingenjörsutbildning i datateknik tycker jag verkar vara mer mjukvarunära jämfört med datateknik på LiU, men jag skulle säga att det programmet skiljer sig ganska mycket från U på LiU med tanke på hur mattekurserna ligger placerade och vilka kurser som ingår de tre första åren.
Av de skolor som har ett civilingenjörsprogram i mjukvaruteknik (LiU, Blekinge tekniska högskola och Linnéuniversitetet) skulle jag absolut ranka LiU som det bästa, baserat på att U på LiU har funnits längst, universitetet är lite mer etablerat med bra rykte, det finns många relevanta mjukvaruföretag i Linköping och jag tycker kursupplägget är bra på LiU, mattekurserna är välplanerade och vi har lite mer fokus på AI än andra program, vilket känns relevant i dagsläget.
Väljer du att läsa till civilingenjör så tror jag alla alternativ är bra och du kommer ha ett spännande arbetsliv framför dig oavsett. Det viktigaste är nog att känna efter vad som är viktigast för dig. Vilken stad vill du bo i? Har något program en masterprofil eller möjligheter till utlandsstudier som väger extra tungt? Och passa på att fråga programansvariga/studievägledare för de olika programmen, de är experterna på området!
Vill du läsa mer om just kurserna på LiU så skrev jag ett annat blogginlägg om dem för ett tag sen: https://henziger.com/2020/05/21/kurser-pa-mjukvaruteknik/
/Eric
Har varit inne på att söka D i ca 1 år nu, men upptäckte nu ikväll att U också finns, och överväger faktiskt det istället. Denna text gav väldigt bra insikt i skillnaderna. Problemet är nu snarare att veta vad jag vill. Är nog mer intresserad av mjukvara, men hårdvara är också kul. T.ex verkar både ”Mobila och sociala applikationer” och ”Datorkonstruktion” som väldigt roliga kurser. Vet inte om den här texten gjorde beslutet lättare eller svårare haha 😛
Väldigt hjälpsamt, bra skrivet!
Tusen tack! Kul att det kunde vara till hjälp. Om det är något du undrar om programmen är det bara att fråga på! 🙂
Intressanta jämförelser, kul att se hur programmen skiljer sig och framförallt kul att höra att du verkar ha hittat så rätt!
För min egen del hade jag absolut saknat de mer hårdvarunära kurserna om jag inte hade lst D. Datorkonstruktion och digitalteknik är nog de roligaste kurserna jag läst hittils, samtidigt som jag utvecklas väldigt mycket genom programmering och inte kunde tänka mig en utbildning utan dessa delar heller.
Tack för denna upplysning! Alltid kul att höra folks motivering till varför de valt ett visst program.
Som D:are av högre (för hög) årskurs önskar jag plötsligt att jag väntat några år med att börja plugga så jag kunde valt U istället.