Podstawy programowania 1. Paradygmaty programowania
Transkrypt
Podstawy programowania 1. Paradygmaty programowania
Podstawy programowania 1. 2. 3. 4. 5. 6. 7. 8. Paradygmaty programowania strukturalnego i obiektowego. Instrukcje iteracyjne. Metody przekazywania parametrów. Rekurencja. Typ tablicowy. Struktury. Pliki tekstowe. Dynamiczne struktury danych. Programowanie obiektowe Czym różni się obiekt od klasy ? Do czego służą konstruktory (i ewentualnie destruktory) klasy ? Jakie składowe może mieć klasa ? Czym różnią się składowe statyczne od instancyjnych ? Omów cykl życia obiektu (tworzenie, używanie, usuwanie) w przypadku obiektów dynamicznych i automatycznych, z uwzględnieniem ewentualnego mechanizmu odśmiecacza (garbage collector). 6. Omów pojęcia interfejsu i implementacji klasy oraz sposób użycia hermetyzacji w celu oznaczeniu ich elementów. 7. Czym różnią się 2 techniki tworzenia nowych klas z klas istniejących: kompozycja i dziedziczenie ? 8. Omów mechanizm dziedziczenie typu oraz rzutowania w górę i w dół w dziedziczeniu. 9. Omów mechanizm funkcji wirtualnych (polimorfizm). 10. Omów mechanizm klas uzależnionych od typu (klasy generyczne, szablony C++). 11. Omów cykl życia wyjątku w przekazywaniu informacji o błędach czasu wykonania. 1. 2. 3. 4. 5. Algorytmy i struktury danych 1. Załóżmy, że mamy zaimplementować operacje słownikowe (INSERT, SEARCH, DELETE) dla zbioru 10 milionów liczb całkowitych z zakresu od 1 do 10.000. Jaka struktura danych będzie optymalna dla takiego zadania. 2. Podaj przykład problemu należącego do klasy NPC i algorytmu przybliżonego rozwiązującego ten problem. Jak błąd przybliżenia ma podany algorytm? 3. Czym się różnią metody haszowania otwartego od metod haszowania zamkniętego? Wyjaśnij na przykładzie. 4. Jakie warunki musi spełniać graf aby można było go posortować topologicznie? Omów na przykładzie działanie algorytmu sortującego graf topologicznie. 5. Omów metodę "dziel i zwyciężaj" na przykładzie algorytmu rozwiązującego problem sprawdzania czy punkt należy do wielokąta wypukłego. 6. Omów metodę programowania dynamicznego na przykładzie algorytmu rozwiązującego problem optymalnego mnożenia n macierzy. 7. Omów metodę zachłanną na przykładzie algorytmu rozwiązującego problem kasjera. 8. Omów metodę algorytmów z powrotami na przykładzie algorytmu rozwiązującego problem generowania cykli Hamiltona w grafie. Architektura komputerów 1. Na najbardziej podstawowym poziomi komputer jest urządzeniem składającym się z jakich trzech elementów? Omów ich funkcje. 2. Uzasadnij, że notacja uzupełnieniowa do 2 (kod U2) nie jest niczym innym jak notacją uzupełnieniową do 1 (kod U1) powiększoną o 1. 3. Wybierz dwa rodzaje automatów sekwencyjnych i porównaj ich cechy. 4. Porównaj realizowane w Jednostce Sterującej dekodowanie czysto sprzętowe z dekodowaniem realizowanym za pośrednictwem mikrokodu. 5. Wskaż wadę macierzy dysków RAID poziomu RAID-4 w stosunku do RAID-5. 6. Omów kryteria projektowania formatu rozkazów mikroprocesora. 7. Dlaczego postulat unikania instrukcji skoku dotyczący kodu źródłowego programu w języku wysokiego poziomu nie jest aktualny w przypadku kodu maszynowego? 8. Podaj zasadnicza różnicę między wieloprocesorem a wielokomputerem. 9. Zdefiniuj pojęcie potoku w procesorze. 10. Omów technikę stronicowania stosowaną w realizacji pamięci wirtualnej. Systemy operacyjne 1. Omów funkcje planisty długoterminowego, średnioterminowego i krótkoterminowego. Kiedy mówimy o planowaniu z wywłaszczaniem a kiedy bez wywłaszczania ? 2. Narysuj diagram stanów procesu i krótko omów poszczególne stany. 3. Omów problem czytelników i pisarzy. Jakie warunki powinno spełniać jego poprawne rozwiązanie ? 4. Podaj definicje zagłodzenia (ang. starvation) i zakleszczenia (ang. deadlock). 5. Omów zasadę działania mechanizmu stronicowania. 6. Wyjaśnij pojęcie wątku i procesu. 7. Omów algorytmy szeregowania procesora FCFS, SJF, SRTF, i rotacyjny. 8. Omów algorytmy szeregowania dysku FCFS, SSTF, i C-LOOK. Sieci komputerowe 1. Omów warstwy modelu referencyjnego OSI. 2. Omów mechanizm kapsułkowania danych. 3. Wyjaśnij zasadę działania serwera DHCP. 4. Omów mechanizmy automatycznej konfiguracji interfejsów sieciowych. 5. Omów mechanizm tunelowania połączeń sieciowych. 6. Wyjaśnij zasady wybranych typów urządzeń służących do budowy sieci komputerowych. 7. Porównaj protokoły TCP oraz UDP. 8. Omów mechanizmy adresacji w sieciach komputerowych. 9. Omów trzy wybrane protokoły rutingu. 10. Omów zasadę działania serwera DNS. Inżynieria oprogramowania Porównaj modele wodospadowy i spiralny cyklu życia oprogramowania. Omów realizację sterowaną dokumentami. Wymień i omów najważniejsze statyczne diagramy UML. Wymień i omów najważniejsze dynamiczne diagramy UML. Podaj i scharakteryzuj rodzaje testów oprogramowania ze względu na sposób ich przeprowadzania. 6. Omów sposoby zwiększania niezawodności oprogramowania. 1. 2. 3. 4. 5. 7. Scharakteryzuj dwie metody tolerowania defektów oprogramowania. 8. Przedstaw sposoby organizacji zespołu projektowego. 9. Omów najważniejsze metody zbierania informacji w inżynierii wymagań. 10. Zdefiniuj wymagania funkcjonalne i niefunkcjonalne, podaj przykłady. 11. Wymień i krótko omów techniki szacowania nakładów pracy. 12. Przedstaw wybrany algorytmiczny model szacowania nakładów. Programowanie aplikacji WWW 1. Omów architekturę sieci komputerowej peer-to-peer na przykładzie sieci Internet. 2. Wyjaśnij następujące skróty i ich miejsce w historii rozwoju sieci Internet: ARPAnet, W3C, Gopher. 3. Omów krótko komunikację z wykorzystaniem protokołu HTTP (przebieg procesu, główne elementy komunikatów żądania i odpowiedzi) 4. Przedstaw budowę typowej aplikacji WWW. Porównaj ją do innych znanych ci architektur programów komputerowych. 5. Wyjaśnij pojęcia: kontekst aplikacji, kontekst strony JSP, kontekst JSF stosowane w technologiach J2EE. 6. Na czym polega model komunikacji określany mianem COMET (Ajax Push). Porównaj go ze standardowym modelem HTTP. 7. Co oznaczają pojęcia „dokument poprawnie zbudowany” (well-formed) i „poprawny” (valid) używane w specyfikacji XML ? 8. Przedstaw metody współużytkowania danych w aplikacji WWW w technologii J2EE. 9. Omów rolę klas filtrów (javax.servlet.Filter) oraz klas nasłuchujących w cyklu życia aplikacji WWW w technologii J2EE. 10. Wyjaśnij określenie „framework komponentowy” na przykładzie Java Server Faces. Bazy danych 1. Co to są i do czego służą indeksy w relacyjnych bazach danych? Omówić budowę indeksu w postaci B+ drzewa. 2. Opisać indeks bitmapowy. 3. Do czego służą poziomy izolacji w bazach danych? Wymienić i omówić rodzaje poziomów izolacji. 4. Omówić 3-warstwową architekturę ANSI-SPARC baz danych. 5. Omówić metody organizacji pliku rekordów. 6. Co to jest transakcja. Omówić podstawowe własności transakcji. 7. Na czym polega szeregowalność harmonogramów. Omówić sposób weryfikacji szeregowalności. Sztuczna inteligencja 1. 2. 3. 4. 5. 6. 7. 8. Test Turinga. Metody przeszukiwania przestrzeni stanów. Obliczenia ewolucyjne. Zbiory przybliżone - Polska Szkoła Sztucznej Inteligencji. Wnioskowanie oparte na logice. Sztuczne sieci neuronowe. Drzewa decyzyjne. Obszary zastosowań systemów sztucznej inteligencji. Bezpieczeństwo sieci komputerowych 1. 2. 3. 4. 5. 6. 7. 8. Opisz szyfry przestawieniowe oraz podstawieniowe. Opisz szyfry podstawieniowe jedno- i wieloalfabetowe. Opisz Data Encryption Standard (DES). Kryptografia klucza publicznego. Opisz funkcje jednokierunkowe. Linear Feedback Shift Register - generowanie liczb pseudolosowych. Opisz szyfry strumieniowe. Opisz zasadę działania zapory sieciowej. Grafika komputerowa 1. 2. 3. 4. 5. 6. 7. Opisz filtr gaussowski. Co to są filtry morfologiczne, opisz zasadę działania wybranego filtru morfologicznego. Scharakteryzować krótko standard kompresji JPEG. Czy przekształcenia translacji i skalowania są przemienne? Jak to udowodnić formalnie? Co to jest kwantyzacja i do czego się ją wykorzystuje w grafice komputerowej? Wymień i krótko scharakteryzuj znane modele barw. Obraz o zmiennej skali szarości zapisanej na 8 bitach ma rozmiary 1024 na 1024 pikseli i jest szachownicą czarno-białą o rozmiarze pola czarnego i białego 32 na 32 pikseli. Jakie są wartości elementów histogramu tego obrazu? 8. Do czego służy i na czym polega algorytm Bresenhama? 9. Co to za model kolorów: luminancja i dwie chrominancje? Dlaczego taki model kolorów jest wykorzystywany w systemach kompresji obrazów? 10. Jakie przekształcenia elementarne należy wykonać aby obrócić punkt wokół dowolnego punktu?