Uniwersytet Warszawski - Centralny System Uwierzytelniania
Strona główna

Programowanie obiektowe

Informacje ogólne

Kod przedmiotu: 1000-212cPO
Kod Erasmus / ISCED: 11.301 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (brak danych)
Nazwa przedmiotu: Programowanie obiektowe
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy: Przedmioty obowiązkowe dla I roku informatyki
Przedmioty obowiązkowe dla I roku JSIM
Punkty ECTS i inne: 8.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.

zobacz reguły punktacji
Język prowadzenia: polski
Rodzaj przedmiotu:

obowiązkowe

Wymagania (lista przedmiotów):

Wstęp do programowania 1000-211bWPI
Wstęp do programowania (podejście funkcyjne) 1000-211bWPF

Skrócony opis:

Podstawowe pojęcia i zagadnienia występujące w programowaniu obiektowym: klasy, obiekty, kapsułkowanie, dziedziczenie, polimorfizm oraz podstawy projektowania obiektowego oraz formalizmy do zapisywania projektów i programów obiektowych.

Pełny opis:

Wykład:

• Wprowadzenie do obiektowości, pojęcie klas, UML

• Składnia Javy (identyfikatory, literały, proste instrukcje, typy ref. i wart., tablice, GC, new, null, ref/wart, funkcje (met.), parametry, dokumentacja)

• Kapsułkowanie, konstruktory i inicjalizacja

• Dziedziczenie, klasy abstrakcyjne, interfejsy, polimorfizm

• Wyjątki nadzorowane i nienadzorowane

• Typy uogólnione

• Kolekcje 

• GUI

• Wzorce projektowe z przykładami (singleton, fabryka, adapter, dekorator, obserwator i inne)

• Wejście/wyjście 

• Wyrażenia regularne

• Opcjonalnie: łączenie z funkcyjnością, JVM, obiektowość w innych językach (C++ czy Python)

Laboratorium:

• Kompilacja, maszyna wirtualna Javy, pakiety, IDE, dokumentacja

• Interfejs dla klasy (tablice opakowane w klasę, kolejka/stos, graf)

• Programowanie imperatywne i tablice, klasy stos/kolejka, listy

• Narzędzia: git, debugger, ew. inne jak np. SpotBugs

• Wyrażenia

• Wyjątki nadzorowane i nienadzorowane

• Rozdzielanie odpowiedzialności między klasy, luźne sprzężenie/wysoka spójność

• JUnit

• Typy uogólnione

• Kolekcje - używanie istniejących

• Kolekcje - tworzenie nowych

• Lambdy oraz java.util.stream

• Wzorce

• Narzędzia np. maven i google guava

Literatura:

1. J. Gosling, B. Joy, G. Steele, G. Bracha, A. Buckley, The Java Language Specification, Java SE 8 Edition , Addison-Wesley Professional, 2014.

2. G. Booch, J. Rumbaugh, I. Jacobson, UML przewodnik użytkownika, Wydawnictwa Naukowo-Techniczne, 2001.

3. E. Gamma, R. Helm, R. Johnson, J. Vlissides, Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku , Wydawnictwa Naukowo

-Techniczne, 2005.

4. C. Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Prentice Hall, 3st edition, 2004.

5. B. Eckel, Thinking in Java, Helion, wydanie 4., 2006.

Efekty uczenia się:

Wiedza

- ma uporządkowaną wiedzę w zakresie programowania obiektowego [K_W02]

- stosuje kapsułkowanie i rozumie problemy wynikające z jego braku, [K_W09]

- zna i stosuje ze zrozumieniem dziedziczenie, rozumie zasadę podstawialności, [K_W09]

- rozumie i potrafi zastosować polimorfizm, [K_W09]

- zna podstawowe rodzaje kolekcji, [K_W09]

- zna pojęcie wyjątku, [K_W09]

- rozumie pojęcie interfejsu, [K_W09]

- zna wybrane wzorce projektowe, [K_W10]

- rozumie znaczenie testów jednostkowych. [K_W10]

Umiejętności

- potrafi kompilować i wykonywać programy w wybranym języku obiektowym, [K_U05]

- potrafi wykonać analizę wymagań dla postawionego problemu oraz obiektowo projektuje oprogramowanie, [K_U17]

- posługuje się wzorcami projektowymi [K_U18, K_U24]

- potrafi obiektowo zaimplementować prosty system zgodnie z podaną specyfikacją [K_U19]

- potrafi zastosować w swoich programach wyjątki, [K_U19]

- potrafi pisać programy przetwarzające duże zbiory danych za pomocą kolekcji, [K_U08]

- potrafi definiować testy jednostkowe i wykorzystać do przetestowania stworzonego przez siebie oprogramowania. [K_U21]

Kompetencje

- jest przygotowany do krytycznej oceny posiadanej wiedzy i odbieranych treści [K_K01]

- jest gotów do pracy z zachowaniem uczciwości intelektualnej w działaniach własnych i innych osób [K_K02]

- znaje znaczenie wiedzy w rozwiązywaniu problemów poznawczych i praktycznych, potrafi wyszukiwać informacje w literaturze [K_K03]

Zajęcia w cyklu "Semestr letni 2022/23" (jeszcze nie rozpoczęty)

Okres: 2023-02-20 - 2023-06-18
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć:
Laboratorium, 60 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Janusz Jabłonowski
Prowadzący grup: Jacek Chrząszcz, Krzysztof Gogolewski, Janusz Jabłonowski, Michał Kutwin, Jarosław Paszek, Przemysław Rutka, Michał Smolarek, Adam Wiktor, Łukasz Wnuk, Artur Zaroda
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.
ul. Banacha 2
02-097 Warszawa
tel: +48 22 55 44 214 https://www.mimuw.edu.pl/
kontakt deklaracja dostępności USOSweb 6.8.1.0-65ff8df66 (2023-01-24)