Faculty of Technical Sciences

Subject: Fundamentals of Programming and Programming Languages (17.IFE110)

Native organizations units: Chair of Applied Computer Science
General information:
 
Category Theoretical-methodological
Scientific or art field Applied Computer Science and Informatics
Interdisciplinary No
ECTS 7
Educational goal:

Introductory education of students in the field of algorithms, data structures, computer programming, and programming languages. Learning the principles and techniques of algorithmic way of thinking and implementing algorithms in programming languages using adequate data structures.

Educational outcome:

Students will acquire fundamental knowledge about algorithms, programming, programming languages, and data structures. Students are to acquire skills of understanding algorithms and data structures, and to be able to independently implement algorithms in a selected programming language.

Course content:

Introduction to algorithms, programming, and programming languages. Problem-solving using computers. Definition, representations, properties, and complexity of algorithms. Searching and sorting. Models of computation. Turing machine. Church-Turing thesis. Formal representation of the programming language syntax: BNF, EBNF, and syntax diagrams. Basic elements of programming languages. Fundamental and extended data types. Operators and expressions. Control flow. Subprograms. Recursion and recursive functions. Files. Abstract data types and data structures. Linear data structures – array, linked list, stack, queue, hash map. Nonlinear data structures – tree, graph. Overview of programming paradigms – procedural, object-oriented, and functional programming. Structured programming. Testing and documenting computer programs.

Teaching methods:

Teaching is performed through lectures, computer exercises in the computer classroom, and consultations. Throughout the whole teaching process, students are constantly encouraged to communicate intensively, think critically, perform independent study work, and, in general, actively participate in the learning process. The prerequisite to enter final exam is to complete all the pre-exam assignments by earning at least 30 points.

Literature:
Authors Title Year Publisher Language
Knuth, D.E. The Art of Computer Programming 1998 Addison-Wesley, Upper Saddle River English
Milo Tomašević Algoritmi i strukture podataka 2008 Akademska misao Serbian language
Kernighan, B. W., Ritchie D. M. Programski jezik C 2003 CET, Beograd Serbian language
Malbaški, D. Odabrana poglavlja metoda programiranja 2002 Tehnički fakultet, Zrenjanin Serbian language
Kraus, L. Programski jezik C sa rešenim zadacima 1993 Mikro knjiga, Beograd Serbian language
Dragan Urošević Algoritmi i strukture podataka 2018 CET Beograd Serbian language
Alagić Suad Principi programiranja 1985 Svjetlost Sarajevo Serbian language
Cormen, T.H. et al. Introduction to Algorithms 2009 MIT Press, Cambridge English
Knowledge evaluation:
Course activity Pre-examination Obligations Number of points
Complex exercises Yes Yes 20.00
Theoretical part of the exam No Yes 30.00
Complex exercises Yes Yes 30.00
Complex exercises Yes Yes 20.00
Lecturers:

Asistent Turović Radovan

Assistant - Master

Computational classes

Asistent dr Vještica Marko

Assistant - Master

Practical classes

Asistent Turović Radovan

Assistant - Master

Practical classes

Asistent dr Vještica Marko

Assistant - Master

Computational classes
API Image

vanr. prof. dr Mandić Vladimir

Associate Professor

Lectures
API Image

vanr. prof. dr Gajić Dušan

Associate Professor

Lectures

Faculty of Technical Sciences

© 2024. Faculty of Technical Sciences.

Contact:

Address: Trg Dositeja Obradovića 6, 21102 Novi Sad

Phone:  (+381) 21 450 810
(+381) 21 6350 413

Fax : (+381) 21 458 133
Emejl: ftndean@uns.ac.rs

© 2024. Faculty of Technical Sciences.