Mjukvaruteknik vs Datateknik

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?” Är personen som frågar något mer insatt kanske hen frågar ”Så det ä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.
LiUs egna hemsida: #1.

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.

Venn-diagram över kurser på D och U.

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:

Tentastatistik för kursen TATA76

Tentastatistik för kursen TATA90

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 Mediateknik (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:

Spektrum av nedsamplade signaler.

Ser det här roligt ut? Isf kanske du borde läsa D eller Y. ;)

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.

2 reaktion på “Mjukvaruteknik vs Datateknik

  1. Rebecka

    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.

  2. Kim

    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.

Kommentera