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
PRA132 doc. Ing. Michal Prauzek, Ph.D.
ROZ132 Ing. Jan Rozhon, Ph.D.
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
Combined 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

Další požadavky na studenta

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

Combined form (validity from: 2019/2020 Winter semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of points
Graded credit Graded credit 100  51
Mandatory attendence parzicipation: 80% attendance at the exercises

Show history

Occurrence in study plans

Academic yearProgrammeField of studySpec.FormStudy language Tut. centreYearWSType of duty
2019/2020 (B0714A150002) Control and Information Systems P English Ostrava 1 Compulsory study plan
2019/2020 (B0714A060011) Telecommunication technology 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 (B0914A060002) Biomedical technology P English Ostrava 1 Compulsory study plan
2019/2020 (B0914A060002) 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