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:

Prezentacja podstawowych pojęć i zagadnień występujących w programowaniu obiektowym:

- klasa,

- obiekt,

- kapsułkowanie,

- dziedziczenie,

- polimorfizm.

Omówienie podstaw projektowania obiektowego oraz formalizmów 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, metody, parametry, dokumentacja),

• Kapsułkowanie, konstruktory i inicjalizacja,

• Dziedziczenie, klasy abstrakcyjne, interfejsy, polimorfizm,

• Wyjątki nadzorowane i nienadzorowane,

• Typy uogólnione,

• Kolekcje,

• Wzorce projektowe z przykładami (Singleton, Fabryka, Adapter, Dekorator, Obserwator i inne),

• Wejście/wyjście ,

• Wyrażenia regularne,

• Opcjonalnie: graficzny interfejs użytkownika,

• 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 lub Google Guava,

Literatura:

1. J. Gosling, B. Joy, G. Steele, G. Bracha, A. Buckley, D. Smith,

G. Bierman; The Java Language Specification; https://docs.oracle.com/javase/specs/.

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, On Java 8, https://leanpub.com/onjava8, 2021.

6. J. Bloch, Java. Efektywne programowanie, wyd. III, Helion, 2018.

7. C. Horstmann, Core Java for the Impatient, Addison-Wesley Professional, 4th ed., 2024.

7a. C. Horstmann, Java. Przewodnik doświadczonego programisty, Helion, wyd. III, 2023.

Efekty uczenia się:

Wiedza - absolwent zna i rozumie:

- teoretyczne podstawy z zakresu programowania, złożoności, wybranych języków i paradygmatów programowania, inżynierii oprogramowania (K_W02),

- w stopniu ogólnym wybrane paradygmaty programowania i języki programowania (m. in. obiektowy), pojęcie maszyny wirtualnej, w stopniu szczegółowym metody projektowania i programowania obiektowego (kapsułkowanie i ukrywanie informacji, klasy i podklasy, dziedziczenie, polimorfizm, hierarchie klas) (W_W09),

- metody z zakresu inżynierii oprogramowania, w tym projektowania (wzorce projektowe, analiza i projektowanie obiektowe), wykorzystania API, narzędzi i środowisk wytwarzania oprogramowania (K_W10).

Umiejętności - absolwent potrafi:

- pozyskiwać informacje z literatury, baz wiedzy, Internetu oraz innych wiarygodnych źródeł, integrować je, dokonywać ich interpretacji oraz wyciągać wnioski i formułować opinie (K_U02),

- pisać, uruchamiać i testować programy w wybranym środowisku programistycznym (K_U05),

- samodzielnie planować i realizować własne uczenie się przez całe życie (K_U09)

- zrealizować projekt informatyczny, w szczególności zaprojektować i zrealizować prosty system informatyczny, używając właściwych metod, technik i narzędzi; efektywnie uczestniczyć w inspekcji oprogramowania; posługiwać się przynajmniej jednym z popularnych systemów zarządzania wersjami (K_U16),

- wykonać analizę wymagań dla systemu informatycznego oraz zaprojektować oprogramowanie zgodnie z metodyką obiektową, w szczególności posługując się wzorcami projektowymi (K_U17).

Kompetencje społeczne - absolwent jest gotów do:

- krytycznej oceny posiadanej wiedzy i odbieranych treści (K_K01),

- pracy z poszanowaniem uczciwości intelektualnej w działaniach własnych i innych osób; przestrzegania zasad etyki zawodowej i wymagania tego od innych oraz dbałości o dorobek i tradycje zawodu informatyka (K_K02),

- uznawania znaczenia wiedzy w rozwiązywaniu problemów poznawczych i praktycznych oraz wyszukiwania informacji w literaturze oraz zasięgania opinii ekspertów (K_K03).

Metody i kryteria oceniania:

Ocena końcowa z przedmiotu ustalana jest na podstawie liczby punktów z laboratorium, klasówki i egzaminu. Szczegółowe zasady oceniania opisane są w kursie przedmiotu na wydziałowej platformie Moodle.

Zajęcia w cyklu "Semestr letni 2025/26" (zakończony)

Okres: 2026-02-16 - 2026-06-07
Wybrany podział planu:
Przejdź do planu
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, Janusz Jabłonowski, Kacper Lewandowski, Katzper Michno, Jarosław Paszek, Marcin Przybyłko, Przemysław Rutka, Artur Zaroda, Marek Zbysiński, Wiktor Zuba
Strona przedmiotu: https://moodle.mimuw.edu.pl/course/view.php?id=2763
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Wykład - Egzamin

Zajęcia w cyklu "Semestr letni 2026/27" (jeszcze nie rozpoczęty)

Okres: 2027-02-15 - 2027-06-11
Wybrany podział planu:
Przejdź do planu
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, Janusz Jabłonowski, Katzper Michno, Jarosław Paszek, Marcin Przybyłko, Przemysław Rutka, Jacek Sroka, Artur Zaroda, Marek Zbysiński, Wiktor Zuba
Strona przedmiotu: https://moodle.mimuw.edu.pl/course/view.php?id=2763
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Wykład - Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.
Krakowskie Przedmieście 26/28
00-927 Warszawa
tel: +48 22 55 20 000 https://uw.edu.pl/
kontakt deklaracja dostępności mapa serwisu USOSweb 7.3.0.0-7 (2026-05-27)