Course detail

Computer Programming 1

FEKT-BPA-PP1Acad. year: 2022/2023

The whole course will be taught in Matlab environment (or its freeware alternatives). Students will learn matrix operations, logical and relation operators. Next, advanced data types (e.g. complex numbers, structures, cells), program controlling methods (if-elseif-else conditions, for and while cycles, switch-case structures) will be taught. Methods for program acceleration like vectorization and code optimization will be emphasized. Students will learn basics of object oriented programming and graphical user interface creation.

Language of instruction

English

Number of ECTS credits

5

Mode of study

Not applicable.

Offered to foreign students

Of all faculties

Learning outcomes of the course unit

The graduate is able to:
1) Process matrix operations in Matlab.
2) Transform mathematical algorithms into Matlab functions.
3) Plot 2D a 3D functions.
4) Create Matlab applications with a graphical user interface.
5) Write well-arranged and understandable code according to programming conventions.

Prerequisites

The subject knowledge on the secondary school level is required.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Teaching methods include lectures and computer laboratories. Course is taking advantage of e-learning (Moodle) system. Students have to elaborate a single project/assignment during the course.

Assesment methods and criteria linked to learning outcomes

Students can obtain 30 points for the activity in computer practices, 20 points for tests during the semester, and 50 points (maximally) for an individual project in MATLAB.

Course curriculum

1. Introduction, history of Matlab, alternatives, coding conventions, script
2. Matrix creation, matrix operations, indexing, logical and relational operations
3. Advanced data types (complex numbers, char, logical, structures, cell)
4. Program controls, conditions, cycles
5. Functions- header, local vs. global variables and Workspace
6. Functions - handle, vectorization, code optimization, bsxfun, arrayfun, cellfun
7. Graphics - plotting options, tex commands
8. File management - read and write
9. GUI - graphical user interface, appdesigner interface
10. GUI - graphical user interface and uicontrols
11. OOP - class/object, properties and methods, constructor, set, get
12. OOP - inheritance, access, namespace, enumeration
13. Simulink basics

Work placements

Not applicable.

Aims

Students should learn basics of programming and algorithms. The subject will be taught in Matlab, which is programming language oriented on algorithms (no variables allocation or memory management is needed in comparison to C language). Next, students should get used to good programming habits (atomization, code structure, comments, variable names etc.) After this course, student should be able to build their own toolbox with graphical user interface (GUI).

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

Evaluation of activities is specified by a regulation, which is issued by the lecturer responsible for the course annually.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Cormen, Thomas H., et al. Introduction to algorithms. MIT press, 2009. (EN)
MATLAB Primer. Www.mathworks.com [online]. 3 Apple Hill Drive Natick, MA 01760-2098: The MathWorks, 2017 [cit. 2017-08-21]. Dostupné z: https://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf (EN)
VALENTINE, D. T. a Brian D. HAHN. Essential MATLAB for engineers and scientists. 3rd ed. London: Butterworth Heinemann, 2007. (EN)

Recommended reading

Not applicable.

Elearning

Classification of course in study plans

  • Programme BPA-ELE Bachelor's

    specialization BPA-ECT , 1 year of study, summer semester, compulsory

Type of course unit

 

Lecture

13 hod., optionally

Teacher / Lecturer

Syllabus

1. Informační systémy VUT.
2. Počítačové sítě a operační systémy.
3. Počítačové systémy, hardwarová architektura.
4. Vývoj softwarové aplikace, operační kód, instrukční soubor, jazyk symbolických adres, vyšší programovací jazyky, překlad.
5. MATLAB: Úvod do Matlabu, modelování systémů, spojitý, diskrétní a číslicový systém. Jednoduchý model fyzikálního děje.
6. MATLAB: Reprezentace vektorů a matic v Matlabu, podmínky, cykly, grafické výstupy.
7. MATLAB: Zpracování dat, statistika, práce se soubory, čtení, zápis, binární soubor, textový soubor.
8. MATLAB: Grafické uživatelské rozhraní v Matlabu, statistické zpracování dat.
9. MATLAB: Úvod do Simulinku, simulace jednoduchého systému, vztah modelu v Simulinku k Matlabu.
10. C: Úvod do jazyka C, základní struktura programu v C, funkce main(), proměnné, pole, výrazy, operátory, priorita operátorů. Vstupy, výstupy, jednoduchá konzolová aplikace.
11. C: Příkazy, větvení a cykly for, while, do-while, příkazy break, continue, přepínač. Exemplární konzolové aplikace.
12. C: Funkce. Deklarace funkcí, volání, ošetření událostí, rekurze, sestavení vlastní knihovny. Standardní knihovny a jejich použití.
13. C: Algoritmy vyhledání maxima, minima, setřídění.

Exercise in computer lab

39 hod., compulsory

Teacher / Lecturer

Syllabus

1. Informační systémy VUT.
2. Počítačové sítě a operační systémy.
3. Počítačové systémy, hardwarová architektura.
4. Vývoj softwarové aplikace, operační kód, instrukční soubor, jazyk symbolických adres, vyšší programovací jazyky, překlad.
5. MATLAB: Úvod do Matlabu, modelování systémů, spojitý, diskrétní a číslicový systém. Jednoduchý model fyzikálního děje.
6. MATLAB: Reprezentace vektorů a matic v Matlabu, podmínky, cykly, grafické výstupy.
7. MATLAB: Zpracování dat, statistika, práce se soubory, čtení, zápis, binární soubor, textový soubor.
8. MATLAB: Grafické uživatelské rozhraní v Matlabu, statistické zpracování dat.
9. MATLAB: Úvod do Simulinku, simulace jednoduchého systému, vztah modelu v Simulinku k Matlabu.
10. C: Úvod do jazyka C, základní struktura programu v C, funkce main(), proměnné, pole, výrazy, operátory, priorita operátorů. Vstupy, výstupy, jednoduchá konzolová aplikace.
11. C: Příkazy, větvení a cykly for, while, do-while, příkazy break, continue, přepínač. Exemplární konzolové aplikace.
12. C: Funkce. Deklarace funkcí, volání, ošetření událostí, rekurze, sestavení vlastní knihovny. Standardní knihovny a jejich použití.
13. C: Algoritmy vyhledání maxima, minima, setřídění.

Elearning