ZAGADNIENIA NA EGZAMIN LICENCJACKI Z INFORMATYKI Przedmioty informatyczne 1. Matematyka dyskretna Dwójkowy system zapisu liczb. Zliczanie podstawowych obiektów kombinatorycznych (liczba ciągów bez powtórzeń, ciągów z powtórzeniami, funkcji, podzbiorów, podzbiorów kelementowych, lub permutacji). Zasada szufladkowa Dirchleta, zasada sumy. Relacja kongruencji modulo, pierścień Zm , elementy odwracalne w pierścieniu Zm . Algorytm szybkiego potęgowania, największy wspólny dzielnik, algorytm Euklidesa. Metoda poszukiwań binarnych. Drzewa i algorytmy przeszukiwania drzew. Funkcje, wyraŜenia i sieci boolowskie. 2. Wstęp do programowania, język programowania Pascal Program rekurencyjny i iteracyjny. Strukturalne typy danych, procedury i moduły. Dowodzenie poprawności programu, niezmiennik pętli. Notacja BNF. 3. Język programowania C Interfejsy standardowej biblioteki; struktura programów; podstawowe typy danych; instrukcje sterujące; funkcje, rekurencyjne wywołania funkcji; zasięg zmiennych zewnętrznych i funkcji; standardowe biblioteki (wejścia i wyjścia, obsługi tekstów, zarządzania pamięcią); wskaźniki; związek między tablicami i wskaźnikami; nieprzezroczyste typy danych; interfejs programowania aplikacji (ang. API - Application Program Interface). Definiowanie rekurencyjnych typów danych 4. Programowanie obiektowe, język Java Typy proste i obiektowe w języku Java; sposoby zabezpieczania dostępu do komponentów klas i obiektów; polimorfizm w językach obiektowych; pakiety i interfejsy w języku Java; tworzenie i synchronizacja wątków. 5. Automaty i języki WyraŜenia regularne, języki regularne; automaty skończone deterministyczne i niedeterministyczne. Gramatyki i języki bezkontekstowe. Maszyna Turinga i klasa języków akceptowanych przez maszyny Turinga. Problemy rozstrzygalne i nierozstrzygalne. 6. Algorytmy i struktury danych. Algorytmy sortowania i ich złoŜoność czasowa; Stosy i kolejki: definicja i typowe implementacje. Drzewa poszukiwań binarnych; B-drzewa; Przykłady zastosowań B-drzew. Tablice z haszowaniem; sposoby rozwiązywania konfliktów. Kopce binarne i ich zastosowania. 7. Systemy operacyjne Budowa systemu plików w systemach Unixowych/Linuxowych; Koncepcja procesu w systemie operacyjnym; Nisko- i wysokopoziomowe mechanizmy komunikacji międzyprocesowej; Biblioteki statyczne i dzielone w systemach operacyjnych. Bash jako język programowania. Omów na przykładach cechy języka AWK. 8. Architektura komputerów Alfabety komputerowe; rejestry. Asemblery (podstawowe instrukcje, sposoby organizowania pętli); typy przerwań. Działanie procesora w trybie rzeczywistym i chronionym. 9. Sieci Model ISO-OSI stosu protokołów komunikacyjnych. Charakterystyka modelu klient-serwer. Pojęcie topologii fizycznej sieci komputerowych. Organizacja domen w sieci Internet. Porównanie działania protokołów TCP i UDP. Protokoły poczty elektronicznej. 10. Programowanie obiektowe MoŜliwości ograniczania dostępu do składowych klas (czyli pól i metod) w języku Java. Mechanizm przesłaniania (nadpisywania), Mechanizm przeciąŜania (przeładowania). Modyfikator static w definicji metod i pól w języku Java. Dynamiczne wiązanie (metody wirtualne) ilustrując przykładem w języku Java. 11. Bazy danych Klucze w relacyjnych bazach danych; warunki poprawności (więzy) dla tabel bazy danych; Pojęcie transakcji; redundancja w bazach danych; klasy uŜytkowników systemu baz danych; Algebra relacji dla relacyjnych baz danych; sposób realizacji operacji rzutu i wyboru (obcięcia) relacji w SQL. 12. InŜynieria oprogramowania Fazy produkcji oprogramowania (strategiczna, analizy, produkcji, implementacji, konserwacji). Wymagania funkcjonalne i niefunkcjonalne. Wytwarzanie oprogramowania w zintegrowanym środowisku programistycznym (IDE); podstawowe funkcjonalności na przykładzie środowiska Eclipse (lub innego, którego uŜywasz). UML (przypadki uŜycia (use cases); diagramy klas, sekwencji, stanu) Przedmioty matematyczne 13. Wstęp do matematyki Rachunek zdań; rachunek zbiorów; relacja, funkcja, relacja równowaŜności; klasy abstrakcji; relacja częściowego porządku; równoliczność zbiorów; zbiory przeliczalne i nieprzeliczalne. 14. Analiza matematyczna Granica ciągu liczbowego; granica funkcji; pochodna funkcji jednej zmiennej (interpretacja geometryczna); ekstremum lokalne funkcji jednej zmiennej; szeregi liczbowe, kryteria zbieŜności. Funkcja pierwotna; całka nieoznaczona; całka oznaczona (interpretacja geometryczna). Pochodna cząstkowa funkcji wielu zmiennych; warunek konieczny istnienia ekstremum lokalnego funkcji wielu zmiennych. 15. Algebra liniowa Liczby zespolone, Macierze, macierz odwrotna (metody wyznaczania). Wyznaczniki (metody obliczania). Układy równań liniowych, metoda Cramera rozwiązywania układów równań liniowych. 16. Rachunek prawdopodobieństwa Prawdopodobieństwo, prawdopodobieństwo warunkowe; wzór Bayesa; zmienna losowa,; wartość oczekiwana; wariancja; Nierówność Markowa i Czebyszewa: rozkład dwumianowy (Bernouliego); dystrybuanta zmiennej losowej; współczynnik korelacji zmiennych losowych. 17. Metody numeryczne Zadanie interpolacji algebraicznej. PrzybliŜanie pochodnych funkcji. Interpolacja wielomianami trygonometrycznymi. Metody iteracyjne dla równań nieliniowych (w szczególności Newtona i siecznych). Kwadratury interpolacyjne. Metody róŜnicowe dla równań róŜniczkowych zwyczajnych. Dokładne metody rozwiązywania układów równań liniowych. Metody iteracyjne dla układów liniowych. Aproksymacja średniokwadratowa funkcji. Aproksymacja jednostajna funkcji. Przykładowy zestaw pytań: 1. 2. 3. 4. 5. 6. Co to jest asembler? Podaj przykład kilku operacji asemblerowych. Opisz zasadę szufladkową Dirchleta. Podaj przykład zastosowania. Podstawowe typy danych w języku C. Do czego w języku Java słuŜą pakiety i interfejsy? Podaj definicje działań na macierzach i opisz podstawowe własności tych działań. Omów wybraną metodę numerycznego rozwiązywania równania nieliniowego.