Informacje

Zasady zaliczenia:

Slajdy z wykładów:

Materiały:

Sylabus:

  1. Wprowadzenie do języka Python
    • Podstawy języka, typy danych, kontrola przepływu, wyjątki.
    • Pliki, funkcje, programowanie obiektowe, wyrażenia regularne, styl.
  2. Django
    • Tworzenie projektu, konfiguracja bazy danych i aplikacji administratora, testowanie.
    • Zarządzanie użytkownikami – tworzenie systemu autentykacji, logowanie i zmienne sesji, rejestracja.
    • Interfejs użytkownika - język szablonów i pliki statyczne, integracja z bootstrapem, kompresja statyczna, refaktoryzacja szablonów.
    • Tworzenie i używanie modeli w Django – MVC, mapowanie obiektowo-relacyjne, wykorzystywanie modeli.
    • Routing URL, obsługa HTTP , widoki , szablony, przetwarzanie formularzy.
    • Testowanie i uruchamianie apliacji.
    • Sesje, obsługa cache, obsługa języków i bezpieczeństwo w Django.

Laboratorium

Materiały do zajęć laboratoryjnych:

  1. https://developers.google.com/edu/python/exercises/basic
  2. https://github.com/piotrlasek/python-labs

Projekty

Uwaga: Do 29 marca należy dokonać podziału na zespoły oraz dokonać zapisu na wybrany przez zespół temat na stronie zapisów. Do dnia 12 kwietnia należy przygotować dokumentację wstępną, która zawierać będzie opracowane przez zespół założenia projektu dotyczące planowanych funkcjonalności, wykorzystanych technologii i metod testowania.

Uwaga: Studenci, które nie dokonają zapisu na projekt i nie dostarczą dokumentacji wstępnej (w wyznaczonych terminach) uzyskują dotatkowe -0,5 stopnia do oceny końcowej z zaliczenia przedmiotu.

Założenia i wymagania projektowe:

  • Wszystkie proponowane projekty dotyczą wykonania aplikacji internetowej w technologii Python + Django.
  • Aplikację należy zaimplementować samodzielnie (w ramach zespolu) udostępniając kod na swoim koncie GitHub.
  • Do aplikacji należy przygotować dokumentację w postaci pliku README.md dołączonego do repozytorium GitHub.
  • Termin prezentacji projektu to przedostatnie zajęcia laboratoryjne w bieżącym semestrze.
  • Zespoły mogą być składać się maksymalnie z 4 osób.
  • Elementy, które będą brane pod uwagę przy ocenie:
    1. Dokumentacja wstepna i koncowa projektu.
    2. Analiza wymagan funkcjonalnych projektu.
    3. Podzial pracy (Kazdy czlonek zespolu powinien byc zaangazowany we wszystkie fazy realizacji projektu).
    4. Wykorzystanie Python i Django.
    5. Wykorzystanie zewnętrznych biblitek.
    6. Integracja użytych narzedzi.
    7. Kompletność projektu.

Lista projektów do wyboru:

  1. Aplikacja webowa do predykcji i wizualizacji zachowania klientów.
  2. Aplikacja webowa do wizualizacji wyników eksploracji (np. grupowanie, klasyfikacja) danych.
  3. Aplikacja webowa do zarządzania i generowania (w postaci graficznej i tekstowej) raportów biznesowych.
  4. Aplikacja webowa do analizy i wizualizacji danych społecznościowych.
  5. Aplikacja webowa do predykcji i wizualizacji pogody na podstawie danych historycznych.
  6. Aplikacja webowa do analizy sentymentalnej (sentiment analysis) i wizualizacji danych tekstowych.
  7. Aplikacja webowa do predykcji i wizualizacji sprzedaży w przedsiębiorstwie na podstawie danych historycznych.
  8. Aplikacja webowa do predykcji obciążenia restauracji na podstawie danych historycznych.
  9. Aplikacja webowa do przewidywania obciążenia ruchu turystycznego na danych historycznych i danych kalendarzowych (np. informacje o świętach, długich weekendach, itp.).
  10. Aplikacja webowa do zbierania i analizowania informacji marketingowych na zadany temat.

Przykład wykorzystania pakietu sklearn do predykcji:

import pandas as pd
from sklearn.linear_model import LinearRegression

data = pd.read_csv('../data/data.csv')
df = pd.DataFrame(data)
X_t = df[['s']]
y_t = df['v']
pred_model = LinearRegression()
pred_model.fit(X_t, y_t)
pred_model.predict([3])