Programming Techniques I (FSI-SPT)

Academic year 2022/2023
Supervisor: prof. RNDr. Ing. Tomáš Březina, CSc.  
Supervising institute: ÚM all courses guaranted by this institute
Teaching language: Czech
Aims of the course unit:

Knowledge and skill to shape students' programming habits with regard to productive writing of robust object-oriented applications under Windows in C# using its more advanced elements and VS 2019 environment tools.

Learning outcomes and competences:

Development of algorithmic thinking, structured approach to problem solving supported by actual object-oriented technologies and development of creativity.

Prerequisites:

Knowledge and skills that meet the conditions for successful completion of the BASICS OF PROGRAMMING (SZP) course are expected.

Course contents:

In this course we deal with programming console applications for Windows in C#. For this, more advanced secure object-oriented programming constructions supporting top-down design and wrapping methodologies are used.
We develop applications in the VS 2019 environment using its productivity-enhancing tools.

Teaching methods and criteria:

The preferred style is learning by solve simple authentic tasks.

Assesment methods and criteria linked to learning outcomes:

Students will prove the acquired knowledge and skills by independent elaboration of a semester project.
A graded credit is awarded on the basis of a point evaluation of a semester project, taking into account the point evaluation of three ongoing projects assigned during the semester. The evaluation is fully in the competence of the teacher according to the valid guidelines of BUT.

Controlled participation in lessons:

Teaching takes place according to the weekly syllabi of the course syllabus. Attendance at lectures is expected, at seminars mandatory. Absence from the seminar can be replaced by a separate elaboration of the projects discussed at the given seminar or by elaboration of a substitute project with a possible presentation. The way of compensation missed seminar is fully in the competence of the teacher.

Type of course unit:
    Lecture  13 × 1 hrs. optionally                  
    Computer-assisted exercise  13 × 2 hrs. compulsory                  
Course curriculum:
    Lecture

1. Encapsulation as system definition, class / structure, object creation / release
2. Member access modifiers, property, automatic property
3. Indexed property
4. Static members, secure code, exceptions and protected blocks
5. Object serialization, binary, text, minimum XML language
6. Inheritance, type compatibility and top-down design
7. Virtual methods and top-down design
8. Delegate, delegate vs. virtual method
9. Interface, interface vs. class
10. Delegate and lamda-functions
11. Minimum on Linq collections and extensions
12. Generic class
13. Event, event management

    Computer-assisted exercise

At each seminar, at least one application is written or developed with the teacher's explanation and under his guidance, in which the constructions according to the current topic presented at the lecture are implemented.

Literature - fundamental:
1. Albahari, J.: C# 10 in a Nutshell: The Definitive Reference, O'Reilly Media; 1st edition (March 15, 2022), ISBN 978-1098121952.
2. Price, M.: C# 11 and .NET 7 – Modern Cross-Platform Development Fundamentals; Packt Publishing; 7th ed. edition (November 8, 2022), ISBN 978-1803237800
3. Oficiální online dokumentace jazyka C#: https://learn.microsoft.com/en-us/dotnet/csharp/
The study programmes with the given course:
Programme Study form Branch Spec. Final classification   Course-unit credits     Obligation     Level     Year     Semester  
CŽV full-time study CZV Bases of Mechanical Engineering -- GCr 3 Compulsory 1 1 S
B-MAI-P full-time study --- no specialisation -- GCr 3 Compulsory 1 1 S