Nazwa przedmiotu:
Programowanie 3 - zaawansowane
Koordynator przedmiotu:
Dr inż. Jan Bródka
Status przedmiotu:
Obowiązkowy
Poziom kształcenia:
Studia I stopnia
Program:
Informatyka i Systemy Informacyjne
Grupa przedmiotów:
Wspólne
Kod przedmiotu:
1120-IN000-ISP-0234
Semestr nominalny:
3 / rok ak. 2023/2024
Liczba punktów ECTS:
4
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
1. godziny kontaktowe – 65 h; w tym a) obecność na wykładach – 30 h b) obecność na laboratoriach – 30 h c) konsultacje – 5 h 2. praca własna studenta – 45 h; w tym a) przygotowanie do zajęć laboratoryjnych – 45 h Razem 110 h, co odpowiada 4 pkt. ECTS
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
1. obecność na wykładach – 30 h 2. obecność na laboratoriach – 30 h 3. konsultacje – 5 h Razem 65 h, co odpowiada 2 pkt. ECTS
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
1. obecność na laboratoriach – 30 h 2. przygotowanie do zajęć laboratoryjnych – 45 h Razem 75 h, co odpowiada 3 pkt. ECTS
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia0h
  • Laboratorium30h
  • Projekt0h
  • Lekcje komputerowe0h
Wymagania wstępne:
Programowanie 1 – strukturalne Programowanie 2 – obiektowe  
Limit liczby studentów:
Laboratoria (ćwiczenia komputerowe) – 12-15 os. /grupa
Cel przedmiotu:
Celem przedmiotu jest zdobycie biegłości w programowaniu w jednym z popularnych języków obiektowych z wykorzystaniem wszystkich, również zaawansowanych, konstrukcji tego języka (obecnie jako przykładowy język obiektowy wykorzystywany jest język C#). Po ukończeniu kursu studenci powinni: - znać, rozumieć i umieć stosować w praktyce pojęcia i koncepcje paradygmatu programowania obiektowego takie jak klasa, obiekt, dziedziczenie, polimorfizm, hermetyzacja danych, - znać i umieć stosować wszystkie (również zaawansowane) konstrukcje języka C#, w tym: metody rozszerzające, definiowanie operatorów, iteratory yield, wyrażenia lambda, typy uogólnione (generyczne), konstrukcje asynchroniczne, serializacja, technologia LINQ, - posiadać podstawową wiedzę o środowisku .NET i wchodzących w jego skład bibliotekach standardowych (np. kolekcjach standardowych), - posiadać praktyczną umiejętność tworzenia prostych aplikacji konsolowych.
Treści kształcenia:
Język C++: Przypomnienie i uzupełnienie informacji o bibliotece STL i najnowszych standardach języka C++. Język C#: Podstawowe informacje na temat platformy .NET, przegląd konstrukcji języka C#. Klasy, dziedziczenie i polimorfizm, hermetyzacja danych, typy referencyjne i bezpośrednie, metody przeciążone. Definiowanie operatorów, właściwości i indeksatorów. Interfejsy, iteratory yield, metody rozszerzajęce. Typy uogólnione (generyczne). Delegacje, wyrażenia lambda. Zdarzenia, wyjątki. Programowanie asynchroniczne i równoległe. Przegląd standardowej biblioteki klas (w tym kolekcje standardowe, strumienie i pliki, serializacja). Technologia LINQ. Kod nienadzorowany, wskaźniki, łączenie C# z C++.
Metody oceny:
Zaliczenie przedmiotu na podstawie laboratorium, na każdych zajęciach oddzielnie punktowane zadanie, ocena końcowa zależy od uzyskanej sumy punktów, obecność obowiązkowa, nie ma możliwości poprawiania poszczególnych zadań. Łączną ocenę punktową studentów przelicza się na stopnie według poniższych zasad: - 2.0 jeżeli uzyskali poniżej 50% pkt. - 3.0 jeżeli uzyskali od 50% do 60% pkt. - 3.5 jeżeli uzyskali od 60% do 70% pkt. - 4.0 jeżeli uzyskali od 70% do 80% pkt. - 4.5 jeżeli uzyskali od 80% do 90% pkt. - 5.0 jeżeli uzyskali powyżej 90% pkt.
Egzamin:
nie
Literatura:
1. J. Albahari, B. Albahari, C# 6.0 w pigułce, Helion, 2018. 2. M. Michaelis, E. Lippert, C# 6.0 kompletny przewodnik dla praktyków, Helion, 2016. 3. J. Skeet, C# od podszewki, Helion, 2020. 4. A. Troelsen, P. Japikse, Język C# 6.0 i platforma .NET 4.6, PWN, 2017. 5. Materiały z wykładów na stronie internetowej http://www.mini.pw.edu.pl/~brodka.
Witryna www przedmiotu:
Uwagi:

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Charakterystyka W01
Ma uporządkowaną wiedzę ogólną w zakresie języków i paradygmatów programowania
Weryfikacja: bieżąca ocena zadań wykonywanych na laboratorium
Powiązane charakterystyki kierunkowe: K_W06
Powiązane charakterystyki obszarowe:
Charakterystyka W02
Ma szczegółową wiedzę nt. projektowania i programowania obiektowego
Weryfikacja: bieżąca ocena zadań wykonywanych na laboratorium
Powiązane charakterystyki kierunkowe: K_W08
Powiązane charakterystyki obszarowe:

Profil ogólnoakademicki - umiejętności

Charakterystyka U01
Ma umiejętność formułowania algorytmów i ich programowania z użyciem jednego z popularnych narzędzi
Weryfikacja: bieżąca ocena zadań wykonywanych na laboratorium
Powiązane charakterystyki kierunkowe: K_U14
Powiązane charakterystyki obszarowe: