Computer Programming 1
FEKT-BPC-PP1Acad. year: 2019/2020
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 object oriented programming basics and graphical user interface.
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 graphical user interface.
5) Write well-arranged and understandable code according to programming conventions.
The subject knowledge on the secondary school level is required.
Recommended optional programme components
Recommended or required reading
Pecinovský, R., Virius, M. Učebnice programování - základy algoritmizace. Praha: Grada Publishing, 1997. (CS)
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 (CS)
ATTAWAY, Stormy. MATLAB: a practical introduction to programming and problem solving. 2nd ed. Waltham, MA: Butterworth-Heinemann, c2012. ISBN 0123850819. (CS)
Kabelová, A., Dostálek, L. Velký průvodce protokoly TCP/IP a systémem DNS. Brno: Computer Press, 2008. (CS)
Ličev, L., Morkes, D. Procesory - architektura, funkce, použití. Brno: Computer Press, 1999. (CS)
VALENTINE, D. T. a Brian D. HAHN. Essential MATLAB for engineers and scientists. 3rd ed. London: Butterworth Heinemann, 2007. (CS)
Brandejs, M. Linux. Praktický průvodce. Brno: Konvoj, 2003. (CS)
Kernighan, B. W., Ritchie, D. M. Programovací jazyk C. Brno: Computer Press, 2006. (CS)
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 12 points for the activity in computer practices, 50 points for tests during the semester, 38 points (maximally) for an individual project in MATLAB. The evaluation of the students will be made on a distant basis.
Language of instruction
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
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, student 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.