itgk-kurs-2021/main.md

11 KiB

ITGK Teori-kurs

Note: Introduksjon


OBS: Opptak

Note: PVV sin youtube-kanal

selv-introduksjon

Angående forelesningen

Planen min er å gå over alle temaene nevnt i pensum. Kommer til å nevne en del biter som ikke nødvendigvis er viktig for pensum, men som er viktig for å forstå innholdet


Generelt

Hva er IT

Kort Historie


Folk som er viktige

  • Von Neumann

Et par begreper:

  • PC
  • Operativsystem
  • Abstraksjon
  • Transistorer
  • IC
  • Hardware
  • Software
  • Kernel
  • WWW/Internet
  • High level/Low level
  • bit

Note: Operativsystem -> Ressursallokering -> Kernel -> Grafisk brukergrensesnitt


  • PC



Enhet Størrelse
byte 8 bits
kilobyte \(1000\) bytes
megabyte \(10^6\) bytes
gigabyte \(10^9\) bytes
terabyte \(10^{12}\)
petabyte \(10^{15}\)
exabye \(10^{18}\)
Enhet Størrelse
byte 8 bits
kilobyte \(1000\) bytes
megabyte \(10^6\) bytes
gigabyte \(10^9\) bytes
terabyte \(10^{12}\)
petabyte \(10^{15}\)
exabye \(10^{18}\)

Datatyper

  • Integer
  • Character
  • Float
  • Array
  • String

Note:

char -> ASCII 7b, Extended ASCII 8b, UTF-8

Finnes flere, men disse

Objekter


Tallsystemer

Note:

Forventet å kunne octal, binær, heksadesimal

går tom for siffer

delbarhet

hexadesimal i 4 binær chunks om gangen octal i 3 binær chunks om gangen revers

lurt å trene på

brukt ca. 20 min


Slide med konversjon fra binær til octal og heksadesimal


Negative tall

Signed magnitude

bruker første biten

0000 = 1000 kaster bort en plass

Løsning: Twos complement:

0001 = 1 0000 = 0 1111 = -1

1000 = MIN_INT

Algoritme:

  • finn ut hva minste negative tall er
  • ta resten av bitsene, og konverter til desimal
  • regn ut offsett

Flyttall

>>> 0.1 + 0.2
0.30000000000000004

\[ (+,\ \ 4,\ \ 1949284) = +1.949284 \cdot 10^4 = 19492.84 \]

Note:

Matematisk tilnærming

Signed bit, exponent - 2^?, signifikant?

består av 3 biter, kan gi rare utregninger iblant

Opphøyd i 10, men i virkeligheten opphøyd i 2

Ikke veldig viktig, men kan være oppklarende.


Hardware

  • Datamaskin

Datamaskin

Note:

Består av mange forskjellige biter. datamaskin er bare et begrep vi bruker. Kan gå galt på veldig mange lag i prosessen. Moores law, antall transistorer i en IC dobles hver 2. år.


Hovedkort (Motherboard)

Note:

Limet som fester alle de andre bitene sammen. Inneholder litt logikk for konfigurasjon av alle bitene, men lite ellers.


CPU

Note:

Viktigste biten. Gjør alle beregningene. Består av 3 biter, kontrollenhet, minneenhet, ALU Kjører raskt, gHz Har et visst sett med ting den kan gjøre, kalt et instruksjonssett. Setter du disse på rad, så har du et program.


Fetch Decode Execute Cycle (De 5 stegene)

Note: 5 steg hver gang den skal kjøre en instruksjon

PC - program counter Branching - hopp til andre steder/loop Kjører en instruksjon for hver klokkesykel, men gjør flere steg samtidig. Verdt å merke seg.


Minne

Primary

  • Volatile
  • Random Access

Secondary

  • Nonvolatile
  • Sequential Access?

Note:

Primær - RAM tilfeldig access - kan nå hvor som helst øyeblikkelig volatilt - uten strøm så forsvinner dataen.

Sekundær - Harddisk Tregt - cd som spinner Sekvensiell aksess - Må lete for å lese på riktig sted. ikke volatilt - holder på data uten strøm SSD - Nesten random access, ligner på ram, men er ikke volatil CD, DVD, Ekstern harddisk, USB, osv.


Digital Representasjon


