Course detail
Introduction to Programming and Algorithmization
FSI-1PAAcad. year: 2024/2025
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
Number of ECTS credits
Mode of study
Guarantor
Entry knowledge
Rules for evaluation and completion of the course
The evaluation is based on the standard point system 0-100b. The students can get up to 80 points for 3 tests during the semester and 20 points for the semestral project and its presentation. In all cases, especially the fulfillment of functional requirements and the quality of the realization are the evaluation criteria.
Attendance at practical training is obligatory. Attendance at exercises is checked. Attendance at lectures is not mandatory but recommended.
Aims
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.
Study aids
Prerequisites and corequisites
Basic literature
Knuth, D.: The Art of Computer Programming, Volume 1: Fundamental Algorithms, Addison-Wesley, 2019
Stormy Attaway: Matlab: A Practical Introduction to Programming and Problem Solving, Butterworth-Heinemann, 2019 (EN)
Recommended reading
Pelánek, R.: Jak to vyřešit, Portál, 2011 (CS)
Pelánek, R.: Programátorská cvičebnice, Computer Press, 2012 (CS)
Elearning
Classification of course in study plans
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
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
Teacher / Lecturer
Syllabus
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