Programvaruteknik

Nyttig information för och av studenter på Programvaruteknik på Mittuniversitetet.

View on GitHub

Innehållsförteckning

Inledande tips

Kurslitteratur

Elektroniskt

Biblioteket som har ungefär allt: Library Genesis (googla).

Är LibGen blockerad? Byt till en DNS-server som inte tvingats ljuga för dig, så kommer det förmodligen att fungera. Det finns många öppna sådana. De som tillhandahålls av Google (8.8.8.8 och 8.8.4.4) och Cloudflare (1.1.1.1) har lättihågkomliga IP-adresser.

När LibGen sviker finns även:

Döda träd

Lån, campusstudenter: universitetsbiblioteket

Lån, student ej i Östersund men i Sverige: KB:s tjänst Libris vet vad som finns var

Köpa: Många böcker finns väldigt billigt begagnade på Abebooks

Adlibris och Bokus har studentrabatt via Mecenat.

Skriva referenser

Många kurser saknar moment som involverar akademiskt skrivande, men när det väl gäller är det IEEE-stil som används:

Sök efter ieee citation style för massor av fler guider och exempel.

Zotero (som kan integreras med LibreOffice) kan vara nyttigt. Institutionen har i skrivande stund ODT-mallar som standard…

Ställa frågor

Att köra fast när du programmerar är inget konstigt. Var inte rädd för att ställa frågor. Men tänk på hur du ställer frågor! Var inte rädd för att visa kod. Ge tillräckligt mycket information för att folk ska ha en sportslig chans att faktiskt kunna hjälpa dig, annars blir det lätt en tidsödande gissningslek. Se t.ex. How to create a Minimal, Reproducible Example.

