OOP1 Flashcards

1
Q

Vad är ett framework?

A

Framework är en programmeringsplattform som kan innehålla olika kodspråk. Förenklat är det en plattform eller ram för programmering. .NET är ett framework.

Framework, eller ramverk, är en kodsamling som
möjliggör utvecklingen av mer komplexa applikationer

(iOS, Android, Windows, Linux) exmepler på frameworks.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Förklara vad terminalen är?

A

Terminalen är ett sätt att navigera sig runt alla sin filera på sin dator och som man kan använda för att mata in data.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Vad är en IDE? Ge exempel på ett IDE.

A

Integrated Development Environment
En utvecklingsmiljö. Innehåller en textredigerare där vi kan skriva vår kod.
Hittar syntaxfel och ger förslag när vi programmerar. Genom IDE:t kan du köra dina program.

VsCode, vsStudio,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Vad är en parser?

A

En syntaxanalyserare. Man kan översätta det till tolk på svenska. När man matar in kommandon och läser in datafiler så behöver man en parser.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Vad är en kompilator?

A

En kompilator tolkar programkod (läsbart av människor) och gör om den till
maskinkod, bytekod (som endast kanläsas av andra parsers) eller något annat
språk.

All kod tänkt att användas med .NET kompileras till Bytekod
för .NET’s runtime.

● .NET kompilerar koden till maskinkod under körning, detta
kallas för Just In Time-kompilering.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Förklara vad en algoritm är?

A

En algoritm kan sägas vara instruktioner hur en dator skall lösa en uppgift. Man liknar detta ofta vid ett recept där man har ett antal ingredienser som skall sättas ihop enligt en tydlig instruktion. I datorn använder man istället programmeringsspråk för att beskriva hur receptet skall tillagas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Vem var Alan Touring?

A

Han var den genom sin algoritm som kunde översätta tyskarnas meddelanden. Han fick fram vart tyskarna var och hur dom skulle kunna anfalla.

Den har ett nuvarande tillstånd (state) som i praktiken i
dagens datorer motsvarar minnet (hårddisk + RAM)

Den har ett känt antal instruktioner den kan använda
för att ändra sitt tillstånd.

En dator är en universell turing maskin, vilket program
som helst kan i teorin köras på alla andra universella
turingmaskiner, förutsatt att instruktionerna skrivs om på
ett tolkningsbart sätt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Ge exempel på någon algoritm.

A

Bubble sort och Merge sort. Sorterar på olika sätt sin kod.
Facebook
Google
Deep Learning
AI
Självkörande bilar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Vad är en iritation?

A

Iteration är ett annat ord för upprepning. Inom programmering handlar detta om att en funktion eller process åstadkommer något genom att upprepa beräkningar eller andra operationer tills ett önskat resultat uppnåtts

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Vilket framwork kompilerar och parsar c#?

A

C# kompileras och parsas (tolkas) av .NET frameworket.

Javascript parsas av webbläsaren

HTML tolkas av en webbläsaren (OBS: inget
programeringsspråk)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Källkod?
byteskod?
maskinkod?

A

Källkoden
är läsbar av människor. Likt det mänskliga språket. Inte optimerat för snabb körning.

Byteskod
är ej läsbart av människor, Läsbart av .NETs parser
Plattformsoberoende
Delvis optimerat för snabb körning

Maskinkod
Ej läsbart av människor,
“Ettor och nollor” BinbärKod.
Optimerat för snabb körning och är beroende av en plattform. Instruktioner för en processor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Vad är en applikation?

A

Ett program är en applikation.

En applikation är en samling kod som är redo att användas i en given miljö och lösa olika problem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Vad menas med miljö?

A

Där programmet ska användas i. Att förutsättningarna finns. Processor, kärna, parser framework. i Vissa sammanhang kallas detta för stack. En hög med frameworks.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Vad kallas Framework och parser gemensamt för?

A

Runtime! Runtime är också den tid programmet är till för att köras.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Vad är programkod?

A

Är instruktioner till programmet och hur det ska (parsas) tolkas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Vad är det för skillnad på c# och .Net?

A

C# är ett programmeringsspråk och .Net är ett ramverk “FrameWork”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Vad är skillnaden på en algoritm och ett program?

A

En algoritm är en serie av instruktioner för att lösa ett problem.

Ett program är en samling körbar data för att lösa ett eller flera problem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Vad är The Structure Theorem?

A

Ett resultat i ett programmeringsspråk.

