prof. dr. sc. Ivan Slapničar
021/305-893, 091/4305-893

Fundamentals of Programming and Knowledge Extraction


Teaching: 12 hours

Course Aim: Clearly understand basic concepts related to programming, algorithms, usage of computers and knowledge extraction (data mining). Adapt basic programming methods for text processing, technical programming and knowledge extraction.

Course Content: Data types and structures, Turing machine, algorithms and their complexity, compilers, interpreters, object programming. Structure of computer memory and its effect on program development.
Programming for text processing (HTML, LaTeX, XML).
Basics of technical computing (Matlab, octave, Python, Julia).
Recommendations by using singular value decomposition.
Clustering of data (graphs) by search (k-means method), Fiedler vector and principal component analysis, vector space model and applications to textual data.
Image compression using singular value decomposition.
Introduction to compressive sensing.

Generic and Specific Competences: Ability to analyze algorithmic problems with respect to their complexity and to choose an adequate solution method. Understanding text processing programs and ability to use them. Understanding technical programs and ability to design and apply programs for data analysis. Understanding algorithms for knowledge extraction and ability to use them in research.



SECOND HOMEWORK - Sorting in (Matlab,Octave,C,Python,Julia), report in LaTeX


Analyze data from your studies with any of the methods described in the course, and submit report written in LaTeX. Prior approval of the topic/data from the instructor is required.


  1. Mitra S, Acharya T, Data Mining - Multimedia, Soft Computing and Bioinformatics, John Wiley & Sons, 2003. (info)
  2. Sigmon K, MATLAB Primer, Third Edition, University of Florida, Gainesville, 1993. (pdf)
  3. Oetiker T, Partl H, Hyna I, Schlegl E, The Not So Short Introduction to LaTeX2e, 1999. (pdf)
  4. Berry MW, Drmač Z, Jessup ER, Matrices, Vector Spaces and Information Retrieval, SIAM Review, 41 (1999) 335-362. (pdf)
  5. The Java Tutorials (link)
  6. Ding HQ, Zha H, He X, Husbands P, Simon HD, Link analysis: Hubs and Authorities on the World Wide Web, SIAM Review, 46 (2004) 256-269. (pdf)
  7. Langville AN, Meyer CD, A Survey of Eigenvector Methods for Web Information Retrieval, SIAM Review, 47 (2005) 135-161. (pdf)
  8. Compressive sensing tutorials and reviews by Emmanuel Candès, Richard Baraniuk, Emmanuel Candès and Michael Wakin, Justin Romberg, and Dana Mackenzie, from the Rice University Compressive Sensing Resources page.
  9. A Beginner's Guide to HTML (pdf)

  1. Computing, computation, computers and computer science.
  2. Knowledge, problem solving, computing tools, algorithms, Turing machine, complexity.
  3. Algorithm, program, machine instuctions, interpreters and compilers, data, structure of computer memory and consequences.
  4. Scripting languages - server side (PHP) and client side (JavaScript).
    PHP from Wikipedia   PHP from W3Schools
    JavaScript from Wikipedia   JavaScript from W3Schools
  5. Programming for text processing (HTML, CSS, LaTeX, XML).
    HTML from Wikipedia   HTML from W3Schools
    A Beginner's Guide to HTML
    CSS from Wikipedia   CSS from W3Schools
    LaTeX from Wikipedia
    The Not So Short Introduction to LaTeX2e
    XML from Wikipedia   XML from W3Schools
    Markdown   Markdown syntax
  6. Basics of technical computing (Matlab, Octave, Julia).
    MATLAB Primer, Third Edition   Octave Users' Guide
    Octave On-line ( experimental!)
    Matrix multiplication   Linear independence   Matrix rank
    Vector norm   Matrix norm
    LU factorization   Eigenvalue decomposition
    Singular value decomposition
    The Julia Language   Julia Course   Julia Box
  7. Least squares method - linear regression.
    Linear least squares   Introduction - textbook
    Julia notebook for regression   Julia notebook for QR factorization
  8. Clustering of data (k-means algorithm, Fiedler vector and principal component analysis).
    K-means from Wikipedia   K-means (in Croatian)
    Fiedler vector   An example (in Croatian)
    Julia notebooks (L09-L12)
  9. Vector-space model and application to page-rank and recommendation engine.
    Julia notebook
  10. Image compression via singular value decomposition.
    Example program   Julia notebook
  11. Introduction to compressive sensing.
    Student presentation   Julia notebook
  12. Principal component analysis
    Julia notebook

Lectures in academic year 2016/2017

Lectures were held on January 26-29, 2017, in Zagreb.