Program 15-to godzinnych zajęć uzupełniających z Baz danych oraz 30-to godzinnych zajęć uzupełniających z Programowania na specjalności Aplikacje Informatyczne w biznesie Data 16.09.014 (wtorek) Godzina Tematyka Bazy danych - 15h 9.00-10.30 Wstęp do baz danych: Koncepcja tworzenia tabel, klucze główne, klucze obce, relacje jedenjeden, jeden-wielu i wiele-wielu, łączenie tabel. Projektowanie tabel na podstawie otrzymanych atrybutów danych. Wstęp do ERD: rodzaje diagramów i ich składniki. Tworzenie diagramów na podstawie otrzymanych opisów przypadków firm. Wstęp do normalizacji danych. Liczba godzin lekcyjnych 16.09.014 10.45-1.15 Normalizacja danych. Różnice pomiędzy 0NF, 1NF, NF i 3NF. Przejście do trzeciej postaci normalnej. Normalizowanie danych na podstawie otrzymanych opisów przypadków firm. Koncepcja normalizacji do 4NF i 5NF. 16.09.014 1.30-14.00 Instrukcja CREATE, INSERT, SELECT oraz sekwencje. Tworzenie tabel. Wstawianie danych do tabel. Wykorzystanie sekwencji w celu zapewnienia autonumeracji. Wyświetlanie danych z tabel. Klucze główne i klucze obce. Wykorzystanie wyrażenia CONSTRAINT w celu definiowania ograniczeń dotyczących wprowadzanych danych. Instrukcja SELECT - warunki, wyrażenia i operatory. Operatory arytmetyczne i łączenia łańcucha znaków. Warunek WHERE. Synonimy tabel i kolumn. Funkcje numeryczne, znakowe, daty i czasu. Instrukcje ROUND, CONCAT, TO_CHAR, TO_DATE. 16.09.014 14.30-16.00 Instrukcja SELECT z wyrażeniami warunkowymi BETWEEN oraz CASE WHEN. Instrukcja SOME, ANY oraz IN. Tworzenie perspektyw - instrukcja CREATE VIEW. Instrukcja SELECT - funkcje agregujące. Instrukcja GROUP BY z wyrażeniami HAVING, ON, USING. 17.09.014 9.00-10.30 Instrukcja SELECT - tworzenie zaawansowanych raportów z wykorzystaniem instrukcji grupujących.
(środa) Sortowanie danych z wykorzystaniem instrukcji ORDER BY. 17.09.014 10.45-1.15 Zaawansowane sekwencje oraz instrukcja ALTER - modyfikacja tabel. Modyfikacja nazw, kolumn, typów danych w tabelach. Dodawanie i usuwanie kolumn w istniejących tabelach. Wykorzystanie instrukcji CREATE SEQUENCE oraz ALTER TABLE. Modyfikacja kluczy w tablicach - słowo kluczowe REFERENCES. Instrukcja DELETE usuwanie wierszy w tablicach dla podanych warunków, usuwanie wszystkich wierszy w tablicach. Instrukcja DROP usuwanie tabel, synonimów oraz perspektyw. 17.09.014 1.30-14.00 Aktualizacja danych w tablicach i perspektywach - instrukcja UPDATE. Aktualizacja danych dla podanych warunków instrukcja SET oraz WHERE. Aktualizacja całych tabel. 17.09.014 14.15-15.00 Indeksy, synonimy oraz wyzwalacze z wykorzystaniem instrukcji CREATE INDEX, CREATE SYNONYM, CREATE TRIGGER. Programowanie 30h 18.09.014 (czwartek) 9.00-9.45 Metodologia rozwiązywania problemów poprzez algorytmy i programy komputerowe: jak rozwiązać problem poprzez aplikacje, kluczowe technologie programowania, typy projektów i aplikacji. Wprowadzenie do programowania: tworzenie rozwiązań i projektów, pisanie kodu aplikacji, budowanie aplikacji graficznych, dokumentowanie aplikacji, uruchamianie aplikacji w trybie debugowania i produkcyjnym. 18.09.014 9.45-11.00 Zmienne: typy zmiennych, deklaracje zmiennych, przypisywanie wartości. Korzystanie z wyrażeń i operatorów: matematycznych, logicznych, warunkowych, tekstowych, przypisania. Stosowanie instrukcji warunkowych: if, else if, else, switch algorytm liczby parzystej. 18.09.014 11.30-1.30 Stosowanie pętli dla sterowania przebiegiem programu: for, while, do while, foreach. Projektowanie składowych warunków działania pętli: inicjalizacji, warunku, inkrementacji algorytm silni. 18.09.014 1.30-14.00 Zagnieżdżanie algorytmów sterowania przebiegiem programu: pętli, instrukcji warunkowych. Projektowanie algorytmów o strukturze zagnieżdżonej algorytm liczby pierwszej. Widoczność zmiennych: blokowa, lokalna, globalna. 1 1,5h
18.09.014 14.30-16.00 Metody różnice pomiędzy procedurami i funkcjami. Definiowanie i wywoływanie metod. Zwracanie i pobieranie wartości przez metody. Parametry metod: przekazywane przez wartość, przekazywane przez referencje, wyjściowe, zmienna lista parametrów. Przeciążanie metod: sygnatura metody, zasady przeciążania. Strukturyzacja i wielokrotna wykorzystywalność kodu dzięki stosowaniu i przeciążaniu metod (procedur i funkcji) algorytm największego wspólnego dzielnika. 19.09.014 (piątek) 9.00-10.30 Mechanizm rekurencji w przetwarzaniu danych: koncepcja, zasady, działanie, analiza łańcucha rekurencji poprzez panele analizy stosu wywołań. Praktyczne zastosowanie mechanizmu rekurencji - wyświetlenie struktury katalogów. 19.09.014 10.45-1.15 Tablice: zastosowania, budowa, indeksowanie, zwracanie długości, przypisywanie i pobieranie wartości, stosowanie pętli dla przechodzenia przez tablice. Rodzaje tablic: jednowymiarowe, wielowymiarowe, zagnieżdżone. Przechowywanie struktur danych w tablicach dla optymalizacji działania algorytmów algorytm generatora ciągu liczb losowych. 19.09.014 1.30-14.30 Algorytmy sortowania i wyszukiwania danych: bąbelkowy, dzielenie na połowy opracowanie aplikacji statystycznej. Inne algorytmy sortowania: przez wstawianie, QuickSort. 19.09.014 15.00-16.00 Monitorowanie wydajności działania algorytmów: zwracanie liczby iteracji algorytmu, pomiar czasu działania aplikacji. Mechanizmy precyzyjnego pomiaru czasu działania kodu analiza czasu wykonania kodu dla algorytmu. 3.09.014 (wtorek) 9.00-10.30 Podstawowa obsługa błędów w aplikacjach: koncepcja wyjątków, blok try-catch-finally, zagnieżdżanie obsługi błędów, metody określania listy potencjalnych błędów, wbudowane klasy błędów. Dedykowane mechanizmy obsługi błędów: programowanie własnych klas wyjątków, zgłaszanie własnych błędów zabezpieczenie aplikacji statystycznej przed błędami użytkownika. Graficzne mechanizmy powiadamiania użytkownika o błędach. Michał Kuciapski, Jacek Maślankowski 3.09.014 10.45-11.30 Programowanie zorientowane obiektowo: problemy podejścia strukturalnego, korzyści programowania obiektowego, zasady programowania obiektowego. Podstawowe pojęcia OOP: klasa, obiekt, atrybuty, hermetyzacja, abstrakcja, dziedziczenie, polimorfizm. Mechanizmy projektowania struktury aplikacji obiektowej poprzez analizę dziedziny problemowej. 3.09.014 11.30-1.15 Przestrzenie nazw: cel stosowania, zasady wydzielania, sposoby grupowania elementów,5h
poprzez przestrzenie. Biblioteki: tworzenie biblioteki dla grupowania funkcjonalności i wielokrotnej wykorzystywalności, importowanie bibliotek projektowanie biblioteki dla zarządzania pracownikami firmy (dane podstawowe oraz operacje finansowe) projekt rozwijany w ramach kolejnych tematów z zakresu obiektowości. 3.09.014 1.30-14.00 Tworzenie nowych typów danych aplikacji obiektowych typy przekazywane przez referencje. Projektowanie klas: zasady, dostępne składowe. Programowanie klas: pola, metody, konstruktory, przeciążanie konstruktorów, właściwości jako metody akcesorów. Tworzenie instancji klas w postaci obiektów. 3.09.014 14.30-16.00 Tworzenie nowych typów danych typy przekazywane przez wartość: enumeracje, struktury. Różnice pomiędzy przekazywaniem zmiennych typów przez wartość a referencje. 4.09.014 9.00-9.45 Zarządzanie pamięcią aplikacji: stos, sterta, przechowywanie zmiennych typów wartościowych (środa) i referencyjnych. Mechanizmy zarządzania pamięcią: destruktory, interfejsy. 4.09.014 10.00-1.15 Stosowanie dziedziczenia i polimorfizmu w aplikacjach: zasady, korzyści. Dziedziczenie: projektowanie dziedziczenia, pojęcie nadklasy, wbudowane struktury dziedziczenia. Polimorfizm: zmiana formy obiektu, parametry polimorficzne, metody wirtualne i przeciążanie polimorficzne. Zarządzanie widocznością (dostępem) do składowych obiektów - składowe: prywatne, zabezpieczone, publiczne, wewnętrzne binarki. Definiowanie szablonów klas poprzez klasy abstrakcyjne. 4.09.014 1.45-15.00 Kolekcje: różnice pomiędzy kolekcjami a tablicami, korzyści stosowania kolekcji, kolekcje ogólne i generyczne. Podstawowe rodzaje kolekcji: lista, stos, sterta, słownik, posortowany słownik. Dostęp tablicowy do obiektów poprzez indeksy. 3h 3h
Tematy opcjonalne (dodatkowe) dla zajęć uzupełniających z Programowania LP Tematyka Liczba godzin lekcyjnych 1 Projektowanie i implementowanie interfejsów: ogólnych i generycznych. Implementacja własnych interfejsów. Interfejsowe parametry dla tworzenia metod przeciążanych polimorficznie. Przeciążanie wbudowanych operatorów: logicznych, matematycznych i rzutowania (konwersji jawnej i niejawnej). Stosowanie własnych operatorów. Własne operatory, a przeciążanie funkcji polimorficznych. 3 Programowanie delegacji i zdarzeń dla implementacji asynchroniczności działania aplikacji. Zmienne typu delegacyjnego. 4 Zapis i odczyt danych do pliku: tekstowy, binarny. 5 Serializacja jako metoda przechowywania danych aplikacji: serializacja binarna, serializacja XML, seralizacja JSON. 6 Przetwarzanie struktur danych poprzez metajęzyki (np. LINQ): filtrowanie danych, sortowanie danych, grupowanie danych, łączenie kolekcji, zwracanie wybranych informacji (typy anonimowe). Wykaz literatury: A. wykorzystywanej podczas zajęć uzupełniających z Baz danych: 1. Matosek W., Język SQL w bazie danych Oracle 10g, Wydawnictwo UG, Sopot, 010.. Skrypt opracowany przez prowadzącego. B. wykorzystywanej podczas zajęć uzupełniających z Programowania: 1. Włodarczyk M., Wprowadzenie do programowania, ITA-104.. Eckel B., Thinking in Java, Helion 011. 3. Skrypt opracowany przez prowadzącego.