Basics of Programming (FSI-SZP)

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 guide students' programming habits to productive writing of robust applications under Windows in C# using its basic elements and tools of the VS 2019 environment.

Learning outcomes and competences:

Understanding the principles of algorithmic thinking and a structured approach to problem solving supported by simple actual technologies and the development of creativity.

Prerequisites:

Computer literacy and user knowledge of Windows 11 (12) are expected.

Course contents:

In this course we deal with an introduction to programming console applications for Windows in C#.
For this, the basic elements of the language are applied by top-down methodology and on the basis of simple considerations on invariants.
We develop applications in the VS 2019 environment using user-friendly code writing tools that increase productivity.

Teaching methods and criteria:

The preferred style is learning by solve simple 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. Algorithm, program and its basic elements, introduction to VS 2019 and C#
2. Declaration of value variable, expression, command, assignment command, block
3. Conditional statement, cycle statements, code writing and editor tools
3. Cycle invariant, use for algorithm formulation
4. Top-down design system and block structure of the program
5. Static method as a named block, overloading, code writing and editor tools
6. Value type n-tuple, tips for project organization
7. Reference type 1D field, value vs. reference type, mention of collections
8. 1D field as a vector, polynomial, formulation of simple algorithms
9. Reference type 1D1D field (toothed field)
10. Reference field 2D array
11. 2D arrays as matrices, formulation of simple algorithms
12. Recursion, recursion invariant
13. Stream, text file

    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. Price, M.: C# 11 and .NET 7 – Modern Cross-Platform Development Fundamentals; Packt Publishing; 7th ed. edition (November 8, 2022), ISBN 978-1803237800.  
1. Albahari, J.: C# 10 in a Nutshell: The Definitive Reference, O'Reilly Media; 1st edition (March 15, 2022), ISBN 978-1098121952.
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 4 Compulsory 1 1 W
B-MAI-P full-time study --- no specialisation -- GCr 4 Compulsory 1 1 W