Uniwersytet Warszawski, Wydział Fizyki - Centralny System Uwierzytelniania
Strona główna

Programowanie II

Informacje ogólne

Kod przedmiotu: 1100-3INZ27
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Programowanie II
Jednostka: Wydział Fizyki
Grupy: Nanoinżynieria; przedmioty dla III roku
Punkty ECTS i inne: 4.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.
Język prowadzenia: polski
Kierunek podstawowy MISMaP:

chemia
fizyka
informatyka

Założenia (opisowo):

Zakłada się, że uczestnicy zajęć posiadają podstawowe umiejętności programowania w języku Python; znają składnię tego języka i umieją napisać prosty program tworząc własne funkcje oraz wykorzystując popularne biblioteki.

Tryb prowadzenia:

mieszany: w sali i zdalnie

Skrócony opis:

Celem zajęć jest doskonalenie umiejętności programowania. Studenci zapoznają się z podstawami programowania obiektowego, a także z technicznymi aspektami programowania: systemem kontroli wersji (git), tworzeniem dokumentacji, testami jednostkowymi.

Po uzgodnieniu z prowadzącym możliwe jest realizowanie zajęć w innym języku programowania: Rust, C++ lub Java

Pełny opis:

Programowanie obiektowe

1) Zawansowane konstrukcje z języka Python: dekoratory, argumenty nazwane

2) Podstawy programowania obiektowego: definicja klasy i jej składowych

3,4) Programowanie obiektowe: dziedziczenie klas; budowanie zależności między klasami. Enkapsulacja i polimorfizm. Klasy abstrakcyjne i interfejsy

5) Reguły SOLID

6) Wzorzec projektowy Dekorator

7) Wzorzec projektowy Strategia

Dobre praktyki programistyczne

8) Wersjonowanie kodu programem git: scalanie zmian, tworzenie gałęzi, pull request itp.

9) Organizacja kodu w moduły i pakiety, tworzenie dokumentacji

10) Tworzenie testów jednostkowych (pytest, unitest), narzędzia wspierające jakość kodu (np. pylint, black).

Praca z dużymi projektami

11) Popularne biblioteki w Pythonie (np. pandas, matplotlib, requests, pytorch).

12) Wprowadzenie do frameworków (np. Flask)

13) Omówienie projektów zaliczeniowych

Literatura:

Mark Lutz. "Python. Kurs dla nauczycieli i studentów"

Steven F. Lott, Dusty Phillips. "Programowanie zorientowane obiektowo w Pythonie. Tworzenie solidnych i łatwych w utrzymaniu aplikacji i bibliotek"

Efekty uczenia się:

Student rozumie:

1) Podstawy programowania obiektowego, w tym koncepcje takie jak klasy, obiekty, dziedziczenie, polimorfizm i enkapsulacja.

2) Znaczenie dobrych praktyk programistycznych, takich jak przestrzeganie konwencji PEP 8, pisanie czytelnego kodu oraz dokumentowanie projektów.

3) Zasady projektowania obiektowego, w tym reguły SOLID i zastosowanie wzorców projektowych takich jak Dekorator i Strategia.

4) Znaczenie testowania oprogramowania i jego wpływ na jakość oraz niezawodność kodu.

5) Różnicę między bibliotekami a frameworkami oraz ich zastosowanie w rozwijaniu aplikacji.

Student umie:

1) Tworzyć klasy i obiekty w Pythonie, definiując ich atrybuty i metody oraz budując relacje między klasami.

2) Zastosować wzorce projektowe (np. Dekorator, Strategia) w praktycznych projektach programistycznych.

3) Przeprowadzić wersjonowanie kodu przy użyciu systemu kontroli wersji Git, w tym zarządzać gałęziami, łączyć zmiany i wykonywać pull requesty.

4) Tworzyć testy jednostkowe przy użyciu bibliotek takich jak pytest lub unittest oraz analizować wyniki testów.

5) Zorganizować duży projekt programistyczny, korzystając z bibliotek (np. pandas, matplotlib) lub frameworków (np. Flask) oraz odpowiednio dokumentować i testować kod.

Metody i kryteria oceniania:

Aby zaliczyć przedmiot, należy:

1) mieć minimum 2/3 obecności na zajęciach (przy założeniu, że odbędzie się 15 zajęć w semestrze, dopuszcza się co najwyżej 5 nieobecności na zajęciach)

2) przesłać rozwiązania zadań realizowanych na ćwiczeniach w terminie do 2 tygodni od zakończenia

3) oddać projekt zaliczeniowy

4) Zdać egzamin pisemny

Ocena końcowa jest wypadkową oceny z ćwiczeń (stanowiących 2/3 punktów; przyznanych za rozwiązania zadań + projekt) oraz oceny z egzaminu (1/3 punktów)

Zajęcia w cyklu "Semestr letni 2024/25" (zakończony)

Okres: 2025-02-17 - 2025-06-08
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 45 godzin więcej informacji
Wykład, 15 godzin więcej informacji
Koordynatorzy: Dominik Gront
Prowadzący grup: (brak danych)
Lista studentów: (nie masz dostępu)
Zaliczenie: Zaliczenie na ocenę
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski, Wydział Fizyki.
ul. Pasteura 5, 02-093 Warszawa tel: +48 22 5532 000 https://www.fuw.edu.pl/ kontakt deklaracja dostępności mapa serwisu USOSweb 7.1.2.0-7 (2025-06-25)