Zagadnienia dla osób, których jestem promotorem lub recenzentem.
- Translacja programów, kompilator, interpreter, kompilacja do kodu maszynowego, kompilacja do kodu pośredniego, maszyna wirtualna, wpływ rodzaju translacji na mechanizmy języka (np. silna i słaba typizacja).
- Pojęcie klasy i obiektu w programowaniu obiektowym. Zakresy widoczności składowych klasy, pola statyczne. Funkcje składowe, funkcje statyczne. Sposoby tworzenia obiektów w językach C++, Java, C# — podobieństwa i różnice. Konstruktory i destruktor — rola, zastosowania, występowanie w różnych językach obiektowych.
- Dziedziczenie w programowaniu obiektowym. Klasa bazowa, klasa pochodna. Redefinicja funkcji składowych, modyfikator dostępu
protected
, konstruktory i destruktor a dziedziczenie. Dziedziczenie wielobazowe. - Polimorfizm w programowaniu obiektowym. Rodzaje polimorfizmu. Pojęcie i rola funkcji wirtualnych. Funkcje wirtualne a dziedziczenie. Funkcje wirtualne w językach C++, Java, C#.
- Pojęcie klucza w relacyjnych bazach danych. Typy kluczy, do czego są stosowane klucze poszczególnych typów.
- Powiązania pomiędzy tabelami w relacyjnych bazach danych. Rodzaje powiązań. Realizowalność powiązań w modelu relacyjnym. Powiązania a klucze.
- Formaty XML, JSON – omówić i podać zastosowania.
- UML — przeznaczenie i elementy diagramu klas.
- Wymagania funkcjonalne i niefunkcjonalne w inżynierii oprogramowania
- UML — rodzaje diagramów.