Politechnika Warszawska - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Podstawy programowania 2

Informacje ogólne

Kod przedmiotu: 103A-TLxxx-ISP-PRM2T Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Podstawy programowania 2
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Programowanie )-Telekomunikacja-inż.-EITI
( Przedmioty techniczne )---EITI
Punkty ECTS i inne: 4.00
Język prowadzenia: polski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

PRM2T

Numer wersji:

1

Skrócony opis:

Głównym celem przedmiotu jest wprowadzenie obiektowego paradygmatu programowania na tle innych paradygmatów wraz z doskonaleniem wiedzy i umiejętności zdobytych na przedmiocie "Podstawy programowania 1" (PRM1T).

Pełny opis:

Głównym celem przedmiotu jest wprowadzenie obiektowego paradygmatu programowania na tle innych paradygmatów wraz z doskonaleniem wiedzy i umiejętności zdobytych na przedmiocie "Podstawy programowania 1" (PRM1T).



Treść wykładu

  1. Wstęp. Omówienie zasad podejścia obiektowego do tworzenia oprogramowania: analiza obiektowa, dekompozycja problemu, obiekt, jego cechy, dane, klasa, metoda, abstrakcja, en-kapsulacja, dziedziczenie, polimorfizm. UML, diagramy struktur, diagramy zachowań. (2 godz.)
  2. Podstawy programowania obiektowego. Modelowanie obiektowe: definiowanie i projekto-wanie obiektów, definiowanie i projektowanie klasy. Referencja i wskaźnik. Modyfikator const. Przeciążanie funkcji. Przeciążanie operatorów. Domyślne wartości parametrów formal-nych. Klasa jako typ, zasady dostępu: pola prywatne i publiczne. Tworzenie i usuwanie obiektów klasy, konstruktor, konstruktor kopiujący, destruktor. Przekazywanie argumentów do funkcji i zwracanie wartości z funkcji. Relacja przyjaźni. Szablony. Dziedziczenie wirtual-ne. Wyjątki: definiowanie, dziedziczenie, zgłaszanie, chwytanie. (4 godz.)
  3. Ekosystem Javy. Podstawy programowania obiektowego w Javie. Moduł, pakiet, klasa. Kon-strukcja i inicjacja obiektów, cykl życia obiektów. Realizacja paradygmatu obiektowego w Javie. Klasy osłonowe, kontenerowe, zagnieżdżone. Wyjątki. Parametryzacja. Elementy pro-gramowania funkcyjnego. Kolekcje. Podstawy współbieżności: wątek, jego stany, synchroni-zacja. Strumieniowe i kanałowe wejście-wyjście. Programowanie zdarzeniowe. Interfejs użytkowania. (4 godz.)
  4. Systemy operacyjne. System unix/linux, system Windows. Funkcje systemowe. (2 godz.)
  5. Inżynieria oprogramowania. Proces projektowania oprogramowania. Podejście tradycyjne. Metodyki zwinne. Wzorce projektowe. Dobre praktyki projektowe. Testowanie jednostkowe, funkcjonalne, systemowe. Ciągła integracja. (3 godz.)



Treść ćwiczeń

  1. Projektowanie obiektowe na poziomie języka UML. Diagram przypadków użycia. Diagram sekwencji. Klasa. Obiekt. Diagram klas. Diagram czynności. (2 godz.)
  2. Podstawy programowania obiektowego. Generowanie kodu z narzędzi modelowania UML. Dostęp do funkcji systemu operacyjnego. Przykłady projektów niewielkich systemów. (4 godz.)
  3. Podstawy programowania obiektowego w ekosystemie Javy. Manipulacja systemem plików systemu operacyjnego. Interfejs graficzny. Współbieżność. (5 godz.)
  4. Inżynieria oprogramowania. Proces projektowania oprogramowania w zespole w podejściu tradycyjnym i w podejściu zwinnym (Java). (4 godz.)



Zakres laboratorium

  1. Wykonanie projektu przykładowego systemu w UML, diagram klas, diagram czynności. (3 godz.)
  2. Generowanie kodu systemu z narzędzia UML. (3 godz.)
  3. Implementacja modułów systemu. System wejścia-wyjścia. (3 godz.)
  4. Implementacja modułów systemu. Interfejs graficzny. (3 godz.)
  5. Implementacja modułów systemu. Użycie bibliotek standardowych Javy. Kolekcje. Strumie-nie, przetwarzanie funkcyjne. (3 godz.)
  6. Testowanie zintegrowanego systemu. (3 godz.)



Zakres projektu

Projekt grupowy. Implementacja systemu w wybranym narzędziu w wykorzystaniem systemu kontroli wersji. (10 godz.)

Literatura:

  1. Eric Matthes, Python, Instrukcje dla programisty,Helion, 2016.
  2. Joshua Bloch, Java. Efektywne programowanie,Wydanie III, Helion, 2018.
  3. Bruce Eckel, Thinking in Java, 4th Edition, Helion, 2006.
  4. Kompilator C (gcc).
  5. Środowisko zintegrowane (Eclipse, InteliJ,NetBeans, Visual Studio).
  6. Dokumentacje oprogramowania (dostępne on-line).

Zajęcia w cyklu "rok akademicki 2019/2020 - sem. letni" (w trakcie)

Okres: 2020-02-22 - 2020-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 120 miejsc więcej informacji
Laboratorium, 15 godzin, 120 miejsc więcej informacji
Projekt, 10 godzin, 120 miejsc więcej informacji
Wykład, 15 godzin, 120 miejsc więcej informacji
Koordynatorzy: Krystian Ignasiak
Prowadzący grup: Piotr Bobiński, Grzegorz Galiński, Krystian Ignasiak, Marcin Lewandowski, Paweł Mazurek
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103400 - Instytut Radioelektroniki i Technik Multimedialnych

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.