Algorithmization and Programming Techniques (FSI-DPT)

Academic year 2019/2020
Supervisor: prof. Ing. Radomil Matoušek, Ph.D.  
Supervising institute: ÚAI all courses guaranted by this institute
Teaching language: Czech
Aims of the course unit:
The introduction to the object oriented methodology of work with a computer. The algorithmic thinking extent and structured approach to problem solving. The development of computer creativity and a structured approach to problem solving.
Learning outcomes and competences:
Students will learn the methodology of program development based on the object-oriented programming and will acquire skills to solve a problem through object technologies.
Prerequisites:
The standard high school computer literacy is expected.
Course contents:
Object oriented programming and basics programming principles are presented . These principles are closely linked to systematic design of inherited classes.
Teaching methods and criteria:
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:
Course-unit credit requirements: active participation in seminars and individual elaboration of an assigned project. The examination comprises written and oral parts. The written part is represented by a test with four questions. Oral part consists of discussion on the written part with possible complementary questions. The evaluation is fully in competence of a tutor according to the valid directives of BUT.
Controlled participation in lessons:
The attendance at lectures is recommended while at seminars it is obligatory. Education runs according to week schedules. The form of compensation of missed seminars is fully in the competence of a tutor.
Type of course unit:
    Lecture  13 × 2 hrs. optionally                  
    Computer-assisted exercise  13 × 2 hrs. compulsory                  
Course curriculum:
    Lecture 1. Introduction: the motivation and principles of object oriented programming.
2. Variables and control structures, minimum on encapsulation.
3. Dynamic array, work with dynamic arrays.
4. The loop in detail, loop invariant.
5. Encapsulation and top-down design.
6. Static methods, safe code, exceptions and protected blocks.
7. Inheritence, class compatibility and top-down design.
8. Polymorphism, delegate and top-down design.
9. Recursion, implementation, examples of its use.
10. Operations with text files, creation, read and writting.
11. Basics of work with graphics, bitmap, device graphic context.
12. System information usage, timer, idea of multithreading.
13. Dijkstra's layered design.
    Computer-assisted exercise 1. Familiarization with development environment MVS 2008.
2. Class and control structure definition.
3. Dynamic array usage.
4. Loop invariant design.
5. Acquired knowledge usage, top-down design.
6. Static methods usage, protected blocks.
7. Inheritance, class compatibility usage, top-down design.
8. Polymorphism and delegate, top-down design.
9. Recursion usage.
10. Operations with text files.
11. Graphic output of application, work with bitmap.
12. Internal timer usage.
13. Accreditation.

Exercises cover and develop typical examples.
Literature - fundamental:
1. Wirth, N.: Algorithms and Data Structures. Prentice Hall, 1985.
2. Hejlsberg, A. et al.: C# Programming Language (Covering C# 4.0), The (4th Edition) (Microsoft Windows Development Series), 2010
3. Sharp J.: Microsoft Visual C# 2008 Krok za krokem
Literature - recommended:
1. Hejlsberg, A. et al.: C# Programming Language (Covering C# 4.0), The (4th Edition) (Microsoft Windows Development Series), 2010
2. Hanák, J.: Praktické objektové programování v jazyce C#, 2009
The study programmes with the given course:
Programme Study form Branch Spec. Final classification   Course-unit credits     Obligation     Level     Year     Semester  
B3S-P full-time study B-STI Fundamentals of Mechanical Engineering -- Cr 0 Elective (voluntary) 1 2 S
B3S-P full-time study B-AIŘ Applied Computer Science and Control -- Cr,Ex 5 Compulsory 1 2 S
B3A-P full-time study B-MET Mechatronics -- Cr 0 Elective (voluntary) 1 1 S