Individual course details
Study programme Applied and Computational Physics
Chosen research area (module)  
Nature and level of studies Basic academic studies
Name of the course Programming
Professor (lectures) Prof. Dr. Goran Poparić
Professor/associate (examples/practical)  
Professor/associate (additional)  
ECTS 4 Status (required/elective) required
Access requirements  
Aims of the course To introduce students to the basic concept of programming.
Learning outcomes To enable students to independently create a problem setting and solve a given problem, logically create and develop a solution algorithm, and implement an algorithm in the specific programming language. It also enables students to gain the ability to independently produce, analyze program, test and find potential mistakes.
Contents of the course
Lectures Course content: Computer scheme. Organization of the processor, Machine language. Assemblers. Symbolic languages. Procedural and object-oriented programming. Data types. int, float, long, double, char. Elementary programs. Preprocessor. Editor. Compiler. Linker. Syntax and semantics. Algorithms. Symbolic representation of elementary commands, declarations, inputs, outputs, branching orders. Symbolic rendering. Distribution operators. Arithmetic and logical operators. Priority of the operator. Elemental program branching. If else branching. Block command. Iterations orders. While, Do while iteration. Commands with For Loops. Switch commands. Arrays, their declaration and initialization. Multidimensional arrays. Communication. Prototype, declaration and definition and use. Global and local variables. Call functions by value. Polymorphism of functions. Recursion. Pointers. Declaration and use. Call functions by reference through a pointer. References. Declaration and use. Calling functions by reference through references. Stack and free memory space. Memory Allocation. Use of free space. Commands NEW, DELETE. Elementary classes. Declaration, Definition and Usage. Creating objects and using. Class. Keywords: public :, private: and protected :. Constructors and destructor. Copywriter. Access methods. Data encapsulation. Class Methods. Overload. Class. Base and derived class. Hierarchy and inheritance. Derived class. Skipping the base class method (override). Explicit calling of the base-class method. Entering a file. Access modes. Strings. Elemental functions for working with strings. A random number generator. Characteristics and validity test. Elements of mathematical modeling.
Examples/ practical classes Practical classes: Setting up and solving programming problems. Logical design of algorithms, their creation and analysis. Practical implementation of algorithms in the form of a program. Testing the programs and analyzing potential errors. Optimizing the programs.
Recommended books
1 Programming language C,  B.W. Kernighan, D.M. Ritchie 1988 Prentice Hall Inc.
2 Programming language C, D. Petković, Belgrade 1990.
3 C++, Jesse Liberty, Kombib 2003.
4  
5  
Number of classes (weekly)
Lectures Examples&practicals   Student project Additional
2 2      
Teaching and learning methods 1. Lectures 2. Practical work on the development of the programs.
Assessment (maximal 100)
assesed coursework mark examination mark
coursework 15 written examination 30
practicals 15 oral examination 40
papers      
presentations