UNIWERSYTET ŁÓDZKI - Centralny System Uwierzytelniania
Strona główna

Zaawansowane techniki programowania

Informacje ogólne

Kod przedmiotu: 1100-TP0UII
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Zaawansowane techniki programowania
Jednostka: Wydział Matematyki i Informatyki
Grupy:
Punkty ECTS i inne: 0 LUB 6.00 (w zależności od programu) 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.

zobacz reguły punktacji
Język prowadzenia: polski
Forma zaliczenia:

zaliczenie

Forma studiów:

stacjonarne

Wymagania wstępne:

Znajomość podstaw programowania obiektowego, w tym mechanizmów hermetyzacji i dziedziczenia. Znajomość przynajmniej jednego języka obiektowego.

Skrócony opis:

Celem przedmiotu jest rozwój umiejętności w zakresie sprawnego i efektywnego programowania z użyciem wybranego języka programowania wysokiego poziomu, przy wykorzystaniu zaawansowanych możliwości tego języka, a w szczególności programowania zorientowanego obiektowo, wielowątkowego i programowania z użyciem (zaawansowanych) bibliotek i wzorców projektowych. Przedstawione zostaną sposoby tworzenia testów jednostkowych oraz podstawy śledzenia aplikacji.

Efekty uczenia się:

Po zakończeniu kursu student:

1) Analizuje istniejące problemy programistyczne w kontekście obiektowym.

2) Tworząc program potrafi zarządzać dynamicznie przydzielanymi zasobami.

3) Używa zaawansowanych narzędzi i bibliotek programistycznych dostępnych w wybranym języku programowania.

4) Umie przeprowadzić testy jednostkowe aplikacji (za pomocą własnych lub udostępnionych szkieletów testujących).

5) Stosuje techniki śledzenia aplikacji.

6) Programuje z użyciem wyjątków.

7) Stosuje podstawowe wzorce projektowe.

Powyższe efekty kształcenia osiągane w ramach przedmiotu pozwalają na realizację kierunkowych efektów kształcenia, mających następujące oznaczenia w programie Informatyka II stopnia: I-2A_W01, I-2A_W04, I-2A_W07, I-2A_W09, I-2A_U02, I-2A_U03, I-2A_U07, I-2A_U08, I-2A_U09, I-2A_K01, I-2A_K02, I-2A_K03, I-2A_K05, I-2A_K06, I-2A_K07, Isi-2A_W14, Isi-2A_W16, Isi-2A_U15, Isi-2A_U16.

Zajęcia w cyklu "Semestr zimowy 2023/2024" (zakończony)

Okres: 2023-10-01 - 2024-02-25
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia informatyczne, 56 godzin więcej informacji
Koordynatorzy: Paweł Zajączkowski
Prowadzący grup: Paweł Zajączkowski
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Ocena zgodna z regulaminem studiów
Ćwiczenia informatyczne - Ocena zgodna z regulaminem studiów

Zajęcia w cyklu "Semestr zimowy 2022/2023" (zakończony)

Okres: 2022-10-01 - 2023-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia informatyczne, 56 godzin więcej informacji
Koordynatorzy: Arsen Eloglian
Prowadzący grup: Arsen Eloglian
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Ocena zgodna z regulaminem studiów
Ćwiczenia informatyczne - Ocena zgodna z regulaminem studiów

Zajęcia w cyklu "Semestr zimowy 2021/2022" (zakończony)

Okres: 2021-10-01 - 2022-01-23
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia informatyczne, 56 godzin więcej informacji
Koordynatorzy: Arsen Eloglian
Prowadzący grup: Arsen Eloglian
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Ocena zgodna z regulaminem studiów
Ćwiczenia informatyczne - Ocena zgodna z regulaminem studiów

Zajęcia w cyklu "Semestr zimowy 2020/2021" (zakończony)

Okres: 2020-10-01 - 2021-02-07
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia informatyczne, 56 godzin więcej informacji
Koordynatorzy: Arsen Eloglian
Prowadzący grup: Arsen Eloglian
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Ocena zgodna z regulaminem studiów
Ćwiczenia informatyczne - Ocena zgodna z regulaminem studiów

Zajęcia w cyklu "Semestr zimowy 2019/2020" (zakończony)

Okres: 2019-10-01 - 2020-02-23
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia informatyczne, 56 godzin więcej informacji
Koordynatorzy: Arsen Eloglian
Prowadzący grup: Arsen Eloglian
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Ocena zgodna z regulaminem studiów
Ćwiczenia informatyczne - Ocena zgodna z regulaminem studiów

Zajęcia w cyklu "Semestr zimowy 2018/2019" (zakończony)

