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?” 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.

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

KurskodKursnamn
TDDD86Datastrukturer, algoritmer och programmeringsparadigm
TDDC66Datorsystem och programmering
TATA65Diskret matematik
TATA41Envariabelanalys 1
TDDD73Funktionell och imperativ programmering i Python
TDDD99Ingenjörsprofessionalism
TATA79Inledande matematisk analys
TDDD96Kandidatprojekt i programvaruutveckling
TATA24Linjär algebra
TDDD78Objektorienterad programmering och Java
TDDD63Perspektiv på datateknik/datavetenskap
TDDB68Processprogrammering och operativsystem
TDDC93Programutvecklingsmetodik teori

Kurser som D läser

KurskodKursnamn
TSEA83Datorkonstruktion
TSEA82Datorteknik
TSEA22Digitalteknik
TSEA24Elektronik
TATA42Envariabelanalys 2
TATA76Flervariabelanalys
TFYA86Fysik
TDDD60Interaktiva system
TAOP33Kombinatorisk optimering gk
TSEA29Konstruktion med mikrodatorer, projektkurs
TDDD88Logik
TAMS27Matematisk statistik
TFYY68Mekanik
TSRT12Reglerteknik
TSKS10Signaler, information och kommunikation
TSDT84Signaler och system samt transformer

Kurser som U läser

KurskodKursnamn
TDDC17Artificiell intelligens
TDDD92Artificiell intelligens – projekt
TDDD37Databasteknik
TSEA28Datorteknik Y
TATA90Flervariabelanalys och differentialekvationer
TDDD85Formella språk och automatateori
TFYA87Fysik och mekanik
TDDD72Logik
TDDD80Projekt: Mobila och sociala applikationer
TSRT19Reglerteknik
TDAB01Sannolikhetslära och statistik
TSKS21Signaler, information och bilder
TDDD93Storskaliga 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 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:

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.

5 tankar på “Mjukvaruteknik vs Datateknik

  1. Emil Grehn

    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 😛

    Svara
  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.

    Svara
  3. 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.

    Svara

Lämna ett svar till Kim Avbryt svar

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut /  Ändra )

Google-foto

Du kommenterar med ditt Google-konto. Logga ut /  Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut /  Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut /  Ändra )

Ansluter till %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.