Fundamentals of Programming and Knowledge Extraction
COURSE DESCRIPTION
Teaching: 12 hours
ECTS: 3
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 (kmeans 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.
REQUIREMENTS FOR EXAM
FIRST HOMEWORK  HTML and JavaScript
SECOND HOMEWORK  Sorting in
(Matlab,Octave,C,Python,Julia), report in LaTeX
SEMINAR
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.
LITERATURE

Mitra S, Acharya T, Data Mining  Multimedia, Soft Computing and
Bioinformatics, John Wiley & Sons, 2003.
(info)

Sigmon K, MATLAB Primer, Third Edition, University of Florida, Gainesville,
1993.
(pdf)

Oetiker T, Partl H, Hyna I, Schlegl E, The Not So Short Introduction to
LaTeX2e, 1999.
(pdf)

Berry MW, Drmač Z, Jessup ER, Matrices, Vector Spaces and Information
Retrieval, SIAM Review, 41 (1999) 335362.
(pdf)

The Java Tutorials
(link)

Ding HQ, Zha H, He X, Husbands P, Simon HD, Link analysis: Hubs and
Authorities on the World Wide Web, SIAM Review, 46 (2004) 256269.
(pdf)

Langville AN, Meyer CD, A Survey of Eigenvector Methods for Web Information
Retrieval, SIAM Review, 47 (2005) 135161.
(pdf)
 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.

A Beginner's Guide to HTML
(pdf)
PLAN AND RESOURCES

Computing, computation, computers and computer science.
L1Computers_and_Computing.pdf

Knowledge, problem solving, computing tools, algorithms,
Turing machine, complexity.
L2Algorithms.pdf

Algorithm, program, machine instuctions, interpreters and compilers, data,
structure of computer memory and consequences.
L3Programming.pdf

Scripting languages  server side (PHP) and client side (JavaScript).
PHP from Wikipedia
PHP from
W3Schools
JavaScript from
Wikipedia
JavaScript from W3Schools

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

Basics of technical computing (Matlab, Octave, Julia).
MATLAB Primer, Third
Edition
Octave Users' Guide
Octave Online
( 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

Least squares method  linear regression.
Linear
least squares
Introduction  textbook
Julia
notebook for regression
Julia
notebook for QR factorization

Clustering of data (kmeans algorithm,
Fiedler vector and principal component analysis).
Kmeans from
Wikipedia
Kmeans (in Croatian)
Fiedler vector
An example
(in Croatian)
Programs
Julia
notebooks (L09L12)

Vectorspace model and application to pagerank and recommendation engine.
Julia notebook

Image compression via singular value decomposition.
Example program
Julia notebook

Introduction to compressive sensing.
Student
presentation
Julia notebook
 Principal component analysis
Julia notebook