Course detail

Algorithms and Programming Techniques

FSI-VCPAcad. year: 2022/2023

The course deals with algorithms and programming. C and C ++ programming languages are used for practicing. C (and languages derived from it) is currently one of the most widely used programming languages. Its great advantages include its universal applicability for various application areas and availability for most existing platforms. The C ++ language shows a very high degree of implementation of the features of object-oriented programming. The C ++ compiler is available for various platforms, the language itself is very well standardized. These features make C ++ one of the most suitable languages for building large-scale applications today.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Learning outcomes of the course unit

Students will obtain the basic skills and experiences of program writing and debugging of average stage of difficulty. Students gain insight into principles and methods of object-oriented programming using C++ language.

Prerequisites

The course expects basic knowledge of algorithms and computer literacy.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

The course is taught through lectures explaining the basic principles and theory of the discipline. Exercises are focused on practical topics presented in lectures.

Assesment methods and criteria linked to learning outcomes

The course-unit credit award requirements are both active participation in seminars and individual elaboration of two software projects (the first project in the C language and the second one in the C++ language). Students select their projects assignments, which are approved by the teacher. The examination is oral and consists of discussion on the created projects with possible complementary questions. The evaluation is fully in competence of a tutor according to the valid directives of BUT.

Course curriculum

Not applicable.

Work placements

Not applicable.

Aims

The aim of the course is to learn how to formulate algorithms for a wide range of engineering tasks, develop programs in C and C ++ languages and understand the features of object-oriented programming and methodology of program design and creation using OOP.

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

The attendance at lectures is recommended; the attendance at seminars is obligatory. Education runs according to week schedules. The form of compensation for missed seminars is fully in the competence of the tutor.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Drozdek, A.: Data Structures and Algorithms in C++. CENGAGE Learning, 2013. (EN)
Kernighan, B. W. - Ritchie, D, M.: The C Programming Language. Second Edition. Prentice-Hall, 2012. (EN)
Stroustrup, B.: The C++ Programming Language, Fourth edition, Pearson Education, 2013. (EN)

Recommended reading

Capper, D.M.: Introducing C++ for Scientists, Engineers and Mathematicians, Springer, 2001. (EN)
Virius, M.: Jazyky C a C++, kompletní průvodce. Grada, 2011. (CS)

Elearning

Classification of course in study plans

  • Programme B-STR-P Bachelor's

    specialization AIŘ , 2 year of study, summer semester, compulsory

  • Programme N-AIŘ-P Master's 1 year of study, summer semester, elective

  • Programme LLE Lifelong learning

    branch CZV , 1 year of study, summer semester, compulsory

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Syllabus

1. Introduction, Basic Data Types. Operators, Expressions.
2. Declaration and Definition. Programm Structure. Control Structures.
3. Arrays and Pointers, Pointer Aritmetic. Functions.
4. Structures, Unions, Type Definition. Preprocessor. Files and Streams.
5. C++ Language History. Differences between C and C++ languages.
6. OOP basic concepts. Object data types, member functions.
7. Class member access control. Constructors and destructors. Static members. Operator overloading.
8. Inheritance. Polymorphism, virtual member functions, abstract classes.
9. C++ data streams. Data structures in C++.
10. Exceptions handling. Templates.
11. Object oriented analysis and design.
12. - 13. Design and development of large projects using C++.

Computer-assisted exercise

26 hod., compulsory

Teacher / Lecturer

Syllabus

1. Introduction to Visual Studio. Simple console application.
2. Console applications development using Visual Studio.
3.-5. Realization of C-programs for basic algorithms - array processing, pointers, dynamic data structures.
6. Large projects in C.
7. Constructrors and destructors.
8. Inheritance, polymorphism.
9. Data structures realization in C++.
10. Templates.
11. Event driven programming. Example of Windows application.
12. Simple projects in Java a C#.
13. Discussion of individual projects.

Elearning