Sequence (kör framåt)
Repetition (While)
Selection (if)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Vad är pseudokod?

A

Ett sätt att förklara algoritmer. En slags skiss för att förklara ett programmeringprogram. Används ofta i ett tidigt skede.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Vad är flowchart?

A

Även kallad flödesdiagram. Detta används i praktiken för dokumentation och som en typ av visuell pseudokod. Det är en arbetssprocess, lösning på problem. En programåtgärd.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Flödesdiagram. Start/slut symbol.

A

Avlång cirkel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Flödesdiagram. Tillstånd.

A

avlång fyrkant

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Flödesdiagram. Beslut.

A

Fyrkant

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Flödesdiagram. Inmatning.

A

Sne fyrkant

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Vad är Big O Notation?

O(n)
O(n2)
O(2N)

A

Beskriver effektiviteten i en algoritm - med andra ord , den tid det tar för en algoritm för att köras som en funktion av storleken för insignalen till samma algoritm.

O(n) - Växer i samma takt som den inmatade data ökar
O(n2) - Varje inmatning växer komplexiteten med två. Nästlade iterationer.
O(2N) - Ökar exponentiellt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Vad är kodstandard?

A

Det är regler och riktlinjer hur man döper variabler, metoder, klasser osv. Det finns olika kodstandader. Microsoft dokumentation. Jobb har olika standards.

27
Q

Vad är Git och Github?

A

Git är en versionshanteringssystem. Varje klient(dator) har en egen historik. Man pull och push till varandras gitrepon.

Github är en server-tjänst där man kan ladda upp sina egna gitrepon.

28
Q

Vad är OOP?

A

Det är objekt orienterad programmering. Det är en slags teknik som har en komplett metod för systemutveckling. Man fokuserar på substantiven. Ett tankesätt

29
Q

Vad är ett objekt?

A

Ett objekt är en instans av en klass. Objekt skapas från klasser. Du har en bil-klass. Där skapar du objekt med namnen Mercedes, Honda, Volvo etc. Ett objekt kallas även för instans. Det är en representation av klassen.

30
Q

Vad är en instans?

A

Är ett specifik objekt skapad av en viss klass. Som är sparat i en variabel.

31
Q

Ska ett nytt objekt.

A

Students “myStudents = new Students()

32
Q

Vad är arv för något?

A

Det är ett grunkoncept inom OOP som ska öka kodens återanvändbarhet. PÅ detta sätt använder vi oss av mindre kod och.

33
Q

Varför ska man använda OOP?

A

För att hantera komplexitet. För att kunna skapa nivåer och dölja information. Skapar återanvändingsbar kod. Abstraktion.

34
Q

OOP. En metod för systemutveckling.

A

Förstår problemet.
Bestäm hur programmet ska användas.
Vilka objekt (substantiv) ska användas?
Modellera klasserna.

35
Q

Vad menas med en variabels livslängd?

A

Efter att kodblocket tar slutet så kan man inte längre använda sig av varibeln. Försvinner från datorns minne.

36
Q

Vad är garbage collection?

A

När objekt längre inte används så samlar “garbage collection” ihop och städar bort från minnet.

37
Q

vad är en reference typ.

A

Till skillnad från värdetyper så lagrar inte
referenstyper deras värde direkt i variabeln.
Istället lagrar variabeln den minnesadress där
värdet lagras. Den pekar på en minnesplats.

38
Q

Vad är en värdetyp?

A

En typ är en värdetyp om den har ett datavärde i sitt
eget minnes-utrymme.

○ bool
○ byte
○ char
○ double
○ enum
○ float
○ long

39
Q

Vad är IS?

A

is operatorn används för att kontrollera om run-time typen av ett objekt är kompatibel med den givna typen eller inte.

40
Q

vad är as?

A

operatorn gör konvertering mellan kompatibla referenstyper eller nullbara typer.

41
Q

vad är typeOF()?

A

är en operator som tar in en typ,
d.v.s en klass, primärtyp eller interface.

42
Q

Varför använder vi oss av Debuggern?

A

För att kolla vad som händer i koden medan den körs. Man kan sätta breakpoints i koden för att se vilket värde våra olika variabler har.

43
Q

vad är try/catch?

A

Det kan man använda så att programmet inte kraschar. Kort sagt försöker C# köra koden. Istället avbryts körningen, och programmet hoppar istället ner till det catch-block som står under.

Skapa egna exceptions (Att det går att skapa är det viktiga att veta)

