Teorija
Teorija programiranja
Lista članaka
Uvod u Fetch API
Teorija i mini-tutorijal za izradu sajta koji koristi Fetch API (koji, u idejnom smislu, možemo shvatiti kao svojevrsnu kombinaciju AJAX-a i promisa).
Asinhrono programiranje u JavaScriptu
Pregled tehnika koje (pod određenim okolnostima), omogućavaju paralelno izvršavanje koda u Javascript-u (tako da pomenuta obrada ne "koči" izvršavanje skripte).
Uvod u AJAX (Asynchronous JavaScript And XML)
Skup tehnika koje omogućavaju komunikaciju između klijenta i servera, između dva učitavanja stranice (uz uticaj na samo određene elemente, bez osvežavanja cele stranice).
Uvod u Node.js
Izuzetno popularno radno okruženje za pisanje backend aplikacija, iza koga stoji endžin V8 (JS interpretator iz Google Chrome-a), povezan sa ulazno-izlaznim mogućnostima operativnog sistema na kome je instaliran.
JSON Web Token (JWT) - Struktura i primena u oblasti autorizacije web aplikacija
Jedno od najpopularnijih i najčešće korišćenih rešenja za čuvanje podataka za autorizaciju korisnika u računarskim sistemima (bez direktnog skladištenja lozinke i drugih osetljivih podataka).
JavaScript ES6 sintaksa
Nove tehnike koje je donela revizija jezika iz 2015. godine, ECMAScript 6 (const, let, arrow funkcije, šablonske niske, moduli, klase .…)
Callback funkcije i lambda izrazi
Detaljan osvrt na koncept predavanja jedne funkciji drugoj u svojstvu argumenta, najčešće uz korišćenje tzv. "lambda izraza" (a usput ćemo napraviti i osvrt na delegate u C#-u i interfejse u Javi).
Izbor prvog programskog jezika
Diskusija o izboru prvog programskog jezika (C vs. Python), uz osvrt na razlike između mašinskih jezika i programskih jezika visokog nivoa. Koliko programski jezici treba da nam pomažu (i šta treba, a šta ne treba od nas da "skrivaju") ....
Šablonske niske u programskim jezicima
Prikaz mehanizama za spajanje niski sa vrednostima promenljivih, preko operatora, funkcija i template literal sintakse (u nekoliko programskih jezika).
Uvod u Python
Verovatno najpopularniji skriptni jezik današnjice, sa jednostavnom sintaksom i većinom odlika ozbiljnih OOP jezika (vrlo popularan za pisanje skripti za automatizaciju, kao i u oblasti mašinskog učenja).
Promenljive u CSS-u (pretprocesori i imenovana svojstva)
Nepodržanost promenljivih, duže vreme bila je jedna od većih "boljki" CSS-a, i stoga je pojava pretprocesora za CSS i (na kraju), imenovanih svojstava, bila krajnje dobrodošla .…
Lokalno skladištenje podataka browsera (sessionStorage, localStorage, cookies)
Osvrt na lokalna skladišta podataka (koja se mogu koristiti preko Javascript-a, ili preko različitih backend jezika).
PHP - Direktno prosleđivanje podataka između stranica ($_SESSION)
Protokol za proizvoljno prosleđivanje podataka između različitih stranica istog sajta.
PHP - Povezivanje skripti sa MySql bazama podataka
Pregled različitih tehnika koje omogućavaju povezivanje PHP skripti sa MySql bazama podataka.
PHP - Prosleđivanje podataka preko HTML forme ($_POST)
Protokol za prosleđivanje zaštićenih podataka između dve stranice, uz korišćenje HTML formulara.
PHP - Prosleđivanje podataka preko URL-a ($_GET)
Najosnovniji HTTP protokol, koji se koristi za prosleđivanje podataka preko URL-a.
Uvod u PHP i backend programiranje
U većini situacija, PHP je prvi skriptni serverski jezik sa kojim se web developeri upoznaju, pošto su savladali osnove web dizajna i tri osnovna internet jezika (HTML, CSS i JavaScript) ....
Izuzeci u programiranju
Mehanizam koji omogućava da se pravilno odreaguje na nepravilnosti u korisničkom unosu podataka (kao i na druge nepredviđene okolnosti u toku izvršavanja programa).
Operacije sa nizovima u programskom jeziku JavaScript
Kratak osvrt na implementaciju nizova u Javascript-u ("ispod haube", u pitanju je relativno kompleksna implementacija, ali - sasvim funkcionalna i (najčešće) prilično elegantna).
AVL Stablo - Implementacija - 5. deo - Uklanjanje čvorova
U poslednjem nastavku mini-serijala o implementaciji AVL stabala, bavimo se najkompleksnijom operacijom u AVL stablima - uklanjanjem čvorova.
Binarna stabla i algebarski izrazi (stablo izraza)
Detaljna diskusija o načinu predstavljanja algebarskih izraza preko stabla (uz osvrt na to da se sličan pristup koristi i u prevođenju računarskih jezika).
AVL Stablo - Implementacija - 4. deo - Dodavanje čvorova
U četvrtom nastavku mini-serijala o implementaciji AVL stabala, bavimo se jednom od dve najuobičajenije operacije u AVL stablima - dodavanjem čvorova.
Shunting Yard - Implementacija - 2. deo - Računanje vrednosti postfiksnog izraza
U drugom delu, bavimo se računanjem vrednosti izraza (u pitanju je postupak koji sledi posle prevođenja izraza iz infiksne notacije, i takođe se obavlja u linearnom vremenu).
AVL Stablo - Implementacija - 3. deo - Obilazak stabla
Treći nastavak mini-serijala o implementaciji AVL stabala, posvećen je različitim metodama obilaska stabla pretrage.
Shunting Yard - Implementacija - 1. deo - Prevođenje izraza iz infiksnog zapisa u postfiksni
Jedan od nekoliko najznačajnijih algoritama u istoriji informatike, čija je svrha - pretvaranje infiksnih izraza u postfiksne i računanje vrednosti (u prvom delu, bavimo se prevođenjem notacije).
AVL Stablo - Implementacija - 2. deo - Pretraga
U drugom nastavku mini-serijala o implementaciji AVL stabala, bavimo se pronalaženjem elemenata.
AVL Stablo - Implementacija - 1. deo - Osnovna struktura
Uvodni članak mini-serijala o implementaciji visinski balansiranog AVL stabla u programskom jeziku Java (za početak, bavimo se osnovnom strukturom čvorova i stabla).
Uvod u JavaScript i DOM (Document Object Model)
Izuzetno popularan programski jezik koji se koristi u izradi HTML stranica i (u novije vreme ), za kreiranje back-end komponenti web sajtova.
Uvod u relacione baze podataka i SQL
Detaljan uvod u relacione baze podataka (tabele, polja, slogovi, ključevi, relacije, SQL upiti ....)
Regularni izrazi - napredna pretraga teksta
Prikaz postupka pretrage obrazaca u tekstu uz korišćenje posebno formatiranih niski (sa primerima iz svakodnevne prakse).
JSON - tekstualni format za razmenu podataka
Najpopularniji tekstualni format za prenos i razmenu složenih podataka (uz primere pretvaranja objekata iz OOP jezika u JSON objekte).
Strukture podataka
Osvrt na različite formate zapisa složenih podataka u računarskoj memoriji i značaj pravilnog formatiranja podataka u rešavanju problema u računarskim sistemima.
Pozicioni brojevni sistemi
Prikaz opštih pravila za zapis brojeva, uz poseban osvrt na binarni, dekadni, heksadekadni, oktalni i rimski brojevni sistem.
Klase složenosti algoritama (O notacija)
Kraća diskusija o tome kako količina ulaznih podataka, u različitim programima, utiče na vreme izvršavanja i (dodatno) memorijsko zauzeće.
Argumenti komandne linije
Odgovor na pitanje čemu služe argumenti argc i argv (u funkciji main), i diskusija o tome šta se sve može uraditi sa podacima koji se programu proslede preko terminala.
Metode za optimizaciju algoritama
Šematski prikaz postupaka preko kojih se algoritmi mogu učiniti efikasnijim.
Uvod u objektno orijentisano programiranje
Detaljan uvod u najrasprostranjeniji metod za projektovanje softverskih sistema.
Uvod u dinamičko programiranje
Postupak za rešavanje problema uz podelu na potprobleme i pamćenje međurešenja (prikazan kroz najpopularniji DP algoritam).
Visinski balansirano (AVL) stablo
Detaljan osvrt na postupak za kreiranje visinski balansiranog binarno stabla pretrage (iako možda "ne deluje tako", pravilno strukturirana binarna stabla koja omogućavaju efikasnu pretragu – ne nastaju "sama od sebe" :)).
Operacije sa tekstualnim datotekama u programskim jezicima C i Python
Pristup tekstualnim datotekama često je "bauk" za mlade programere koji se prvi put susreću sa tematikom, ali, uz upotrebu elegantnih mehanizama koje nude programski jezici visokog nivoa, ne mora biti tako .…
Operacije sa bitovima u programskom jeziku C
Pristup pojedinačnim bitovima, omogućava efikasno rešavanje mnogih računarskih problema (pogotovo kada je u pitanju sistemsko programiranje niskog nivoa) .…
BFS i DFS - Pronalaženje putanje kroz lavirint
Pronalaženje izlaza iz "lavirinta", uz korišćenje dva poznata algoritma za obilazak struktura podataka.
Binarno stablo pretrage
Struktura koja omogućava efikasno pretraživanje većih (uređenih) kolekcija podataka.
Zašto baš binarni brojevi?
Odgovor na (verovatno) "najčuvenije" pitanje koje polaznici kurseva programiranja postavljaju na samom početku.
Dijagram toka - osnove
Sistem grafičkih simbola preko kojih se prikazuje tok izvršavanja programa (linearna struktura, grananja i petlje).
Algoritmi - uvod
Osvrt na najvažnije odlike efikasnih postupaka koji se zapravo mogu smatrati algoritmima (drugim rečima: ukoliko želimo da budemo dobri i uspešni programeri, moramo shvatiti da se problemi na računarima ne mogu rešavati "bilo kako" :)).
Šta je zapravo programiranje?
Krenućemo od samog početka i odgovorićemo na naizgled jednostavna pitanja: šta je to što računari zapravo rade, i kako da im u tome pomognemo?
Postfiksna notacija - kako računari računaju?
Postupak za rešavanje matematičkih izraza na računarima uz korišćenje tzv. postfiksne notacije (znatno efikasnija metoda u odnosu na uobičajeni postupak tumačenja infiksnih izraza).