- 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. 2022/2023
- 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: