Programowanie obiektowe
Informacje ogólne
Kod przedmiotu: | 1000-212cPO |
Kod Erasmus / ISCED: |
11.301
|
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
|
Język prowadzenia: | polski |
Rodzaj przedmiotu: | obowiązkowe |
Wymagania (lista przedmiotów): | Wstęp do programowania 1000-211bWPI |
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 lub 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 - 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 2023/24" (zakończony)
Okres: | 2024-02-19 - 2024-06-16 |
Przejdź do planu
PN LAB
LAB
WT LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
ŚR WYK
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
CZ PT |
Typ zajęć: |
Laboratorium, 60 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Janusz Jabłonowski | |
Prowadzący grup: | Paweł Brach, Jacek Chrząszcz, Janusz Jabłonowski, Michał Kutwin, Jarosław Paszek, Karol Pieniący, Przemysław Rutka, Marcin Waniek, Łukasz Wnuk, Artur Zaroda, Marek Zbysiński | |
Strona przedmiotu: | https://moodle.mimuw.edu.pl/course/view.php?id=2104 | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Egzamin |
Zajęcia w cyklu "Semestr letni 2024/25" (jeszcze nie rozpoczęty)
Okres: | 2025-02-17 - 2025-06-08 |
Przejdź do planu
PN LAB
LAB
WT LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
ŚR WYK
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
LAB
CZ PT LAB
LAB
|
Typ zajęć: |
Laboratorium, 60 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Janusz Jabłonowski | |
Prowadzący grup: | Janusz Jabłonowski, Jarosław Paszek, Marcin Przybyłko, Przemysław Rutka, Marcin Waniek, Artur Zaroda, Marek Zbysiński, Wiktor Zuba | |
Strona przedmiotu: | https://moodle.mimuw.edu.pl/course/view.php?id=2104 | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Egzamin |
Właścicielem praw autorskich jest Uniwersytet Warszawski, Wydział Fizyki.