Course detail

Introduction to Programming and Algorithmization

FSI-1PAAcad. year: 2020/2021

The content of the subject is mostly focused on general knowledge and skills concerning the use of high-level programming languages in engineering practice. Although the Matlab language is used, the same principles apply many similar languages (e.g. Python). The subject can be divided into three parts - Matlab basics, algorithmisation, and general programming principles and practical recommendations.

Language of instruction

Czech

Number of ECTS credits

6

Mode of study

Not applicable.

Learning outcomes of the course unit

After finishing this subject, students are expected to be able to independently use the Matlab language to solve various engineering tasks. Basic knowledge gained here serves as a basis for studying (even self-studying) other languages in different applications. E.g. the C language for the programming of microcontrollers.

Prerequisites

Vectors and matrices, matrix calculus, Propositional calculus, basic computer skills.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

The course is taught through lectures explaining the basic principles and theory of the discipline. Exercises are focused on practical topics presented in lectures. Teaching is supplemented by practical laboratory work.

Assesment methods and criteria linked to learning outcomes

The evaluation is based on the standard point system 0-100b. The students can get up to 40 points for the individual semestral project and its presentation and up to 60 points for the final test. The final test consists of a theoretical test, assignments in Matlab/Simulink and a discussion. In all cases, especially the fulfillment of functional requirements and the quality of the realization are the evaluation criteria.

Course curriculum

Not applicable.

Work placements

Not applicable.

Aims

The goal of the subject is to get and develop the ability to make algorithms and solve the most common engineering and mathematical problems through practical experience, e.i. to decompose a complex task to a set of simple tasks so that it can be written in the Matlab syntax.

Specification of controlled education, way of implementation and compensation for absences

Attendance at practical training is obligatory. Attendance at exercises is checked. Attendance at lectures is not mandatory but recommended.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Algorithms: Fundamental Techniques. Dostupne online: http://en.wikibooks.org/wiki/Algorithms (EN)
Stormy Attaway: Matlab: A Practical Introduction to Programming and Problem Solving, Butterworth-Heinemann, 2019 (EN)
Knuth, D.: The Art of Computer Programming, Volume 1: Fundamental Algorithms, Addison-Wesley, 2019

Recommended reading

Pelánek, R.: Programátorská cvičebnice, Computer Press, 2012 (CS)
Pelánek, R.: Jak to vyřešit, Portál, 2011 (CS)
Bohuslav Doňar; Karel Zaplatílek : MATLAB pro začátečníky, BEN - technická literatura, 2005 (CS)

eLearning

Classification of course in study plans

  • Programme B-MET-P Bachelor's, 1. year of study, winter semester, compulsory

Type of course unit

 

Lecture

26 hours, optionally

Teacher / Lecturer

Syllabus

1) Organisation, Matlab as an engineering tool
2) Basic Matlab syntax - variables, operators, control structures
3) Signals and plots
4) Data types and structures
5) Matrix operations and calculus
6) Functions and recursion
7) Algoritmisation
8) Practical algorithms
9) Object oriented programming
10) Graphical user interface
11) Good programming habits
12) Testing and version control
13) Programming languages and styles

Computer-assisted exercise

26 hours, compulsory

Teacher / Lecturer

Syllabus

1) Variables and indexation
2) Conditions
3) Cycles
3) Plots
4) Random numbers
5) Vectorisation
6) Functions and recursion
7) Algorithmic exercises 1
8) Algorithmic exercises 1
9) Structures and objects
10) Graphical user interface
11) Programming exercises - Timing and code profiling
12) Programming exercises - Data input and output
13) Programming exercises - Search algorithms

eLearning