Programming Techniques (FSI-SPT)

Academic year 2023/2024
Supervisor: doc. Ing. Pavel Štarha, Ph.D.  
Supervising institute: ÚM all courses guaranted by this institute
Teaching language: Czech
Aims of the course unit:

The aim of the course is to introduce students to programming techniques and concepts that they will use to create algorithms and their implementations in applications created using the C# programming language. Further the aim is to make the students familiar with the concepts of object oriented programming applied to the design and implementation of programs.

Learning outcomes and competences:

Students will gain advanced knowledge of C#, object-oriented programming and algorithmization of problems. Students are able to apply this knowledge in the development of programs to solve real-world tasks.

Prerequisites:

Basic computer skills, basic knowledge of C# programming language and Visual Studio IDE.

Course contents:

The course focuses on presenting advanced programming topics using C# and the .NET platform in the Visual Studio IDE. Concepts of both theoretical and practical nature are introduced. At the end of the course, the knowledge is applied to solve real-world problems.

Teaching methods and criteria:

The lectures explain the basic principles and theory of the topics. The exercises are aimed at practicing the material covered in the lectures.

Assesment methods and criteria linked to learning outcomes:

The evaluation of the course consists of points for the semester project (presentation of a functional program in C# - 70%) and points for independent tasks (30%) assigned during the semester. The condition for getting the credit is obtaining at least 50% of the points from the semester project. Additional points can be awarded for an active approach during the course.

Controlled participation in lessons:

Attendance at lectures is recommended, attendance at the exercise is compulsory. Classes are held according to the weekly schedule. The material discussed in the exercises corresponds to the current topic in the lecture according to the syllabus. The substitution of missed exercises is entirely at the discretion of the instructor.

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

1. Data structures, collections.
2. Programming paradigms, programming patterns.
3. OOP principles.
4. Application of interfaces.
5. Working with libraries.
6. Introduction to GUI, events.
7. Serialization and deserialization of objects, working with data.
8. LINQ.
9. Generic data type.
10. Introduction to parallel programming.
11. Code testing.
12. Project solving.
13. Project solving.

    Computer-assisted exercise

The exercises are aimed at practice of the material covered in the topics on lectures, see the lectures outline. Emphasis is placed on the ability to work independently, i.e. to develop a simple application, often as part of independent tasks.

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  
B-MAI-P full-time study --- no specialisation -- GCr 3 Compulsory 1 1 S