44
Q

Method overriding?

A

Om en ärvd childklass har samma metodnamn. Så kan vi använda oss av overriding. Men då måste vi använda virtual i baseklassen.

45
Q

Method overlooading?

A

Man kan använda samma namn på metoderna i samma klass men med andra inparametrar.

46
Q

Vad är polymormism?

A

Det betyder att det har många former. Det händer när klassar använder sig av arv tex.

47
Q

vad är namespace?

A

används för att organisera kod och undvika namnkonflikter

48
Q

Vad är en konstruktor?

A

En konstruktor är en speciell typ av metod som har samma namn som klassen och som anropas när vi skapar en instans av klassen.

Använd konstruktorer för att ange standardvärden, begränsa instansiering och skriva flexibel, lättläst kod

49
Q

vad betyder inkapsling?

A

Inkapsling kan man se som ett skydd för en klass så att den inte kan användas på fel sätt. Det kan också handla om att inte visa/exponera för många saker, speciellt inte sånt som inte är relevant för den som ska använda klassen.

50
Q

Private
Static
Void
Public
Protected
Virtual
Abstract

A

Private - funktioner kan endast nås inom egna klassen

Static - Du behöver inte en instans av ett objekt för att anropa funktionen

Void - returnerar ingenting

Public - funktioner kan nås inom andra klasser

Protected - endast tillgänglig i den nuvarande klassen och tillhörande subklasser.

Internal - kan typer eller medlemmar nås från kod som ingår i samma kompilering.

Virtual - innebär att den är “överridningsbar” i en subklass.

Abstract - Detta är klasser som inte kan instansieras, vilket innebär att det inte går att skapa objekt av klassen

51
Q

Vad är en parameter?

A

Det är när man för in data i en metod.

52
Q

Out och ref?

A

Med out och ref kan man istället få en pekare till platsen i stacken – vilket gör att man inuti metoden kan ändra variabelns värden direkt.

53
Q

SOLID?

A

SIngle resposibility princple- En klass/metod/objekt ska ha endast ett enda ansvarsområde och därmed endast ett enda skäl att ändras.
Open closed Principle - Klasser ska vara öppna för utökning (genom arv), men låsta för modifiering.
Liskov Substitution Principle - Objekt av en klass ska kunna ersättas med objekt av subklasser utan att programmets funktion ändras.
Interface Segregation Principle - Gränssnitt ska vara många och enkla, inte få och omfattande, så att ett program inte är beroende av metoder som det inte använder.
Dependecy Inversion Principle - Klasser ska inte vara beroende av varandra utan av abstrakta gränssnitt som tillhandahålls på en högre nivå.

54
Q

Vad är en identifier?

A

Det kan vara ett namn på en metod, klass elller variabel

55
Q

Vad betyder CLI?

A

Common Language Infrastructure. Är ett gränssnitt som används i .NET. Även kallad kommandotolken

56
Q

Nämn några valueTypes

A

bool
byte
char
double
enum
float
long

57
Q

Nämn några referencetypes

A

string, array, objekt

58
Q

Vad är en ENUM?

A

Är värdetyper med en uppsättning namngivna konstanter. Keywordet enum används för
att deklarera dem.

Enums kan innehålla ints men också floats, byte, double och andra primitiva typer,
men måste då castas.

59
Q

Förklara Interface

A

Vi säger att ett interface är ett kontrakt där en klass lovar att erbjuda en viss uppsättning metoder.

Ett interface innehåller ingen kod som en klass kan återanvända, det är bara ett löfte om att interfacets metoder skall återfinnas inuti klassen.

När man vet att en klass implementerar ett visst interface så vet man också vad man kan göra med den klassen. Man vet att klassen kan hanteras på ett visst sätt.

60
Q

Vad är en abstrakt klass?

A

Det går inte att skapa objekt av en abstakt klass. Detta är klasser som inte kan instansieras. I stället får man definiera en klass som ärver den abstrakta, och på så sätt skapa objekt.

61
Q

Vad betyder instans?

A

Ordet instans betyder ett objekt av en viss typ. När en ny instans skapas så kan man säga att en ny kopia skapas

62
Q

Vad är en metod?

A

Det är en namngivet kodblock som gör att du slipper skriva samma kod om och om igen. Genom att skriva ens namn så anropar du metoden.

63
Q

vad är CLR

A

Common Language Runtime. Det är en virtuell maskin. Den implementerar CLI