Studia są skierowane do osób, które chcą zdobyć umiejętności w zakresie tworzenia aplikacji webowych przy użyciu języka Python. Program nauczania obejmuje podstawy Pythona oraz popularne frameworki webowe, takie jak Django i Flask. Studenci nauczą się projektować, implementować i wdrażać aplikacje internetowe, zarządzać bazami danych, a także integrować aplikacje z zewnętrznymi usługami. Kursy obejmują również zagadnienia związane z tworzeniem interfejsów użytkownika, optymalizacją wydajności aplikacji, bezpieczeństwem oraz testowaniem kodu. Studenci będą przygotowani do pracy w dynamicznie rozwijającym się środowisku tworzenia aplikacji webowych.
Koszt studiów: PROMOCJA! Rabat w styczniu: 2950zł
normalnie 3450zł za semestr
Opłatę można wnosić w dwóch ratach płatnych na początku każdego semestru.
Czas trwania: 2 semestry (192 godz.)
Warunki ukończenia studiów: zaliczenie wszystkich kursów z programu studiów oraz obrona pracy dyplomowej.
1. Paradygmaty programowania (12h)
Autorski przedmiot, na którym ekspert pokazuje w jaki sposób ewoluowały metody obliczeń automatycznych począwszy od starożytnych liczydeł a kończąc na współczesnych komputerach. Pokazany zostanie rozwój języków programowania, różnice pomiędzy nimi i elementy wspólne. Omówione zostaną zarówno najpopularniejsze współczesne technologie jak i niszowe języki będące istotnymi kamieniami milowymi w rozwoju technologii programistycznych.
2. Podstawy Baz Danych (24h)
- Podstawy języka SQL
- Wprowadzenie do SQL (Structured Query Language)
- Tworzenie i modyfikacja tabel (CREATE, ALTER, DROP)
- Wstawianie, aktualizacja i usuwanie danych (INSERT, UPDATE, DELETE)
- Podstawowe zapytania (SELECT, filtrowanie danych przy użyciu WHERE)
- Relacje między tabelami
- Klucz główny (Primary Key) i klucz obcy (Foreign Key)
- Tworzenie relacji między tabelami (one-to-one, one-to-many, many-to-many)
- Łączenie tabel za pomocą JOIN (INNER JOIN, LEFT JOIN, RIGHT JOIN)
- Zapytania na danych relacyjnych
- Agregacja danych i zaawansowane zapytania
- Funkcje agregujące: COUNT, SUM, AVG, MAX, MIN
- Grupowanie wyników przy użyciu GROUP BY i filtrowanie agregatów z HAVING
- Sortowanie wyników zapytań (ORDER BY)
- Zagnieżdżone zapytania (subqueries)
- Podstawy normalizacji i bezpieczeństwa danych
- Czym jest normalizacja? Podstawowe formy normalne (1NF, 2NF, 3NF)
- Zapewnienie spójności i unikanie redundancji danych
- Zabezpieczanie dostępu do danych (tworzenie użytkowników, nadawanie uprawnień)
3. Podstawy programowania WEB (32h)
- Podstawy HTML (HyperText Markup Language)
- Struktura dokumentu HTML: <!DOCTYPE>, html, head, body
- Tworzenie podstawowych elementów: nagłówki, paragrafy, listy, linki, obrazy
- Formularze HTML: input, select, textarea, przyciski
- Semantyczne elementy HTML: header, footer, section, article
- Atrybuty i walidacja dokumentu HTML
- Podstawy CSS (Cascading Style Sheets)
- Wprowadzenie do CSS i sposoby jego dodawania do HTML (inline, internal, external)
- Selektory CSS: elementy, klasy, identyfikatory, pseudo-klasy
- Stylizacja tekstu, kolory, tła, marginesy, paddingi, obramowania
- Układ strony: model pudełkowy, flexbox, grid
- Responsywność strony: media queries, projektowanie mobilne (mobile-first)
- Wprowadzenie do JavaScript
- Podstawy języka JavaScript: zmienne, typy danych, operatory
- Instrukcje warunkowe (if, else, switch) i pętle (for, while)
- Funkcje w JavaScript: deklarowanie, argumenty, zwracanie wartości
- Obsługa zdarzeń: click, mouseover, keydown i inne
- Manipulacja DOM (Document Object Model): zmienianie treści, atrybutów, stylów elementów HTML
- Interaktywność i walidacja formularzy w JavaScript
- Wprowadzanie interakcji użytkownika: reagowanie na kliknięcia, wpisywanie tekstu
- Walidacja formularzy (sprawdzanie poprawności danych na stronie)
- Dynamiczne dodawanie/usuwanie elementów na stronie (np. listy zadań)
- Zmiana stylów i klasy elementów HTML w odpowiedzi na zdarzenia
- Wprowadzenie do AJAX i asynchroniczne zapytania do serwera
4. Wprowadzenie do języka Python (32h)
- Zmienne i typy danych
- Programowanie obiektowe w Pythonie:
- Koncepcja programowania obiektowego, klasy i obiekty, dziedziczenie, polimorfizm
- 3. Wprowadzenie do bibliotek NumPy i Pandas:
- Przetwarzanie danych, operacje matematyczne i wektorowe, tworzenie obiektów DataFrame, filtrowanie, sortowanie, grupowanie
5. Wprowadzenie do Frameworków Pythona (8h)
- Wprowadzenie do aplikacji internetowych z Flaska lub Django
- Tworzenie aplikacji internetowych w Flasku lub Django, struktura projektu, koncepcja model-widok-kontroler (MVC)
- Instalacja i konfiguracja środowiska Python + Flask/Django, tworzenie projektu aplikacji
6. Framework Flask (32h)
- Podstawy Flask
- Uruchamianie serwera deweloperskiego
- Routing i widoki
- Definiowanie tras (routes)
- Obsługa różnych metod HTTP (GET, POST)
- Przekazywanie danych do widoków
- Szablony i renderowanie
- Wprowadzenie do Jinja2
- Tworzenie i używanie szablonów
- Dynamiczne generowanie HTML
- Formularze i walidacja
- Tworzenie formularzy
- Walidacja danych
- Obsługa przesyłania formularzy
- Autoryzacja i uwierzytelnianie
- Tworzenie systemu logowania
- Zarządzanie sesjami użytkowników
- Ochrona zasobów
- Obsługa błędów i logowanie
- Tworzenie stron błędów
- Logowanie zdarzeń
- Debugowanie aplikacji
- Rozszerzenia Flask
- Korzystanie z popularnych rozszerzeń
- Tworzenie własnych rozszerzeń
- Testowanie aplikacji
- Pisanie testów jednostkowych
- Testowanie funkcjonalne
- Automatyzacja testów
- Wdrażanie aplikacji
- Przygotowanie aplikacji do produkcji
- Wdrażanie na serwerze
- Monitorowanie i utrzymanie aplikacji
7. Framework Django (32h)
- Podstawy Django
- Uruchamianie serwera deweloperskiego
- Modele i ORM
- Definiowanie modeli
- Operacje CRUD (Create, Read, Update, Delete)
- Migracje baz danych
- Routing i widoki
- Definiowanie tras (URLconf)
- Tworzenie widoków
- Przekazywanie danych do widoków
- Szablony i renderowanie
- Wprowadzenie do systemu szablonów Django
- Tworzenie i używanie szablonów
- Dynamiczne generowanie HTML
- Formularze i walidacja
- Tworzenie formularzy za pomocą forms.py
- Walidacja danych w formularzach
- Obsługa formularzy w widokach
- Formularze z modeli (ModelForms)
- Panel administracyjny
- Konfiguracja panelu administracyjnego
- Dostosowywanie panelu administracyjnego
- Zarządzanie użytkownikami i danymi
- Autoryzacja i uwierzytelnianie
- System użytkowników w Django
- Logowanie i rejestracja użytkowników
- Uprawnienia i grupy
- Obsługa logowania i wylogowania
- Testowanie aplikacji
- Pisanie testów jednostkowych
- Testowanie funkcjonalne
- Automatyzacja testów
- Wdrażanie aplikacji
- Przygotowanie aplikacji do produkcji
- Wdrażanie na serwerze
- Monitorowanie i utrzymanie aplikacji
- Zaawansowane tematy
- Middleware i hooki
- Integracja z innymi technologiami
- Optymalizacja wydajności
- Internacjonalizacja i lokalizacja
- Tworzenie wielojęzycznych aplikacji
- Lokalizacja treści
- Zarządzanie tłumaczeniami
8. Przygotowanie projektu końcowego aplikacji. (16h)
- Zaprojektowanie i zaimplementowanie pełnej aplikacji internetowej, która wykorzystuje wszystkie narzędzia i umiejętności zdobyte podczas kursu:
- Aplikacja typu e-commerce, portal społecznościowy lub inna aplikacja na bazie wybranego projektu
- Projektowanie interfejsu użytkownika, tworzenie bazy danych i związków między modelami, implementacja backendu i frontendu, testowanie i wdrażanie aplikacji