Zaawansowane techniki programowania dla bioinformatyków
Informacje ogólne
Kod przedmiotu: | 1000-713ZTP |
Kod Erasmus / ISCED: | (brak danych) / (brak danych) |
Nazwa przedmiotu: | Zaawansowane techniki programowania dla bioinformatyków |
Jednostka: | Wydział Matematyki, Informatyki i Mechaniki |
Grupy: |
Przedmioty obieralne dla II-III roku bioinformatyki Przedmioty obieralne na studiach drugiego stopnia na kierunku bioinformatyka |
Punkty ECTS i inne: |
6.00
|
Język prowadzenia: | (brak danych) |
Rodzaj przedmiotu: | fakultatywne |
Założenia (opisowo): | Kurs przeznaczony dla Studentów znających podstawy programowania i język Python. Przydatne mogą być podstawy z pierwszych lat studiów (algebra liniowa, statystyka, obliczenia naukowe, programowanie obiektowe). Celem przedmiotu jest zapoznanie z bardziej zaawansowanymi bibliotekami dostępnymi w języku Python oraz narzędziami pomocnymi w realizacji większych projektów. |
Skrócony opis: |
Wprowadzenie do wybranych bibliotek Pythona i narzędzi wspierających realizację większych projektów oraz ich zastosowanie w praktyce przy pracy nad sukcesywnie rozwijanym projektem bioinformatycznym. |
Pełny opis: |
część I - narzędzia programistyczne Jak profesjonalnie tworzyć oprogramowanie? - Rozpoczęcie pracy. Konfiguracja wirtualnego środowiska, PyCharm, uv. Podstawy bash-a do uruchamiania obliczeń na serwerze. - Budowa modułów i skryptów CLI z użyciem bibliotek - argparse. - Zaawansowane narzędzia do pracy interaktywnej - ipython i jupyter notebook. - Wykorzystanie debugera i profilera do analizy kodu w Pythonie. - Testowanie oprogramowania. Dobre praktyki i nauka narzędzi - pytest. - Python w firmie. Wskazówki typów, tworzenie modeli danych i walidacja danych, statyczna analiza typów, jakość kodu, formatowanie kodu, generowanie dokumentacji - typing, pydantic, mypy, flake, black, pydoc. - Narzędzia do zarządzania kodem źródłowym: git, github i gitlab. Ciągła integracja (ang. continuous integration) i tox. - Budowa większych pakietów, ustalanie zależności pomiędzy pakietami, systemy pip i conda. - Modele generatywne wspomagające pracę z kodem - chatGPT, copilot. część II - narzędzia analizy danych Jak zrealizować projekt naukowy i udostępnić go światu? - Obsługa danych tabelowych i obsługa macierzy wielowymiarowych. Broadcasting i wektoryzacja - biblioteki pandas i numpy. - Narzędzia statystyczne i naukowe w pakiecie SciPy. - Zaawansowane wykresy przy pomocy seaborn, plotly, bokeh i geoplot. - Przetwarzanie plików ze strukturą - BeautifulSoup, JSON i YAML. - Pobieranie danych z internetu - biblioteka requests. - Udostępnianie API - Selenium, FastAPI, uvicorn. - Konteneryzacja. część III - wybrane narzędzia bioinformatyczne Jakie możliwości oferuje Biopython i jakie są alternatywy? - Wczytywanie i przetwarzanie sekwencji biologicznych. - Przetwarzanie i wizualizacja danych strukturalnych - Bio.PDB i PyMOL. - Wywoływanie zewnętrznych podprogramów w aplikacjach Python-a na przykładzie Bio.Application i subprocess. |
Literatura: |
1. Zaawansowany Python, Luciano Ramalho (Fluent Python, 2nd edition) 2. Python. Zwięzłe kompendium dla programisty, David M. Beazley (Python Distilled) 3. Efektywny Python. 90 sposobów na lepszy kod, wydanie II, Brett Slatkin (Effective Python: 90 specific ways to write better Python, 2nd edition) |
Efekty uczenia się: |
Po ukończeniu kursu student: - Posiada praktyczną znajomość języka Python oraz jego bibliotek wystarczającą do tworzenia aplikacji średniej wielkości. - Zna powszechnie używane narzędzia do analizy danych, wizualizacji oraz udostępniania wyników niezbędne w pracy w data science. - Rozumie szeroko stosowane narzędzia i praktyki związane ze współpracą zespołową przy tworzeniu oprogramowania oraz zarządzaniu projektami w środowiskach akademickich i przemysłowych. - Potrafi jasno przedstawić strukturę, użyte narzędzia oraz założenia projektu programistycznego. - Zdobył praktyczne doświadczenie poprzez etapowe rozwijanie własnego projektu bioinformatycznego, wykorzystując poznane narzędzia i metody w rzeczywistym kontekście. |
Metody i kryteria oceniania: |
W trakcie semestru Studenci będą realizować jeden lub dwa projekty programistyczne rozwijane etapami. Projekty mogą być realizowane indywidualnie lub w małych zespołach. Szczegółowe zasady oceniania opisane będą w kursie przedmiotu na wydziałowej platformie Moodle. Egzamin końcowy przybierze formę prezentacji i omówienia finalnej wersji projektu. Warunkiem zaliczenia jest wykazanie się znajomością prezentowanego projektu podczas egzaminu. |
Zajęcia w cyklu "Semestr zimowy 2025/26" (jeszcze nie rozpoczęty)
Okres: | 2025-10-01 - 2026-01-25 |
Przejdź do planu
PN WT LAB
ŚR CZ WYK
LAB
LAB
PT |
Typ zajęć: |
Laboratorium, 30 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Jarosław Paszek | |
Prowadzący grup: | Andrzej Mizera, Jarosław Paszek, Damian Wójtowicz | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Wykład - Egzamin |
Właścicielem praw autorskich jest Uniwersytet Warszawski.