Exhaustive Studieanteckningar: Grundläggande Programmering och Datortsvetenskap
Syfte med programmering och grundläggande koncept
Automatisera uppgifter: Programmering syftar till att göra receptiva processer snabbare, mer effektiva och mindre felbenägna. Man låter datorn utföra tråkiga eller repetitiva uppgifter automatiskt istället för att människor gör dem manuellt.
Exempel på automatisering:
Räkna ut poäng i ett spel.
Skicka mejl automatiskt.
Sortera bilder eller filer.
Skapa lösningar: Genom programmering bygger man verktyg, system och applikationer som löser specifika problem i vardagen eller arbetslivet. Det handlar om att bygga appar, spel och program som hjälper människor.
Exempel på lösningar: TikTok, Minecraft, bankappar och Spotify.
Kommunicera med datorer: Programmering innebär att ge datorn instruktioner på ett språk den förstår. Eftersom datorer inte förstår mänskliga språk som svenska eller engelska, använder man programmeringsspråk som:
Python
C#
Java
Grundläggande programmeringsbegrepp
Programmering: Processen att skriva instruktioner som en dator kan tolka och utföra. Det är i essens att skriva instruktioner till datorn (t.ex. "Visa texten Hej!").
Programmeringsspråk: Ett verktyg för att kommunicera med datorn, likt ett språk man använder för att "prata" med hårdvaran. Exempel inkluderar Python, C# och JavaScript.
Kod: De faktiska instruktionerna som skrivs i ett programmeringsspråk. Exempel:
Print("Hej!").Variabel: En behållare eller "låda" som lagrar data vilken kan ändras under programmets körning. En variabel har ett namn (identifierare) och ett värde.
Exempel:
Namn = "Julia",Ålder = 25.Python-exempel med datatyper:
name = "anna"(text/string)Age = 25(heltal/int)Height = 1.75(flyttal/float)isStudent = true(sanningsvärde/bool)
C#-exempel för utskrift:
Console.WriteLine("namn" + name);Console.WriteLine("ålder" + age);Console.WriteLine("längd" + height + meter);Console.WriteLine("Är student" + isStudent);
Konstant: En variabel vars värde aldrig ändras efter att programmet har startat. Ett typiskt exempel är .
Datatyper och Operatorer
Datatyper: Olika slags information som kan lagras. Variabler används för att lagra dessa för senare bruk.
Text (string): Exempel:
"Hej","Alex".Heltal (int): Exempel:
5,12.Decimaltal (float): Exempel:
3.14,1.52.Logiska värden (bool): Kan endast vara
TrueellerFalse(sant eller falskt). Exempel:ärHungrig = true.
Operatorer: Symboler som används för beräkningar och jämförelser (matte-tecken).
+: Plus-: Minus*: Gånger/: Delat==: Lika med (jämförelse)%: Modulus (returnerar resten vid heltalsdivision, t.ex. ).
Kodstruktur och Logik
Kommentar: Text i koden som datorn ignorerar. Den används bara för att hjälpa människor att förstå koden eller förklara syftet med en viss del.
Exempel Python:
# här räknar vi poäng.Typer av kommentarer:
Python:
#för enradiga,""" """(Docstring) för flerradiga.C#:
//för enradiga,/* */för flerradiga.
Indentering: Hur kod struktureras med indrag (mellanrum i början av raderna). I vissa språk, som Python, är detta kritiskt eftersom datorn använder indentering för att förstå vilka koddelar som hör ihop logiskt.
Exempel:
python if x > 5: print("Hej!") Här ser datorn attprinthör tillif-satsen på grund av indraget.
Block/Kodblock: Sammanhängande delar av kod som hör ihop, markerade med indrag eller klamrar. Kan liknas vid ett stycke i en bok.
Kontrollstrukturer: Villkor och Loopar
Villkor (if-satser/Conditions): Gör att programmet kan fatta beslut. Datorn kan välja olika vägar beroende på om ett villkor är sant eller falskt.
Exempel: Om spelaren har liv blir det "Game Over". Om man trycker på hopp-knappen ska karaktären hoppa.
Struktur: Består ofta av
if,else if(elifi Python), ochelse(alternativet som körs om inget annat stämmer).Logiska operatorer: Används för att kombinera villkor:
&&(and): Båda villkoren måste vara sanna.||(or): Minst ett villkor måste vara sant.!(not): Inverterar villkoret (sant blir falskt).
Nästlade if-satser: En
if-sats inuti en annan för att kontrollera flera beroende krav. Exempel:python if age >= 10: if ticket: print("Du får komma in")
Loopar: Konstruktioner som gör att kod kan upprepas flera gånger för att hantera repetitiva uppgifter effektivt.
Iteration: Varje enskilt varv som loopen kör sitt kodblock.
While-loop: Körs så länge ett specifikt villkor är sant.
For-loop: Körs ett bestämt antal gånger, ofta genom ett intervall (t.ex.
range(5)i Python som skapar talen ).Oändlig loop: En loop som aldrig tar slut för att villkoret alltid är sant (t.ex.
While True).Break: Avbryter loopen direkt i förtid.
Continue: Hoppar över resten av koden i nuvarande iteration och går direkt till nästa varv.
Input och Output (I/O)
Input: Data som användaren matar in i programmet.
Exempel:
namn = input("Vad heter du?").
Output: Resultatet eller informationen som programmet visar tillbaka för användaren.
Exempel:
print("Hej Julia!").
Formaterade strängar:
Python (f-strängar):
print(f"Hej {name}").C#:
Console.WriteLine($"Hej {name}");.
Algoritmer och Problemlösning
Algoritm: En tydlig följd av steg för att lösa ett problem, likt ett recept vid matlagning (t.ex. 1. Ta fram mjölk, 2. Blanda ingredienser, 3. Grädda).
Pseudokod: En förenklad, språkoberoende beskrivning av ett programs logik skriven på vanligt språk. Det är en planering och inte riktig kod ännu.
Flödesschema: En visuell representation av stegen i en algoritm med standardiserade symboler:
Oval: Start- och slutpunkter.
Pilar: Visar flödets väg.
Parallellogram: Inmatning eller utmatning (t.ex. "Ange namn").
Diamant: Beslut eller fråga (sant/falskt).
Rektangel: Aktivitet eller instruktion (t.ex. "Beräkna summan").
Hexagon: Förberedelse eller initiering.
Sortering: Processen att ordna element (stigande eller fallande ).
Bubble Sort: En enkel algoritm som jämför grannar och byter plats om de ligger i fel ordning. Dess tidskomplexitet beskrivs ofta som , vilket innebär att tiden ökar snabbt när mängden data ökar.
Avancerade Begrepp
Funktioner: Små, återanvändbara kodblock som utför specifika uppgifter. De hjälper till att organisera koden och möjliggör abstraktion (man kan använda funktionen utan att förstå exakt hur dess inre fungerar).
Argument: Information som skickas in till funktionen.
Returvärde: Det värde funktionen skickar tillbaka.
Void (C#): Indikerar att funktionen inte skickar tillbaka något värde.
Rekursion: När en funktion anropar sig själv istället för att använda en loop.
Moduler/Bibliotek: Förskriven kod som kan importeras (t.ex.
import mathi Python) för att använda färdiga funktioner som andra har skapat.Objektorienterad programmering (OOP): Ett sätt att bygga program med "objekt" som innehåller både data (t.ex. en bils färg) och funktioner (t.ex. att bilen kan bromsa).
Felhantering och Debugging
Syntaxfel: Fel i kodens struktur (som stavfel) som hindrar programmet från att köras.
Semantik: Kodens faktiska innebörd. Ett program kan ha korrekt syntax men göra fel saker logiskt (t.ex. räkna minus istället för plus).
Undantagshantering: Metoder för att fånga och hantera fel under körning så att programmet inte kraschar (t.ex. att säga "Du måste skriva ett nummer" om någon skriver bokstäver).
Debugging (felsökning): Processen att identifiera och rätta till buggar i koden.
Hårdvara och Mjukvara
Hårdvara: De fysiska komponenterna man kan ta på:
Processor (CPU): Datorns hjärna som utför beräkningar och bearbetar instruktioner. Den arbetar internt endast med maskinkod (ettor och nollor).
RAM (Primärminne): Korttidsminne som lagrar data tillfälligt medan program körs. Raderas när datorn stängs av.
Sekundärminne (Lagring): Permanent lagring för filer, program och operativsystem (t.ex. SSD eller hårddisk).
Moderkort: Kopplar samman och samordnar alla delar.
Grafikkort (GPU): Specialiserat för grafik och matematiska matrisoperationer.
In- och utenheter (I/O): Tangentbord/mus (inmatning) samt skärm/högtalare (utmatning).
Mjukvara: Program och operativsystem (Windows, macOS, Linux) som instruerar hårdvaran.
Kompilering och Exekvering
Källkod: Den textbaserade kod som programmeraren skriver.
Kompilering/Tolkning: Processen att översätta källkod till maskinkod som processorn förstår.
C#: Källkod Mellanliggande kod (IL) CLR (Common Language Runtime) översätter till maskinkod.
Python: Källkod Bytekod PVM (Python Virtual Machine) exekverar och översätter till maskinkod.
Körning (runtime): Det som händer medan programmet är igång och exekveras.
Datastrukturer: Listor och Arrayer
Lista (Python): Dynamisk datastruktur som kan ändra storlek och innehålla olika datatyper.
Array (C#): Datastruktur med fast storlek som bestäms vid skapandet.
Index: Positionen för ett element, börjar alltid på . Om
Fruits = ["äpple", "banan"], så ärFruits[0]lika med "äpple".Operationer:
Append(lägg till),Remove(ta bort),Len/Length(kolla antal element),Sortera.
Utvecklingsmiljö (IDE)
IDE (Integrated Development Environment): Programvara för att skriva och testa kod effektivt (t.ex. Visual Studio, VS Code, PyCharm).
Funktioner i en IDE:
Syntaxmarkering: Färgkodning av kod.
Autokomplettering: Föreslår kod under skrivandet.
Integrerad terminal: För att köra kommandon direkt.
Git-integration: För versionshantering.
SDK (Software Development Kit): Samling verktyg som behövs för att bygga program för en specifik plattform (t.ex. .NET SDK för C#).