863 Programming 2

863 Programming 2

  • Study programme and level: University Study Programme in Administrative Information Science - 1st Cycle
  • 1st year
  • 6 ECTS
  • Course type: Core
  • Lectures: 45
  • Tutorial: 30
  • Individual work: 105
  • Lecturer: Tomaž Dobravec, PhD

1. Objectives and competences

  • The main goal of the course is to present the basic principles of imperative programming with emphasis on the procedural and object-oriented languages. In addition to concepts related to specific programming constructs (function, method, variable, operator,  memory, pointers, object, class, inheritance, ...) students will learn the general programming concepts such as portability, compiler, virtual machine , testing, debugging, ... Each student that will conduct this course should be able to independently solve semi complex programming problems.

2. Content

Basic programming skills

  • using programming languages to solve practical problems;
  • presentation of good practices and pitfalls of programming;
  • useful programming "recipes".

The building blocks of programming languages

  • data types, variables and constants;
  • expressions, operators, structured code;
  • pointers, memory allocation and arrays;
  • work with files;

Object-oriented programming

  • variables, methods, members, access modifiers;
  • classes, objects, inheritance, overriding;
  • abstract classes, interfaces;
  • event-driven programming;
  • comments and documentation;

3. Readings

  • Brian W. Kernighan, Dennis M. Ritchie. The C Programming Language (2nd edition).  Prentice Hall, 1988.
  • T. Dobravec. abC. Založba Fe&FRI, 2010.
  • K. Arnold, J. Gosling, D. Holmes. The Java Programming Language (3th edition). Addison-Wesley, 2000.
  • R. Morelli, R. Walde. Java, Java, Java Object-oriented problem solving (3th  edition). Pearson Prentice Hall, 2006.

4. Intended learning outcomes

Knowledge and understanding:

  • Basic building blocks of programming languages: data type, variable, constant expression,  operator, function, pointer, memory, arrays, files. and object-oriented programming (object, class, member, method, inheritance, encapsulation, replacement, overlay, interfaces). Understanding the importance of general programming concepts, such as portability, compiler, virtual machine, testing, debugging.


  • Students will gain the basic computer skills and the ability to independently solve practical problems, which is a skill that is extremely useful not only in large numbers of courses with which the student encounters during the study, but also in practice. A good knowledge of  the most commonly used languages of modern industry allows relatively easy transition to other languages.


  • Knowledge of basic programming languages helps in understanding how the computer works . Moderen programming languages are a powerful tool for solving industrial problems, and writing business applications.

Transferable skills:

  • Good knowledge of programming skills are very important for understanding  how the  computer system works.

5. Learning and teaching methods

  • Lectures, exercises and home work.

6. Assessment

Type (examination, oral, coursework, project):

  • Continuing (homework, midterm exams, project work) (50%)
  • Final: (written and oral exam)  (50%)