PYTANIA NA EGZAMIN MAGISTERSKI
mgr Teresa Podhorska
Metody konstrukcji złożonych deklaracji
Instrukcje iteracyjne
Tworzenie i usuwanie zmiennych dynamicznych
Zmienne i zarządzanie pamięcią (słowa kluczowe: auto register static, extern)
Dynamiczne struktury danych
Arytmetyka wskaźników
Sposoby przekazywania parametrów do funkcji
Funkcje rekurencyjne
Pochodne typy danych
2. prof. Walery Rogoza
Paradygmaty programowania.
Koncepcja abstrakcyjnego typu danych.
Paradygmat programowania obiektowego.
Przeciążanie funkcji i operatorów w języku C++.
Kapsułkowanie danych i funkcji-członków klasy w C++.
Sposoby inicjalizacji ukrytych danych klasy w C++.
Sposoby rozwiązania problemu wycieki pamięci w C++.
Mechanizmy dostępu do składowych klasy tworzonych statycznie i dynamicznie.
Definicje systemu rozproszonego i systemu równoległego.
Wymagania stawiane systemom rozproszonym.
Wymiary przezroczystości systemów rozproszonych.
Modele statyczne i dynamiczne modelu metaobiektowego systemu rozproszonego.
Typy warstwy pośredniej w systemach rozproszonych bazujących na paradygmacie programowania obiektowego.
Najgłówniejsze składniki architektury CORBY.
Składniki architektury DCOMU.
Istota problemu niejednorodności warstwy pośredniej w systemach rozproszonych, protokoły interoperabilności.
Języki programowania zarządzane i nie zarządzane w środowisku Microsoft.NET.
Najgłówniejsze funkcje oprogramowania CLR w środowisku Microsoft.NET:
Definicja i wykorzystanie wspólnego systemu typów danych CTS w środowisku Microsoft.NET.
Specyfikacja wspólnego języka CLS w środowisku Microsoft.NET.
3. dr inż. Michał Fedorov
1. Pojęcie procesu wytwarzania systemów informatycznych. Przykłady procesów i ich charakterystyka.
2. Metody szacowania nakładów pracy.
3. Zarządzanie ryzykiem w procesie wytwórczym.
4. Metody ustalenia wymagań stawianych oprogramowaniu.
5. Pojęcie komponentu. Typy komponentów i ich charakterystyka.
6. Język modelowania UML. Scharakteryzować podstawowe diagramy.
7. Proces modelowania wymagań funkcjonalnych.
8. Pojęcie architektury systemu informatycznego i jej widoki w procesie wytwórczym.
9. Pojęcie wzorca. Wzorce architektury.
10. Dekompozycja i jej miejsce w procesie projektowania systemów informatycznych.
11. Zadanie diagramów dynamicznych UML
12. Diagramy statyczne UML i ich zadanie i ich związek z kodem
13. Wymienić rodzaje i scharakteryzować wzorce projektowe
14. Testy alpha i beta
15. Testy metodą białej skrzynki
16. Testy metodą czarnej skrzynki
17. Omówić paradygmat obiektowy.
4. dr inż. Krzysztof Kraska
1. Wyjaśnij znaczenie pojęcia refaktoryzacji oprogramowania.
2. Wyjaśnij funkcję Aktora na diagramach przypadków użycia UML.
3. Wyjaśnij funkcję Przypadku Użycia na diagramach UML.
4. Omów pojęcia agregacji i zawierania na diagramach UML.
5. Scharakteryzuj wzorzec projektowy Fasada (ang. Facade).
6. Scharakteryzuj wzorzec projektowy Fabryka (ang. Factory).
7. Scharakteryzuj wzorzec projektowy Singleton.
8. Omów technologię Servletów oraz Java Server Pages.
9. Omów technologię Enterprise Java Beans.
10. Omów technologię Java Naming and Directory Interface (JNDI).
11. Omów technologię Java Messaging System (JMS).
12. Wymień trzy filary Szybkiego Wytwarzania Aplikacji (ang. Rapid Development)
tworzące tzw. Skuteczne Wytwarzanie (ang. Efficient Development).
13. Wyjaśnij znaczenie trójkąta wyboru Harmonogram-Koszt-Produkt (podstawy
zarządzania) dla Szybkiego Wytwarzania Aplikacji (ang. Rapid Development).
14. Omów kaskadowy (ang. Waterfall) model wytwarzania oprogramowania (ang.
software lifecycle model), jego zalety i wady.
15. Omów model wytwarzania oprogramowania (ang. software lifecycle model)
określany jako Code-and-Fix, jego zalety i wady.
Prof. W. Bielecki
Techniki kompilacji
Formalna definicja gramatyki i języka
Gramatyki jednoznaczne i wieloznaczne
Klasyfikacja gramatyk
Problem rozbioru gramatycznego
Analiza leksykalna
Analiza syntaktyczna metodami wyprowadzania
Analiza syntaktyczna metodami redukowania
Wewnętrzne postaci programu źródłowego (notacja polska, czwórki, trójki, drzewa)
Zadania analizy semantycznej
Generowanie przekładu
Techniki optymalizacji przekładu
Przetwarzanie równoległe
Definicja przetwarzania równoległego i rozproszonego, różnica miedzy przetwarzaniem
równoległym a rozproszonym
Rodzaje zależności danych
Podstawowe transformacje pętli
Przyspieszenie i efektywność,
Prawa Amdahl'a i Gustaffson'a
Paradygmaty programowania równoległego i rozproszonego (programowanie równoległości danych,
Programowanie danych dzielonych, programowanie z przesyłaniem komunikatów)
Mechanizmy synchronizacji dostępu do sekcji krytycznej
Metodyka projektowania algorytmów równoległych
Czas wykonania programu rozproszonego(czas obliczeń, czas komunikacji, czas przestojów)
Modele wydajności aplikacji rozproszonych
Pragmy API OpenMP C/C++