Föreläsningsöversikt Fö 1.1 - 1.3¶
- Introduktion
- Kursadmin
- Linux och datorer
- Python interaktivt och som skript
- Rättningsskriptet
- Programmeringskoncept
- Literaler
- Operatorer
- Variabler
- Datatyper
- Funktioner
- Villkor
Kursadministration¶
- 13 Föreläsningar, 7 lektioner, 7 labbar, 1 terminologiövning
- 3 Examinationsmoment, LAB1, LAB2 och DAT1
- LAB1, U/G, 3 hp
- Introduktion till laborationsmiljön
- Grundläggande Python-uppgifter
- 4 Mindre laborationer
- LAB2, U/G, 3 hp
- 3 Större laborationer
- DAT1, U/3/4/5, 2 hp
- Datortenta (2026-06-03) OBS! Preliminärt
- Kurshemsidan har denna och all annan information ni kan önska.
Digitala kontaktytor¶
- Kurshemsida
- https://www.ida.liu.se/~TDDE44/
- All kursinformation hittar ni här, inkl. föreläsningsbilder och kontaktuppgifter till personal på kursen.
- Webreg
- https://www.ida.liu.se/webreg3/TDDE44-2025-1
- (alternativt https://www.ida.liu.se/webreg-beta/TDDE44-2025-1)
- Anmälan till pargrupp.
- Resultatrapportering
- Sendlab för inlämningar - ev. feedback kommer via mail från Sendlabsystemet.
- (Lisam används inte i denna kurs annat än för en uppsättning automaträttade uppgifter.)
Skicka kursrelaterad e-post¶
- Skicka endast från er LiU-adress
- (mail från externa adresser fastnar ofta i LiUs spamfilter)
- Ha med kurskoden i ämnesraden
- Om ni läst en annan kursomgång - inkludera i mailet vilken kursomgång ni först läste kursen
Får man använda ChatGPT (eller Copilot eller Claude, etc.)?¶
- Enkla svaret: Nej.
- All kod du lämnar in skall vara skriven av dig och din labbpartner.
- Allt annat klassas som akademiskt fusk.
- Akademiskt fusk → Disciplinnämnden → Avstängning från studierna.
- Men om man bara använder ChatGPT som en extra labbassistent?
- Tillåtet, men:
- ChatGPT är ofta en dålig pedagog och blir väldigt lätt en krycka.
- Du upptäcker kanske först på tentan att förståelse saknas.
- Läs mer på kurshemsidan: https://www.ida.liu.se/~TDDE44/tips-och-resurser/genai/
"Men i verkligheten kommer jag ju kunna använda generativ AI"¶
- Wolfram Alpha, Mathematica, eller MATLAB klarar allt som tas upp i alla grundläggande mattekurser.
- Betyder det att du inte behöver kunna Linjär Algebra, Envariabelanalys, Flervariabelanalys, etc.?
- Tänk på den här kursen och grundläggande programmeringsfärdighet på samma sätt.
Laborationer¶
- Inte som labbar i naturvetenskapliga kurser.
- Fokus på problemlösning snarare än demonstration.
- Mer likt räknestugor/inlämningsuppgifter i mattekurser.
Lektioner och labbar under VT1¶
- Görs i par som man anmäler i Webreg:
- https://www.ida.liu.se/webreg3/TDDE44-2026-1/LAB1
- Hitta partner först, anmäl sen.
- Prata med er assistent om ni inte hittar en partner.
- Genomförs i PUL (Linux-datorsal).
- Ej obligatorisk närvaro, men labb 2-4 måste redovisas innan de kan lämnas in.
- Det finns specifika redovisningstillfällen schemalagda i TimeEdit
- Lektioner: Övningsuppgifter som ni bör göra
- Laborationer: Uppgifter som ni måste göra
Inlämning¶
- Inlämning i systemet Sendlab.
- Pythonuppgifterna rättas med automaträttningsskript.
- Rättningskriptet genererar en hash-kod när ni är godkända, denna sparar ni i en txt-fil som ni skickar in i Sendlab här
- https://www.ida.liu.se/sendlab/student/sendprevalidated?code=tdde44_pyuppg_vt26
- Laborationerna redovisas för er assistent som sedan låser upp Sendlab åt er.
- QR-kod för upplåsning hämtar ni här: https://www.ida.liu.se/sendlab/student/request_validation?code=tdde44_labbar_vt26
- Assistenten scannar den och låser upp er inlämning.
- Ni skickar sedan in kod i Sendlab här: https://www.ida.liu.se/sendlab/student/sendprevalidated?code=tdde44_labbar_vt26
Förändringar sedan förra kursomgången¶
- Delvis omarbetade föreläsningar.
- Linux-introduktion flyttad till separat moment.
- Pythonuppgifter och rättningsskript rejält omarbetade.
- Labb 6 kommer att revideras ned till något mindre omfattning.
Hur kommer föreläsningarna se ut och vad är deras syfte?¶
Introduktion till Unix och GNU/Linux på LiU
Vad i hela fridens namn, jag har ju knappt använt en dator med tangentbord förut?!
Operativsystem (OS)
- Ett program som styr över (opererar) själva datorn och dess maskinvara.
- Alla övriga systemprogram (program som används av andra program) och applikationer (program som används av datorns mänskliga användare) arbetar på nåder av operativsystemet.
- Operativsystemet startar andra program, ger dem tillgång till hårdvaruresurser som minne, nätverk eller kringutrustning och ser till att andra program inte hindrar varandra eller skadar datorn.
PUL - Programutvecklingslaboratorium (Linux-datorsal)
- PULen finns i B-huset innanför ingångarna B 25 och B 27
- Schemat i TimeEdit har kartlänk till MazeMap
- Användning utan för schemalagd tid
- Fritt fram 24/7/365 om det är olåst och inte står något annat på dörren.
- Om det är bokat av annan kurs kan ni dock bli ombedda att vara tysta vid genomgång eller gå om det är platsbrist.
- Obs! Salar kan vara schemalagda fram till 21.00 på vardagar (och ibland på helger under tenta-p).
Att interagera med en dator
Hur brukar det se ut?
LiUs Linuxmiljö
- Operativsystem: GNU/Linux (Ubuntu 22.04)
- Inloggning med LiU-ID
- Möjlighet att logga in från egen dator via Remote-SSH i VS Code
- Se LiUs studentsidor samt kurshemsidan för mer info
Terminalen som gränssnitt
Vadå gränssnitt?
- Engelska: interface
- Gränssnitt - platsen där två olika system möts och kommunicerar med varandra - något som ligger mellan två olika system och genom vilket systemen kommunicerar med varandra.
Kommandoradsgränssnitt (CLI - Command Line Interface)¶
För er andra autister i salen (ni är sedda ❤️)¶
- Terminalemulatorn/terminalen
- Tillhandahåller funktionalitet för skalprogram att visa text och ta emot tangentbordstryck från användaren. Själva "fönstret".
- Skalet/skalprogrammet (eng. shell)
- Tillhandahåller ett interaktivt gränssnitt för att köra kommandon i operativsystemet.
- Startas automatiskt när vi öppnar terminalprogrammet.
- En typ av interpretator, som tolkar text och utför instruktioner.
- Prompt
- Sekvens av tecken som visar att skalet är redo att ta emot ett kommando.
- Tecknet
$används ofta för att representera en godtycklig prompt i dokumentation och exempel.
- Konsol
- En specialterminal som tillhandahålls direkt av ett program för att kommunicera specifikt med det programmet, t.ex. av operativsystemets kärna (eng. kernel).
För er andra (ni är också sedda ❤️)¶
- Använd terminal, konsol, skal, kommandoraden, osv. som synonymer.
- Det är ok.
För tydlighet¶
- Jag vet att jag ser uråldrig ut, men textbaserade gränssnitt var faktiskt nytt för mig när jag började på universitetet också.
- Jag är inte så gammal.
- Kursassistenterna, Charlie och Andreas, å andra sidan. De är så gamla.
Varför CLI år 2026?¶
- Är det inte sjukt förlegat och gammalmodigt?
- Är det inte krångligt att använda?
- Måste man verkligen lära sig alla kommandon utantill?
Varför CLI: Unix-filosofin¶
- Varje skalkommando och program ska göra en sak, och göra det väl.
- Mer komplexa problem löses genom att koppla ihop dessa enklare kommandon och program.
- Klassiskt ingenjörsmässigt tänkande.
Varför CLI: Flexibilitet¶
- Textgränssnitt är mycket enklare att bygga än grafiska gränssnitt, och kan därför utökas och anpassas snabbt.
- En applikation behöver bara kunna kommunicera med text för att kunna integreras med alla andra skalprogram och -kommandon.
- Arbete i textgränssnitt är mycket enkelt att automatisera.
Varför CLI: Resurshushållning¶
- Textgränssnitt kräver väldigt små resurser, både av datorn där de körs, datorn där användaren sitter, och nätverkskopplingen mellan dem.
- Ja, remote-arbete via textgränssnitt existerade nästintill från start.
Varför CLI: Gilla läget¶
- Nästan alla produktionsmiljöer för modern mjukvara och mjukvaruutveckling är primärt textbaserade.
- Alltså: Även om inga andra argument vinner över dig, så är detta den verklighet vi måste förhålla oss till.
Varför CLI: Viktigast för vår del¶
- Textgränssnitt kräver i någon utsträckning samma typ av tänkande som programmering.
- Blir vi bra på det ena blir vi troligtvis bra på det andra.
Fine, men om jag hatar bash specifikt?¶
- Kommandona som finns i skalet är i princip desamma oavsett vilket skal du använder.
- Det som skiljer olika skal är sådant du främst märker av när du redan är van terminalanvändare.
- Med det sagt, på LiUs system finns också tcsh förinstallerat.
- Skal är också oftast så små att du kan installera dem i din egen hemkatalog (men hur man gör det är definitivt överkurs).
- Själv använder jag fish till vardags (eftersom jag är för gammal och bekväm för att konfa upp zsh ordentligt).
- Xonsh blandar Python med mer traditionella skalkommandon, men jag har inte testat själv så glhf.
Tangentbordet vi alla ser oftast?¶
"Riktiga tangentbord"¶
- Inte bara för inmatning av tecken.
- Kanske självklart, men ni kommer att hata programmering och att använda terminalen så länge ni måste sträcka er efter musen för operationer som ni gör hundratals gånger om dagen eller skriva samma långa kommando 17 gånger.
- Börja tänka i termer av "finns det ett kortkommando för det här?" när du redigerar i VS Code.
- Använd piltangenterna och tab-tangenten i terminalen, annars blir du galen.
- Du kan också söka bland dina tidigare körda kommandon i bash genom att trycka Ctrl+R.
Måste man ha ett jätteavancerat specialtangentbord för att bli en bra programmerare?¶
Nej, bara jättejobbiga hipsters och supernördar har sånt trams¶
fish.)