Algorithms and programming

Semester
1.
ECTS credits
5 ECTS

Goal

To enable students to independently develop simple to moderately complex software applications.

 

Additional info

Data and computer data processing:
Data types (numeric, alphanumeric). Recording data in a computer
(numeric integer and non-integer notation, scalar and multidimensional notations, alphanumeric notations). Scalar numeric integer and non-integer variables. Multidimensional numeric integer and non-integer variables. Scalar and multidimensional alphanumeric variables.
Algorithms and algorithmic structures:
The concept of algorithm. Writing an algorithm in block diagram form and in pseudo code. Algorithmic structures (sequential structure, branching, unconditional jump, iteration). Reading and understanding algorithms. Creating algorithms.
The relationship between algorithms, a program written in a programming language, and an executable program in a machine language:
The concept of a programming language. The basic structure of a program in a programming language. Coding algorithms in a programming language (writing a program). Translating a program written in a programming language into machine language. Running and testing the program. Debugging. User interface. Program logic. Interaction with data repositories. Comments. User instructions. Development process of a program solution (from idea, modeling and development of a program solution to distribution and installation of a program solution). Life cycle of a program solution. Methods of mastering programming skills. Types of programming. Elementary algorithms written in a programming language Algorithms of sequential algorithmic structure (Algorithms: printing, variable declarations, variable value assignments, variable loading, basic arithmetic operations, value substitution, successive cumulative, etc.). Branching algorithms (Algorithms: comparisons of a variable with a number, a variable with a variable, the problem of weighing three or more variables, minimum and maximum, use of identifiers, multiple weighings, complex weighings, etc.). Unconditional jump algorithms (Algorithms: skipping a part of the program code, moving forward and backward, combining with branching to achieve an iterative process, infinite iteration, etc.). Iterative algorithms with scalar variables (Algorithms: multiple printing, printing a sequence, printing with a step, printing a sequence in the opposite direction, conditional printing, parallel iteration, iteration in iteration, calculating the cumulative of a sequence, calculating the cumulative of loaded values, factorials, minimum and maximum, etc.). Iterative algorithms with vector variables (Algorithms: loading vectors, rewriting vectors, printing vectors in the opposite direction, adding vectors, multiplying vectors by a scalar, multiplying vectors by a vector, cumulative values of vectors, searching for values in a vector, replacing values in a vector, minimum and maximum, inserting an element in a vector, removing an element from a vector, sorting vectors, etc.). Iterative algorithms with matrix variables (Algorithms: loading and printing a matrix, extracting rows and columns of the main and auxiliary diagonals, various variants of cumulatives and products in a matrix, searching for values, replacing values, adding matrices, multiplying matrices, comparing matrices, etc.). Algorithms with alphanumeric variables (Algorithms: loading a character, loading a string of characters, extracting part of a string, finding a value and replacing a value in a string, checking for the existence of a character substring, splitting a string, encrypting a string, converting a character string to an ASCII string of values, counting in a string, sorting a string, etc.).
Advanced algorithms used in business:
Reading data from file sources (CSV format). Functions. Trees. Recursion. Pointers and dynamic memory allocation. Advanced search algorithms. Advanced sorting algorithms. Parsing. Compression. Encryption. Random number generation. Optimization algorithms. Linear programming. Dynamic programming. Integral calculus. Differential calculus. Interest calculus. Other algorithms used in business.

Lectures: 30
Seminars: 0
Exercises: 15

After completing the course, the student will be able to:
1. Analyze the problem for which a software solution needs to be developed.
2. To judge which elementary or complex algorithm or algorithms should be used to solve the problem.
3. Design a software solution.
4. Create a usable software solution. Evaluate ready-made software solutions.

magnifiercrossmenuplus circlecircle-minus LinkedIn facebook Pinterest youtube RSS Twitter Instagram facebook-blank rss-blank linkedin-blank Pinterest youtube Twitter Instagram Skip to content