Analog/Digital

  • ADC - inn på computeren

  • DAC - ut fra computeren

Note:

Analog kan du måle bortimot så nøyaktig du vil Digital har et visst sett med 0 og 1


Piksler

Note:

Piksler er en måte å representere bilder En piksel er en liten bit av bildet, med en farge. Ofte tilsvarer 1 piksel 1 LED på skjermen Den fargen er representert som en sammensetning av 3 farger Pleier ofte å være RGB


RGB

Hver verdi er mellom 0 og 255

Kan derfor representeres som et hexadecimal med 6 tegn

Farge Rød Grønn Blå
#283681 28\(_{16}\) 36\(_{16}\) 81\(_{16}\)
#FF0000 FF\(_{16}\) 00\(_{16}\) 00\(_{16}\)
#C0FFEE C0\(_{16}\) FF\(_{16}\) EE\(_{16}\)
#FFFFFF FF\(_{16}\) FF\(_{16}\) FF\(_{16}\)
#000000 00\(_{16}\) 00\(_{16}\) 00\(_{16}\)
Farge Rød Grønn Blå
#283681 \(40_{10}\) \(54_{10}\) \(129_{10}\)
#FF0000 \(255_{10}\) \(0_{10}\) \(0_{10}\)
#C0FFEE \(192_{10}\) \(255_{10}\) \(238_{10}\)
#FFFFFF \(255_{10}\) \(255_{10}\) \(255_{10}\)
#000000 \(0_{10}\) \(0_{10}\) \(0_{10}\)

Note:

Regn ut 1920x1080 x 24 bits


PAUSE


Lyd

  • Bør være dobbelt så ofte som høyeste frekvensen

  • Bitdybde (16 bit er standard)

\[ 16\ bits \cdot 44100\ Hz \cdot (3 \cdot 60)s \cdot 2\ kanaler \]

Note:

tegn en bølge, og vis frekvensen


Encoding og Komprimering

  • "Hvordan tolke dataen"
  • Lossless vs lossy

Note:

Alt er 1 og 0, men det kan tolkes på forskjellige måter.

Grunnen til at de ofte diskuteres sammen


Eksempel på komprimering

\[ AAAAAAABBBBAAAAABB \]

\[ A6B4A5B2 \]

Note:

Rart for tekst, men gir mening for bilder -> Runlength encoding


Eksempel på lossy komprimering

Dette er en eksempelsetning.

Dte e en eksmplstnig

Note: ikke vanlig for tekst, men akseptabelt for video/lyd/bilde Gjøres ofte på tjenester som messenger.


Algoritmer

Note: Beskriver stegvis og nøyaktig hvordan man løser et problem Uten tolkning Pseudokode


(Eksempel på pseudokode)


Kompleksitet

\[ \mathcal{O}(1) \]

def f(lst):
  print('Hi!')

\[ \mathcal{O}(n) \]

def f(lst):
  for item in lst:
    print(item)

\[ \mathcal{O}(n^2) \]

def f(lst):
  for item in lst:
    for itemOnceMore in lst:
      print(item, itemOnceMore)

Note: brukes mer om dere skal programmere mye


Sorteringsalgortimer:

  • Bubble sort: \(\mathcal{O}(n^2)\)
  • Merge sort : \(\mathcal{O}(n\ log\ n)\)

Nettverk


Internett

  • Hva er det

Historie

  • ARPAnet

Note: Sponset av Dep. of defense, USA Kjellermaskiner, matte Ble ikke brukt aktivt hele tiden Overføre instruksjoner Maksimal utnyttelse Flere universiteter koblet seg på Ikke veldig planlagt


5 lags modellen

Note: pakker pakket inn i hverandre


Physical layer

Note: Medium for kommunikasjon mellom 2 eller flere endrepunkter


Note: Etablert: Kommunikasjonsmedium

Stabil overføring, og kontakt med andre ender


Network layer

Note: Etablert: Flere computere er koblet sammen

Kommunikasjon gjennom flere computere.

Oppfører seg litt som postkontorer


Transport layer

Note: Etablert: Link over mange computere.

Stabil og sikker kommunikasjon til tross for forsvunnede pakker,


Application layer

Etablert: Stabil og sikker kommunikasjon.

Applikasjonsspesifikk data.


Programvareutvikling


Note:

Løs tidligere eksamener

Crash course