Tworzenie aplikacji desktopowych

Opis kursu:

Kurs składa się z ok. 30-tu zajęć wykładowych oraz ok. 60-ciu zajęć laboratoryjnych i dotyczy technicznych oraz algorytmicznych zagadnień umożliwiających tworzenie dużych aplikacji okienkowych w językach C/C++, C# oraz Python.

Cele kursu:

Podstawowym technicznym celem kursu jest nabycie kompentencji w programowaniu aplikacji istotnie wykorzystujących rozbudowany interfejs graficzny. W związku z tym zostanie na nim zaprezentowane kilka wiądących w językach C++, C# oraz Python bibliotek okienkowych. Biblioteki takie z natury wykorzystują paradygmat obiektowy programowania, więc pośrednim celem kursu jest ustabilizowanie umiejętności programowania obiektowego.

Część 1 kursu - tworzenie aplikacji w języku C++

Język C++ ze względu na swoją specyfikę umożliwia głębokie zrozumienie wielu koncepcji dotyczących programowania komputerów. Prezentowany kurs jest ukierunkowany przede wszystkim na nabycie kompetencji w programowaniu obiektowym wraz z szablonami i biblioteką standardową. Zawiera on zatem dość dużą ilość wiedzy pojęciowej, wzbogaconej sporą ilością ćwiczeń uzupełniających czysto językowy charakter kursu o aspekty algorytmiki różnego typu, programowania współbieżnego i in. Z tego względu część omawianych na kursie zagadnień będzie opcjonalna (dla chętnych). Dobre poznanie nowoczesnego standardu C++ (obecnie jest to standard C++23) powoduje, że uczenie się kolejnych, porównywalnie silnych, języków (C#, Java) nie wymaga większego wysiłku - są to języki bardzo podobne składniowo do C++, ale ze względu na raczej 'produkcyjny' ich charakter są znacznie mniej efektywne w edukacji podstaw programowania.

Pozycje referencyjne:

  1. Algorytmy
    1. Charles E. Leiserson, Clifford Rivest, Thomas H. Cormen, Wprowadzenie do algorytmów, PWN 2013.

  2. Język C/C++
    1. Jerzy Grębosz, Opus magnum C++11. Programowanie w języku C++ (komplet), Helion 2017.
    2. Stephen Prata, Język C++. Szkoła programowania, Wydanie VI., Helion 2012.
    3. Alex Allain, C++. Przewodnik dla początkujących, Helion 2014.
    4. Andrzej Stasiewicz, C++. Ćwiczenia praktyczne, Wydanie III (ebook), Helion 2011.
    5. Wisnu Anggoro, C++. Struktury danych i algorytmy, Helion 2019.
    6. Lee Zhi Eng, Qt 6 C++ GUI Programming Cookbook. Practical recipes for building cross-platform GUI applications, widgets, and animations with Qt 6 - Third Edition, Packt Publishing 2024.