Okres: 2018-10-01 - 2019-02-10
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia informatyczne, 56 godzin więcej informacji
Koordynatorzy: Piotr Sielski
Prowadzący grup: Piotr Sielski
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Ocena zgodna z regulaminem studiów
Ćwiczenia informatyczne - Ocena zgodna z regulaminem studiów
Czy ECTS?:

T

Metody dydaktyczne:

Ćwiczenia przeprowadzone w laboratorium komputerowym polegające na przedstawieniu różnego rodzaju zagadnień, wraz z przykładowymi rozwiązaniami oraz samodzielnej pracy w celu utrwalenia zdobytych umiejętności.

Sposoby i kryteria oceniania:

Sposób zaliczenia:

Zaliczenie w formie projektów programistycznych - wszystkie efekty kształcenia.

Treści kształcenia:

1. Techniki zarządzania zasobami - opakowywanie zasobów w klasy, prawo własności do zasobu, zliczanie referencji, technika Resource Acquisition is Initialization.

2. Znajdowanie wycieków pamięci/zasobów.

3. Podział projektu na jednostki translacji, zarządzanie rozłączną kompilacją.

4. Rozwiązywanie problemu zależności przy statycznej inicjalizacji obiektów.

5. Obsługa sytuacji wyjątkowych, obsługa błędów. Zasada programowania na podstawie kontraktu (design by contract).

6. Testowanie aplikacji, przeprowadzanie testów jednostkowych, szkielety testowe z rodziny xUnit, projektowanie własnego szkieletu testowego. Tworzenie oprogramowania zgodnie z zasadą Test Driven Development.

7. Śledzenie pracy aplikacji, szkielety śledzące z rodziny log4X.

8. Tworzenie poprawnej hierarchii klas zgodnie z kryterium podstawialności.

9. Szablony i typy generyczne. Programowanie uogólnione.

10. Wzorce projektowe.

11. Programowanie wielowątkowe.

Literatura:

[1] Bruce Eckel; Thinking in C++ tom 1; edycja polska

[2] Bruce Eckel, Chuck Allison; Thinking in C++ tom 2;

[3] Marshall P. Cline, Greg Lomow, Mike Girou; C++ FAQs; (uboższa wersja elektroniczna: www.parashift.com/c++-faq-lite/ )

[4] Ian Sommerville; Inżynieria oprogramowania

Zajęcia w cyklu "Semestr zimowy 2017/2018" (zakończony)

Okres: 2017-10-01 - 2018-02-09
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia informatyczne, 56 godzin więcej informacji
Koordynatorzy: Piotr Sielski
Prowadzący grup: Piotr Cybula, Piotr Sielski, Adam Stawicki
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Ocena zgodna z regulaminem studiów
Ćwiczenia informatyczne - Ocena zgodna z regulaminem studiów
Czy ECTS?:

T

Metody dydaktyczne:

Ćwiczenia przeprowadzone w laboratorium komputerowym polegające na przedstawieniu różnego rodzaju zagadnień, wraz z przykładowymi rozwiązaniami oraz samodzielnej pracy w celu utrwalenia zdobytych umiejętności.

Sposoby i kryteria oceniania:

Sposób zaliczenia:

Zaliczenie w formie projektów programistycznych - wszystkie efekty kształcenia.

Treści kształcenia:

1. Techniki zarządzania zasobami - opakowywanie zasobów w klasy, prawo własności do zasobu, zliczanie referencji, technika Resource Acquisition is Initialization.

2. Znajdowanie wycieków pamięci/zasobów.

3. Podział projektu na jednostki translacji, zarządzanie rozłączną kompilacją.

4. Rozwiązywanie problemu zależności przy statycznej inicjalizacji obiektów.

5. Obsługa sytuacji wyjątkowych, obsługa błędów. Zasada programowania na podstawie kontraktu (design by contract).

6. Testowanie aplikacji, przeprowadzanie testów jednostkowych, szkielety testowe z rodziny xUnit, projektowanie własnego szkieletu testowego. Tworzenie oprogramowania zgodnie z zasadą Test Driven Development.

7. Śledzenie pracy aplikacji, szkielety śledzące z rodziny log4X.

8. Tworzenie poprawnej hierarchii klas zgodnie z kryterium podstawialności.

9. Szablony i typy generyczne. Programowanie uogólnione.

10. Wzorce projektowe.

11. Programowanie wielowątkowe.

Literatura:

[1] Bruce Eckel; Thinking in C++ tom 1; edycja polska

[2] Bruce Eckel, Chuck Allison; Thinking in C++ tom 2;

[3] Marshall P. Cline, Greg Lomow, Mike Girou; C++ FAQs; (uboższa wersja elektroniczna: www.parashift.com/c++-faq-lite/ )

[4] Ian Sommerville; Inżynieria oprogramowania

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest UNIWERSYTET ŁÓDZKI.
kontakt deklaracja dostępności USOSweb 7.0.3.0-0