Har du ett GitHub-konto kan du klistra in kod i en gist och länka (gists kan tas bort senare). Annars kan du använda någon pastebin-sajt (https://hastebin.com/, https://paste.ubuntu.com/ osv).

Mindre kodsnuttar kan du posta direkt på Discord. Se till att omge dem med tre backticks - ```

För syntax highlighting kan du även ange språk. T.ex.:

```cpp std::cout << "C++-kod weee" << std::endl; return 0; ```

Vilket då kommer visas som:

cpp std::cout << "C++-kod weee" << std::endl; return 0;

Mjukvara

IDE:er och texteditorer JetBrains har en mängd populära IDE:er för

olika språk (C++, Java, PHP, JavaScript, Python, etc). De funkar alla på såväl Linux och Windows som Mac. Kostar normalt $$, MEN är gratis för studenter (använd din studentepostadress när du skapar konto). Särskilt för Python (Pycharm) och Javaprogrammering (IntelliJ IDEA) från Jetbrains att rekommendera.

Sublime Text (Linux/Windows/Mac) är ett trevligt alternativ om din dator krackelerar under tyngden av JetBrains-programmen. Proprietärt, men obegränsad trial.

vim/neovim och Emacs är fria, finns för alla plattformar under solen, har funnits i flera decennier och stora skaror fanatiska användare. Spacemacs för de två religionerna samman en smula: Emacs med Vim-keybindings per default.

Visual Studio Code (Linux/Windows/Mac) är ett snabbt och smidigt open-source alternativ som erbjuder många funktioner som traditionellt sett inte finns i texteditorer, som t.ex inbyggd terminal och stöd för versionskontroll. Visual Studio Code med Live Server, ESlint, Prettier och Stylelint är en stabil kombination för webbutveckling.

Language Server Protocol Language Server Protocol är ett protokoll

där tanken är att olika editors ska kunna ta del av samma språkverktyg och stöds av ex Microsoft, IBM, Red Hat, Facebook mfl. Principen är ganska enkel, i editorn installerar du ett plugin som fungerar som klient, sedan installerar du en server för de programspråk du använder i ditt operativsystem. Klienten använder då aktuell server för att implementera de funktioner som stöds av servern. Det gör att ex även Vim, Emacs, Sublime Text etc på ett enkelt sätt kan använda funktionalitet ifrån projekt med stort stöd inom respektive community. Se länken ovan för klient-/serveralternativ för olika editors och språk.

Förslag på klienter till vim

Plug-and-play lösningar som inte kräver så mycket konfiguration

För en lättviktsvariant som kräver lite konfigurering för varje språk

Samtliga klienter ovan är ganska väldokumenterade och har ett ganska stort antal användare.

Linux

Vilken som helst av de stora, vanligt förekommande distributionerna (Ubuntu / Mint / Debian, Fedora, Arch, osv. etc.) funkar bra för allt du kommer behöva göra under programmet. Senaste LTS-versionen av Ubuntu (LTS = long term support) är standardtipset: lätt att komma igång med och populärast (så lätt att googla problem).

Att ha en dator med enbart Linux är rekommenderat (eller dual-boota om du orkar mecka). Annars kan du använda VirtualBox (Linux/Mac/Windows), men det kommer att gå segare. Ett annat alternativ, om du kör Windows, är Windows Subsystem for Linux.

Användbara länkar för olika programmeringsspråk

Allmänt

C++

JavaScript, CSS, HTML

Olika saker men tenderar att användas tillsammans i kurserna på programmet.

Utbildningsplaner

Utbildningsplan årskull 2024

Kursrelationer

Kurser år 1

DT186G Programvaruteknisk Introduktionskurs

DT179G Programmeringens Grunder (Python)

DT151G Datorkommunikation med tillämpningar i Linux

DT146G Webbprogrammering med HTML5, CSS3 och JavaScript

Lär dig använda developer tools i Firefox eller Chrome. Ovärderligt/oumbärligt.

Om boken som används fortfarande är Internet & World Wide Web: How To Program, 5th Edition, rekommenderas den inte. Fungerar mer som ett utdaterat uppslagsverk än en guide för hur man bedriver webbutveckling.

Alternativ till den mycket utdaterade kurslitteraturen:

DT194G Mjukvaruutveckling

MA140G Diskret matematik för programmerare

DT188G Databaser, modellering och implementering

DT180G Objektorienterad programmering I

Använd IntelliJ IDEA (gratis studentlicens) för att göra livet drägligare.

Kurser år 2

DT182G Vetenskapligt skrivande & argumentation

DT181G Objektorienterad programmering II

DT190G JavaScriptbaserad webbutveckling

DT031G Applikationsutveckling för Android

DT042G Metoder och verktyg i mjukvaruprojekt

DT195G Operativsystem

DT183G Datastrukturer och algoritmer

DT167G Mjukvarusäkerhet

Kurser år 3

DT166G Presentation av ny teknik

DV033G Principer inom mjukvarutestning

DV032G Programmeringsparadigm

DT175G Artificiell Intelligens för agenter

DT002G Tillämpad datateknik

DT198G Användarcentrerad mjukvaruutveckling

DT133G/DT192G Självständigt arbete

Annat nyttigt

C++

PHP

Studentombud och rättigheter

Studentkåren i Östersund har ett heltidsanställt studentombud som kan hjälpa dig vid problem med universitetet. (“Alla studenter på Mittuniversitetet i Östersund kan få råd och medlemmar i kåren får dessutom ytterligare hjälp i form av att studentombudet företräder dem i ärendet om så önskas. Kårmedlemskapet ger det lilla extra.”)

Mittuniversitetets regel för examination säger bland annat:

Rättningstiden för examination vid Mittuniversitetet är högst 15 arbetsdagar. Rättningstid räknas från dagen efter examinationstillfället tills den dag resultatet redovisas. Om särskilda skäl föreligger kan avdelning besluta om undantag från denna regel efter samråd med berörda studenter.

och:

Datum för ny examination ska meddelas senast vid ordinarie examinationstillfälle. Tiden mellan meddelandet av resultatet av examinationen och ny examination måste vara minst två (2) kalenderveckor.

Se även Universitetskanslerämbetets vägledning Rättssäker examination.

Studenterbjudanden/-rabatter

Ändra den här sidan

Nåt som är fel? Nåt du vill lägga till? Den här sidan finns i ett GitHub-repo. Gör en pull request! (Eller hojta på Discord.)

Kramdown används som syntax.