**Description**

**Theoretical study:**

Introduction - Algorithms, automata and programming languages. Defining the algorithm. Recursion. Turing machines. Normal algorithms. Finite automata. The formal languages and grammars. The principles of program control. Algorithms and Data - Development and presentation of structured algorithms. Flow graph of the program. Base of structured programming. The structural theorem. Procedures for structuring the program. Control structures. Data Structures (aray, record, table, stack, queue, the deck, the sequence, list, tree, network). Methods of testing the program. Files. Pointers. Principles of Programming Languages - Historical overview of the development of Programming Languages. Classification of Programming Languages. Program as the union of algorithm and data structure. Structured programming and the programming language Pascal - Methods for the development of structured programs. The syntax and semantics of a programming language Pascal. The basic data types. Basic control structures. Procedures and Functions. Object-Oriented Programming - Basic concepts, terms and principles of object-oriented programming.

**Practical teaching:**

Student should master the algorithmic approach in solving practical problems independently created program in the programming language PASCAL/C.

**General information**

**Study program**: Information Technology, Bachelor degree

**ECTS: **8

**Semester:** 2

**Lectures:** 3

**Exercises:** 3

**Lecturer**

**Berkovi****ć Ivana**, full professor

Email: berkovic@tfzr.uns.ac.rs

**Course books**

1. Dragan Ivetić, "Structured Programming Approach - Engineering, Algorithms and Programming Languages Pascal and C" (in Serbian), FTN, Novi Sad 2006.

2. Dušan Malbaški, "Selected Topics in Programming Methods, "Technical faculty" Mihajlo Pupin" (in Serbian), Zrenjanin, 2005.

3.MilanČabarkapa, Nevenka Spalević, "Methodological Problems in Programming with Solutions in PASCAL" (in Serbian), CET,Belgrade, 2007.