Kroz predmet studenti se upoznaju s osnovnim algoritmima kao alatima, u širem smislu riječi, za rješavanje raznoraznih problema u okviru računarstva, informacijskih sustava, softverskog inženjerstva, bioinformatike, itd. Pored razumijevanja principa rada algoritama stavljen je naglasak na iznalaženje prikladnog formuliranja njihovih zapisa koje je moguće implementirati u bilo kojem programskom jeziku. Kako bi se ipak pokazala i konkretna implementacija pripadajući kod je prikazan u Java i Python programskim jezicima. U skladu s tim poželjno je da studenti imaju predznanja iz osnova programiranja. Uzimajući u obzir da su algoritmi u uskoj vezi sa strukturama podataka, odnosno da izabrana struktura podataka uvjetuje koje operacije su dozvoljene i na koji način se one mogu izvesti nad njihovim elementima ili nad strukturom podatka u cijelosti, to se predstavlja pristup realiziranja apstraktnih struktura podataka gdje su podaci i algoritmi enkapsulirani zajedno. Bilo kakvo razmatranje algoritama ne može izostaviti proučavanje pitanja računalne kompleksnosti. Pod tim pitanjem prvenstveno se izučava vremenska i prostorna analiza rada algoritama kako na teorijskog razini tako i na praktičnoj provođenjem simulacijskih eksperimenata performansi algoritama. Sve do sada navedeno odnosi se na cijeli opseg predmeta koji obuhvaća osnovne apstraktne tipove podataka (liste, stogove, redove), potom naprednije strukture (grafove i simboličke tablice), te najvažnije algoritme traženja i sortiranja s tim strukturama podataka. Na samom kraju obrađuju se algoritmi uz stringove i najčešće korištene strukture podataka sa stringovima čime se zaokružuje doseg ovog predmeta.

Sadržaj predmeta strukturiran je kako bi se studente upoznalo s općim principima i konceptima objektno-orijentirane paradigme kroz upotrebu programskog jezika Java. Također je naglasak i na razumijevanju uloge UML dijagrama u modeliranju objektno-orijentiranih programskih rješenja. Specifičnosti i ograničenja ugrađenih osnovnih tipova podataka i jednostavnih struktura podataka dovode se u vezu s projektiranjem vlastitih klasa, uz  isticanje koristi projektiranja s višim razinama apstrakcije kroz uvođenje sučelja i apstraktnih klasa. Na teorijskoj razini i kroz niz primjera na vježbama obrađuju se dobre strane učahurivanja, nasljeđivanja i polimorfizma, te se ujedno obrazlažu osnovna ograničenja tih principa. Studente se osposobljava i za rad s ulazno/izlaznim tokovima podataka i rad s različitim tipovima datoteka općenito. Također, obrađuju se principi serijalizacije i deserijalizacije objekata kako bi se prezentirao osnovni način za pohranu objekata i njihovog dohvata iz datoteka u okviru OOP. Parametrizacija kao jednostavan pristup višestrukoj primjeni razvijenih rješenja i primjer trivijalnog, ali efektivnog način upravljanja promjenama studente uvodi u naznačenu problematiku kao jedan od važnijih, nezaobilaznih problema u razvoju suvremenih softverskih rješenja. Na sličnom tragu je upoznavanje s problemom upravljanja iznimkama, ali i razvojem grafičkih korisničkih sučelja kao standardu u razvoju današnjih aplikacija. Važan dio predmeta odnosi se na izradu samostalnog projektnog rješenja za izabrani problem koji zahtjeva i izradu popratne dokumentacije na što se u predavanjima i vježbama stavlja jak naglasak, a sve u cilju kako bi studenti što prije počeli stjecati neophodna znanja i vještine, te kako bi što ranije počeli usvajati najbolje primjere iz prakse razvoja softverskih rješenja.