450-2079/02 – Basics of Algorithms and Programming (ZAP)

Gurantor departmentDepartment of Cybernetics and Biomedical EngineeringCredits5
Subject guarantordoc. Ing. Michal Prauzek, Ph.D.Subject version guarantordoc. Ing. Michal Prauzek, Ph.D.
Study levelundergraduate or graduateRequirementCompulsory
Year1Semestersummer
Study languageEnglish
Year of introduction2019/2020Year of cancellation
Intended for the facultiesFEIIntended for study typesBachelor
Instruction secured by
LoginNameTuitorTeacher giving lectures
BOR0084 Ing. Monika Adamíková, Ph.D.
PAT0060 Ing. Tereza Kučová
PRA132 doc. Ing. Michal Prauzek, Ph.D.
ROZ132 Ing. Jan Rozhon, Ph.D.
SAF077 Ing. Jakub Šafařík, Ph.D.
SLI0075 Ing. Martina Skapová
VOZ29 prof. Ing. Miroslav Vozňák, Ph.D.
Extent of instruction for forms of study
Form of studyWay of compl.Extent
Full-time Graded credit 2+3
Part-time Graded credit 0+21

Subject aims expressed by acquired skills and competences

The aim is to introduce students to the basic problems of algorithms and programming and to demonstrate implementation techniques introduced in higher programming languages. After completing the course, students will be able algorithmize basic tasks and create programs for solving simple problems using basic algorithmic structures in the general development environment. Students will understand the relationship between some features of computer architecture elements and their display in the C programming language needed to handle tasks using non-standard peripherals. Also students will be able to analyze and algorithmize simple problems using a structured approach.

Teaching methods

Lectures
Individual consultations
Tutorials
Experimental work in labs
Project work

Summary

The course is an introductory course on algorithmization and programming in all electrotechnical disciplines due to the wide applicability of language C. Students are familiar with the basic hardware elements of the computer and their relation to selected program constructions. Discussed algorithms and data structures are demonstrated, the students are encouraged to structured approach to algorithmic solved problems. Emphasis is placed on the practical implementation of algorithms and data structures. In the second part of the course students are familiar with solutions of common tasks in higher programming languages with emphasis on fast prototyping and development and solution of practical tasks using functional and object-oriented approach.

Compulsory literature:

KERNIGHAN, Brian W. a Dennis M. RITCHIE. The C programming language. 2nd ed. Englewood Cliffs, N.J.: Prentice Hall, c1988. SEDGEWICK, Robert, Kevin Daniel WAYNE a Robert. DONDERO. Introduction to programming in Python: an interdisciplinary approach. New York: Addison-Wesley, 2015. ISBN 9780134076430. NEWHAM, Cameron. a Bill. ROSENBLATT. Learning the bash Shell. 3rd ed. Sesbastopol, [Calif.]: O'Reilly, c2005. ISBN 0596009658.

Recommended literature:

VAN DER LINDEN, Peter. Expert C programming: deep C secrets. Mountain View: SunSoft Press, 1994.

Way of continuous check of knowledge in the course of semester

Verification of study: test individual project Conditions for credit: The student is classifying on base tests and individual projects. Award of 14 th. week. C Total classification 51-100 points according study rules.

E-learning

Other requirements

There are not defined other requirements for student.

Prerequisities

Subject has no prerequisities.

Co-requisities

Subject has no co-requisities.

Subject syllabus:

Lectures: 1. Introduction to algorithmization and programming, motivation, algorithm, computer architecture, compilation process. 2. Electronic memory, types of memory, variables, constants, simple data types, basic operators, formatted input and output. 3. Control structures: Boolean expression, comma operator, conditional expression, conditions, cycles, switch, jump command. 4. Functions: function declarations and definitions, function parameters, validity range, function return value. 5. Memory classes, type modifiers, type casting, preprocessor: macros, includes, conditional compilation, separate compilation. 6. Indicators: pointers and functions, address arithmetic, parameter passing by value and reference. 7. Single-dimensional arrays, multidimensional arrays, strings, structures, union, enumeration types, typedef operator, bit operations. 8. Introduction to the scripting approach to solving algorithmic problems. Program environment - Bash, Python. 9. Program structure, function, console output in the Bash and Python scripting environment. 10. Advanced data types in scripting environments, their use and benefits, optimization, libraries and work with them. 11. Implement Cycles, Conditions, and Recursions in Python Scripting Environment. 12. File system work, search, rights, write and read. JSON format. 13. A brief basis for object programming approach. 14. Discrete phenomena and their simulations. Code documentation. Labs: 1. Language C: programming environment 2. Language C: variable definition, simple data types, formatted input and output. 3. Language C: boolean expression, comma operator, conditional expression, conditions, cycles, switch, goto command. 4. Language C: function definitions and declaration, function parameters, validity of identifiers, function return value. 5. Language C: memory classes, type modifiers, type casting, preprocessor: macros, includes, conditional compilation, separate compilation. 6. Language C: pointers, pointers and functions, address arithmetic, parameter passing by value and reference. 7. Language C: one-dimensional arrays, multidimensional arrays, strings, structures, union, enumeration types, typedef operator, bit operations. 8. Shell Bash: system utilities and their use in simple scripts. 9. Shell Bash: chaining utilities, working with variables, definition of function, console output. 10. Python Language: Comparison with Bash approach to defining simple scripts. Work with variable output on the console. Formal definition of script structure, output formatting, functions and their chaining. 11. Python Language: working with dictionaries, numerical libraries and computations with them, other commonly used libraries in Python, conditional branching, and use of data types in terms. 12. Python language: cycles and recursion and their use for numerical computations and simulations, file system work, JSON format. 13. Python language: classes and inheritance, practical examples of the use of objects in scripting. 14. Python Language: An introduction to simulation discrete phenomena.

