Introduction to Computer Programming

Basic information

Course coordinator Iztok Fajfar

Course type: Obvezni – strokovni

Number of ECTS credits: 5

Semester: 1. semester

Course code: 64104

Subject description

The course focuses on algorithms and data structures for solving fundamental mathematical and technical challenges. For the implementation of algorithms, we use the JavaScript programming language, which, however, is not the subject of detailed study. The course explains fundamental concepts such as (local and global) variable, reference, subprogram, parameter, and argument. It covers abstract data types (e.g., stack and queue) and data structures (e.g., array and linked list). The course explores various approaches to designing more complex algorithms and data structures. Special attention is given to the role of efficient data organization. We discuss strategies for debugging program code. A key part of the course is understanding the concepts of time and space complexity. We present techniques for designing recursive algorithms (based on the divide and conquer principle) and discuss situations in which such approaches are justified and effective (e.g., solving problems with backtracking).

Objectives

Students learn the principles of algorithmic thinking in describing everyday problems. They also learn the basic skills of computer programming and the design and testing of software solutions. One of the main goals of the course is also to encourage the ability to think critically in evaluating the appropriateness of different software solutions. 

The material is designed to provide a foundation for learning the C programming language. 

Teaching and learning methods

Two hours of lectures and two hours of hands-on exercises per week, lecture recordings, textbook, homework assignments, individual work with more advanced students. 

Back to top