Zagadnienia na egzamin z Języków Programowania

Transkrypt

Zagadnienia na egzamin z Języków Programowania
Zagadnienia na egzamin z Języków Programowania Wysokiego Poziomu, Inżynieria
Akustyczna, AGH
1. Polimorfizm - wyjaśnienie terminu, uzasadnienie zastosowań w ramach programowania obiektowego,
realizacja w języku C++ z przykładem użycia
2. Enkapsulacja - wyjaśnienie terminu, uzasadnienie zastosowań w ramach programowania obiektowego,
realizacja w języku C++ z przykładem użycia
3. Dziedziczenie - wyjaśnienie terminu, uzasadnienie zastosowań w ramach programowania obiektowego,
realizacja w języku C++ z przykładem użycia
4. Wskaźniki i referencje w języku C++, podobieństwa, różnice, przypadki stosowania.
5. Klasy abstrakcyjne w języku C++, zastosowania, realizacja na przykładzie wybranego przykładu.
6. RAII - wyjaśnienie terminu, uzasadnienie zastosowań w ramach programowania obiektowego, realizacja
w języku C++ z przykładem użycia
7. Wybrany wzorzec projektowy kreacyjny - wyjaśnienie terminu, uzasadnienie zastosowań w ramach
programowania obiektowego, realizacja w języku C++ z przykładem użycia
8. Wybrany wzorzec projektowy strukturalnego- wyjaśnienie terminu, uzasadnienie zastosowań w ramach
programowania obiektowego, realizacja w języku C++ z przykładem użycia
9. Wybrany wzorzec projektowy behawioralny - wyjaśnienie terminu, uzasadnienie zastosowań w ramach
programowania obiektowego, realizacja w języku C++ z przykładem użycia
10. Podstawowe klasy generyczne dostępne w bibliotece STL, złożoność czasowa metod , zastosowania,
przykład użycia na wybranych dwóch klasach
11. Porównanie klas złożoności obliczeniowej algorytmów sortujących na przykładzie wybranego
sortowania O(n ) i sortowania szybkiego (quicksort).
12. Sortowanie szybkie (quicksort) - złożoność obliczeniowa oraz przykładowa implementacja na
przykładzie kodu w języku C++
13. Listy jako przykład struktury danych - opis, złożoność obliczeniowa wybranych operacji. Implementacja
klasy realizującej algorytm odwracania listy w wybranym języku programowania
14. Stos jako przykład struktury danych - opis, złożoność obliczeniowa wybranych operacji. Implementacja
klasy realizującej stos w wybranym języku programowania
15. Drzewo binarne jako przykład struktury programistycznej - opis, złożoność obliczeniowa wybranych
operacji.
16. C++11 - listy inicjalizacyjne, uzasadnienie i opis zmian, przykłady zastosowań, przykładowy kod w
języku C++ prezentujący przykład użycia.
17. C++11 - poprawki w mechanizmie konstrukcji obiektów, uzasadnienie i opis zmian, przykłady
zastosowań, przykładowy kod w języku C++ prezentujący przykład użycia
18. Obiekty z dynamicznie przydzieloną pamięcią w języku C++. Wyjaśnienie terminu, uzasadnienie
zastosowania, przykładowe zastosowanie z dołączonym kodem źródłowym.
19. Różnice między językami dynamicznymi, a statycznymi na przykładzie języków Python i C++
20. Iteratory, wyjaśnienie terminu, uzasadnienie zastosowań w ramach programowania obiektowego,
realizacja w języku C++ z przykładem użycia.
21. Biblioteka wxWidgets, omówienie głównych klas, konstrukcja programu,
22. System Linux, omówienie rodziny systemów pod kątem różnic względem systemów Windows.
23. Powłoka systemu linux, wybrane polecenia i ich zastosowanie.
24. Rekurencja - definicja, typy rekurencji, wady i zalety stosowania, przykładowe zastosowanie z
dołączonym kodem źródłowym w języku Python.
25. Metody przekazywania argumentów do funkcji w C++.
26. Kontenery STL, zastosowania, złożoność podstawowych operacji <- DUPLIKAT!.
27. W jakich zastosowaniach i sytuacjach warto korzystać z różnych rodzajów języków programowania (np.
C++ vs. języki skryptowe). Podaj przykłady.
28. Użycie inteligentnych wskaźników do zarządzania zasobami.
29. Elementy programowania funkcyjnego w języku Python. Wymień dostępne w języku funkcje i podaj
przykłady użycia.
30. Lista składana (ang. list comprehension) w języku Python jako narzędzie do transformacji kolekcji.
Zademonstruj na przykładowym kodzie źródłowym.
31. Przykładowe operacje na obiektach typu str i unicode służące wyszukiwaniu informacji w tekście.
32. Slice operator na listach Pythona z przykładami użycia.
33. Przykłady składania obiektów typu str lub unicode za pomocą operatora % lub metody format.
34. Generacja kodu w języku Python poparta przykładem użycia funkcji eval lub exec.
35. Duck typing jako realizacja polimorfizmu w Pythonie, z przykładem z biblioteki standardowej.
2