Faculty of Technical Sciences

Subject: Advanced programming techniques (17.SEWN35)

General information:
 
Category Scientific-professional
Scientific or art field Applied Computer Science and Informatics
ECTS 4

Introducing students with advanced programming techniques and mastering the basic theoretical knowledge and techniques. Training students for analysis and application of proper programming methodology for the task and identify the strengths and weaknesses of different methodologies.

Upon completion of the course, students are able to understand the different programming methodologies, terminology in this field, analyze and apply appropriate methodologies and techniques for the task and critically evaluate solutions and list their advantages and disadvantages. They are also trained in the practical use of certain techniques and tools in the field of advanced programming methodologies.

Theory: methodologies and models of programming: an object-oriented, imperative, declarative, process oriented, functional, competitive, event driven programming , user-oriented. The techniques and concepts: iterator, generators, co-routines, mixins, lazy evaluation, prototypes, meta-programming, system types. Functional programming: the lambda calculus, immutability, a side-effects, higher-order functions, recursion, algorithms for processing large amounts of data - (Map-Reduce); functional programming languages (Lisp, Scheme, Clojure, Haskell, Erlang). Aspect orientedprogramming (AOP). Scripting languages and dynamic programming. Multi-paradigm programming languages - Python / Jython, Java, Scala, C++. Using and combining multiple programming languages (language polyglotism): mechanisms of integration, integration platform, type conversions, tools. Practical exercises: training in the use and practical application of programming languages, techniques and tools based on different methodologies and programming models. Application of acquired knowledge in the assign project implementation with the use of different programming languages, techniques and tools, and integration of program code into a single solution.

Lectures, Computer exercises; Consultations. Assign project task is developed through team work. In the last few weeks of the semester public presentations of most successful solutions of assigned projects is organized and the results achieved are discussed. The defense of the project is written. The final exam is oral. Assessment exam is based on the success of the defensded project assignment and final oral examination.

Authors Title Year Publisher Language
Ducasse, S., Zagidulin, D., Hess, N., Chloupis, D. Pharo by Example 2017 Square Brackets Associates English
Chassell, R.J. Introduction to Programming in Emacs Lisp 2009 GNU Press English
Doxsey, C. An Introduction to Programming in Go 2012 Caleb Doxsey - selfpublished English
Course activity Pre-examination Obligations Number of points
Project Yes Yes 60.00
Oral part of the exam No Yes 40.00
API Image

Prof. Dejanović Igor

Full Professor

Lectures

Prof. Ivanović Dragan

Full Professor

Lectures

Assistant - Master Vidaković Dragan

Assistant - Master

Computational classes

Assistant - Master Mijatov Vanja

Assistant - Master

Computational classes

Assistant - Master Nikolić Dušan

Assistant - Master

Computational classes

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.