Conditions for subject completion

Full-time form (validity from: 2019/2020 Winter semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of pointsMax. počet pokusů
Graded credit Graded credit 100  51 3
Mandatory attendence participation: 80% attendance at the exercises

Show history

Conditions for subject completion and attendance at the exercises within ISP: Completion of all mandatory tasks within individually agreed deadlines.

Show history

Occurrence in study plans

Academic yearProgrammeBranch/spec.Spec.ZaměřeníFormStudy language Tut. centreYearWSType of duty
2024/2025 (B0714A060017) Biomedical Technology P English Ostrava 1 Compulsory study plan
2024/2025 (B0714A060020) Electrical Engineering P English Ostrava 1 Compulsory study plan
2024/2025 (B0714A150002) Control and Information Systems KYB P English Ostrava 1 Compulsory study plan
2023/2024 (B0714A060020) Electrical Engineering P English Ostrava 1 Compulsory study plan
2023/2024 (B0714A150002) Control and Information Systems KYB P English Ostrava 1 Compulsory study plan
2023/2024 (B0714A060017) Biomedical Technology P English Ostrava 1 Compulsory study plan
2022/2023 (B0714A060017) Biomedical Technology P English Ostrava 1 Compulsory study plan
2022/2023 (B0714A060017) Biomedical Technology K English Ostrava 1 Compulsory study plan
2022/2023 (B0714A150002) Control and Information Systems KYB P English Ostrava 1 Compulsory study plan
2022/2023 (B0714A150004) Computer Systems for the Industry of the 21st. Century P English Ostrava 1 Compulsory study plan
2022/2023 (B0714A060020) Electrical Engineering P English Ostrava 1 Compulsory study plan
2021/2022 (B0714A060017) Biomedical Technology P English Ostrava 1 Compulsory study plan
2021/2022 (B0714A060017) Biomedical Technology K English Ostrava 1 Compulsory study plan
2021/2022 (B0714A060020) Electrical Engineering P English Ostrava 1 Compulsory study plan
2021/2022 (B0714A150004) Computer Systems for the Industry of the 21st. Century P English Ostrava 1 Compulsory study plan
2021/2022 (B0714A150002) Control and Information Systems KYB P English Ostrava 1 Compulsory study plan
2021/2022 (B0713A060006) Electrical Power Engineering P English Ostrava 1 Compulsory study plan
2021/2022 (B0714A060013) Applied Electronics P English Ostrava 1 Compulsory study plan
2020/2021 (B0714A150002) Control and Information Systems KYB P English Ostrava 1 Compulsory study plan
2020/2021 (B0714A150004) Computer Systems for the Industry of the 21st. Century P English Ostrava 1 Compulsory study plan
2020/2021 (B0714A060017) Biomedical Technology K English Ostrava 1 Compulsory study plan
2020/2021 (B0714A060017) Biomedical Technology P English Ostrava 1 Compulsory study plan
2020/2021 (B0714A060013) Applied Electronics P English Ostrava 1 Compulsory study plan
2020/2021 (B0714A060009) Mobile Technology P English Ostrava 1 Compulsory study plan
2020/2021 (B0714A060011) Telecommunication Technology ZKT P English Ostrava 1 Compulsory study plan
2020/2021 (B0713A060006) Electrical Power Engineering P English Ostrava 1 Compulsory study plan
2020/2021 (B0714A060020) Electrical Engineering P English Ostrava 1 Compulsory study plan
2019/2020 (B0714A150002) Control and Information Systems KYB P English Ostrava 1 Compulsory study plan
2019/2020 (B0714A060011) Telecommunication Technology ZKT P English Ostrava 1 Compulsory study plan
2019/2020 (B0714A150004) Computer Systems for the Industry of the 21st. Century P English Ostrava 1 Compulsory study plan
2019/2020 (B0714A060009) Mobile Technology P English Ostrava 1 Compulsory study plan
2019/2020 (B0713A060006) Electrical Power Engineering P English Ostrava 1 Compulsory study plan
2019/2020 (B0714A060017) Biomedical Technology P English Ostrava 1 Compulsory study plan
2019/2020 (B0714A060017) Biomedical Technology K English Ostrava 1 Compulsory study plan
2019/2020 (B0714A060013) Applied Electronics P English Ostrava 1 Compulsory study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner

Assessment of instruction

Předmět neobsahuje žádné hodnocení.