Programming 1

Subject description


  1. Overview of programming languages with emphasis on 3rd generation
  2. Writing, compiling and executing a simple computer program
  3. Basic data types
    • Integer and real numbers, characters and logical values
    • Constants and variables declaration
  4. Programming statements
    • The assignment statement, expressions, operators, operator precedence
    • Conditional statements
    • Loops
  5. Methods
    • The role and classification of methods
    • Formal and actual parameters
    • Recursion
  6. Classes and objects
    • Instance variables and methods
    • Constructors, overloading constructors
    • Access modifiers
    • Using predefined classes
  7. Arrays
    • One-dimensional and multidimensional arrays
    • Arrays of objects
  8. Strings
  9. Inheritance
    • Overriding superclass methods
    • Using superclass constructors in subclasses
    • Dynamic method binding
    • Abstract classes and abstract methods
    • The Object class
    • Creating and using interfaces
  10. Graphics and GUI widget toolkits, components of GUI
  11. Event driven programming

lab practice:

Students solve practical problems to reinforce the understanding of topics covered during lectures. Individual work under the guidance of teaching assistants is emphasized.


Students are given a list of programs that must be developed outside contact hours and submitted for evaluation within prescribed deadlines, thus preventing them from procrastinating and encouraging self-reliance. Completion of these assignments is a prerequisite for entering the exam.

The subject is taught in programs

Objectives and competences

The main objective is to teach students basic concepts of object-oriented programming in a general-purpose 3rd generation programming language, thus making them able to develop computer programs of low complexity.

The competences students gain are:

  • developing skills in critical, analytical and synthetic thinking,
  • the ability to understand and solve professional challenges in computer and information science.
  • the ability to apply acquired knowledge in independent work for solving technical and scientific problems in computer and information science; the ability to upgrade acquired knowledge.
  • basic skills in computer and information science, which includes basic theoretical skills, practical knowledge and skills essential for the field of computer and information science.
  • basic skills in computer and information science, allowing the continuation of studies in the second study cycle.

Teaching and learning methods

  • Lectures with active participation of students (explanation, discussion, questions, examples, problem solving);
  • Lab practice (reflection of experience, practical problem solving, presentation of solutions, discussion, communication of feedback information)
  • Homework (individual development of simple computer programs)
  • Individual consultation hours (discussion, additional explanation, specific problems solving)

Expected study results

After the completion of the course, a student will be able to:

  • understand the process of writing, compiling, and running a computer program
  • understand and use basic programming constructs and data structures
  • understand the concepts of object-oriented programming (including inheritance)
  • understand and use basic algorithms for solving typical programming problems
  • know the basics of computer graphics and basic components of GUI
  • know the principles of event-driven programming
  • write simple computer programs in a general purpose programming language

Basic sources and literature

  1. V. Mahnič, L. Fürst, I. Rožanc: Java skozi primere, Bi-TIM, 2008.
  2. J. Farrell: Java Programming, Seventh Edition, Course Technology, Cengage Learning, 2014.

Dodatna literatura:

  1. I. Horton: Beginning Java, Java 7 Edition, John Wiley & Sons, Inc., 2011
  2. Uroš Mesojedec, Borut Fabjan: Java 2: Temelji programiranja, Pasadena, 2004.

Stay up to date

University of Ljubljana, Faculty of Electrical Engineering Tržaška cesta 25, 1000 Ljubljana

E: T:  01 4768 411