Uvod u programiranje
Računar
Mehanizam iz Antikitere
Diferencijalni analizator
Diferencijalni analizator
Lehmer-ovo sito
MONIAC
Analitička mašina
Digitalni signal
Digitalni signal
Digitalni signal
Predstavljanje podataka
Kako računar pohranjuje podatke?
- Svi podaci na računaru su predstavljeni kao niz nula i jedinica
-
Bit: osnovna jedinica informacije
- može biti u jednom od dva isključiva stanja
- binarna cifra (binary digit)
-
Byte: 8 bita
- dovoljna količina memorije za pohranu slova ili malog broja
- upaljen/ugašen uzorak bita u bajtu predstavlja podatak pohranjen u bajtu
Kako računar pohranjuje podatke?
Pohranjivanje brojeva
Pohranjivanje brojeva
-
Bit predstavlja dvije vrijednosti 0 i 1
- Računari koriste binarni brojni sistem
- pozicije cifre \(j\) se dodjeljuje vrijednost \(2^{j-1}\)
- da bi se odredila vrijednost binarnog broja zbrajaju se pozicione vrijednosti na kojima se nalaze jedinice
- Limit jednog bajta: od 0 do 255
- 0 - svi biti nula
- 255 - svi biti jedan
- za pohranjivanje većih vrijednosti koristi se više bajtova
Konverzija \((10011101)_b\) u \((157)_d\)
Konverzija \((10011101)_b\) u \((157)_d\)
Konverzija \((1548)_d\) u \((11000110000)_b\)
1584 : 2 = 792
792 : 2 = 396
396 : 2 = 198
198 : 2 = 99
99 : 2 = 49
49 : 2 = 24
24 : 2 = 12
12 : 2 = 6
6 : 2 = 3
3 : 2 = 1
1 : 2 = 0
0
0
0
0
1
1
0
0
0
1
1
ASCII
Digitalni zvuk
Digitalne slike
Hardware i software
Računar radi samo dvije stvari!
1. Računa
2. Pamti
Hardware
Procesor
-
Centralna procesorska jedinica (CPU): dio računara koji izvršava program
-
najvažnija komponenta
-
bez procesora računar ne može pokretati programe
-
Radna memorija
- Radna memorija: mjesto gdje računar pohranjuje program prilikom izvršavanja, kao i podatke koje program koristi
-
Poznata i kao memorija sa nasumičnim pristupom (Random Access Memory or RAM)
- procesor može brzo pristupiti podacima u RAM memoriji
- nepostojana memorija koja se koristi za privremeni pristup prilikom izvršavanja programa
- sadržaj se briše prilikom gašenja računara
Sekundarna memorija
Sekundarna memorija
-
Sekundarna memorija: može čuvati podatke tokom dužeg vremenskog perioda
- Programi se tipično pohranjuju u sekundarnu memorija i učitavaju u radnu memoriju prema potrebi
-
Tipovi sekundarne memorije
- Čvrsti disk (HDD): zapisuje podatke magnetski na rotirajući kružni disk
- Čvrsti disk (SSD): brži od HDDa, bez pokretnih dijelova, pohranjuje podatke u memoriju stalnog stanja
- USB disk: prenosiv, nema fizičkog diska
- Optički uređaji: podaci zapisani optički
Ulazni i izlazni uređaji
Software
- Kontroliše sve što računar radi
- Osnovne kategorije
- aplikativni software
- sistemski software
Šta su programski jezici?
Komunikacija
sa računarom
To-do lista za računar
# Python program to check if the input number is prime or not
num = 407
# take input from the user
# num = int(input("Enter a number: "))
# prime numbers are greater than 1
if num > 1:
# check for factors
for i in range(2,num):
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num,"is a prime number")
# if input number is less than
# or equal to 1, it is not prime
else:
print(num,"is not a prime number")
Kako radi program?
Kako radi program
-
Procesor je dizajniran za izvršavanje jednostavnih operacija nad podacima
- primjeri: čitanje podataka, sabiranje, oduzimanje, množenje i dijeljenje brojeva, poređenje
- Procesor razumije instrukcije napisane u mašinskom jeziku koje su sadržane u njegovom skupu instrukcija
- Svaka marka procesora ima vlastiti skup instrukcija
-
10110000 – govori Intelovom procesoru da premjesti vrijednost u memoriju
- Prilikom značajnijih proračuna procesor mora izvršiti mnogo operacija
Kako radi program
Od mašinskog do asemblerskog jezika
- Nepraktično pisati kod u mašinskom jeziku
-
Asemblerski jezik: koristi kratke riječi za instrukcije umjesto binarnih brojeva
- Olakšava rad programerima
- Asembler: prevodi asemblerski jezik u mašinski
Od mašinskog do asemblerskog jezika
Jezici visokog nivoa
-
Jezik niskog nivoa: po prirodi sličan mašinskom jeziku
- primjer: asemblerski jezik
-
Jezik visokog nivoa: omogućava jednostavnije kreiranje snažnih i složenih programa
- Nije potrebno poznavanje rada procesora ili pisanje velikog broja instrukcija
- Intuitivnije razumijevanje
-
print(“Hello world”)
Kompajleri i interpreteri
- Programi napisani u jezicima visokog nivoa se moraju prevesti u mašinski jezik da bi se izvršili
-
Kompajler: prevodi jezik visokog nivoa u mašinski jezik
- Mašinski jezik se može izvršiti u bilo koje vrijeme
Kompajleri i interpreteri
-
Interpreter: prevodi i izvršava instrukcije napisane u jeziku visokog nivoa
- Koristi ga Python programski jezik
- Interpretira jednu instrukciju u datom trenutku
- Ne postoji odvojen program u mašinskom jeziku
- Izvorni kod (source code): izjave koje je napisao programer
Šta je potrebno za programiranje?
Jednostavan editor teksta
Interpreter ili kompajler
Koje su primjene programiranja?
Programiranje i arhitektura
Još analogija
- Pisanje knjige
- Kuhanje
- Pravljenje motocikla
- Slikanje
- Sport
O predmetu
- Nastavnik: Dr. Elmedin Selmanović
- Vanredni profesor na Prirodno-matematičkom fakultetu
- Direktor UTIC-a
- Interesovanja: digitalna obrada slike, računarska grafika i računarska vizija
- eselmanovic - pmf.unsa.ba
- Asistent: Adisa Bolić
- Najbolja studentica UNSA
- Interesovanja: vještačka inteligencija, kompjuterska vizija, algoritmi
- Spoljni saradnik u nekoliko IT kompanija
O predmetu
- Asistenti:
- Adisa Bolić
- Dr. Džana Drino
- Meliha Kurtagić
O predmetu
-
T. Gaddis: Starting out with Python, 5th Edition, 2020
O predmetu
- E. Selmanovic, S. Delalić: Uvod u programiranje, 2019
O predmetu
Testovi tokom nastave | 30% |
Laboratorijske vježbe | 20% |
Završni ispit | 50% |
O predmetu
- Aplikacija za ispite
O predmetu
O predmetu
- Jedan ECTS studijski bod-kredit predstavlja 25 sati ukupnog opterećenja studenta kroz sve oblike njegovog rada na određenom predmetu
- 7 * 25 = 175 sati u semestru
- 175 / 16 = 11 sati sedmično
- 11 - 6 = 5 sati samostalno
O predmetu
- Programiranje je vještina
O predmetu
- Programiranje je vještina
Sugestije studenata
- Realizovane:
- Rad ispita na računaru
- Mogućnost izbora ispita u popravnom roku
- Dodatni ispit za studente sa preko 49 bodova
- Trajanje ispita
- Dodatni testni primjeri na ispitima
- Djelimično realizovane:
- Literatura na bosanskom jeziku
- Neće biti realizovane:
- Parcijalno bodovanje zadataka na ispitu
- Izlazak na više ispita u jednom roku
- Dodatno produženje trajanja ispita
- Težina zadataka
Šta je potrebno za vježbu?
- Računar sa pristupom internetu
- Python interpreter
- Editor teksta
IDLE
Sažetak
- Podesiti okruženje za rad
- Vježbati
Programiranje I - P01
By Elmedin Selmanovic
Programiranje I - P01
- 1,246