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