Nazwa przedmiotu:
Języki i techniki programowania cz. 1
Koordynator przedmiotu:
Status przedmiotu:
Obowiązkowy
Poziom kształcenia:
Studia I stopnia
Program:
Geoinformatyka
Grupa przedmiotów:
Obowiązkowe
Kod przedmiotu:
1060-GI000-ISP-1007
Semestr nominalny:
1 / rok ak. 2018/2019
Liczba punktów ECTS:
3
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
__
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
__
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
__
Formy zajęć i ich wymiar w semestrze:
  • Wykład15h
  • Ćwiczenia30h
  • Laboratorium0h
  • Projekt0h
  • Lekcje komputerowe0h
Wymagania wstępne:
__
Limit liczby studentów:
-
Cel przedmiotu:
Celem przedmiotu jest zapoznanie studentów z programowaniem strukturalnym oraz elementami warsztatu programisty
Treści kształcenia:
Wykłady: 1. Elementy programu: pliki nagłówkowe, funkcje, operatory, instrukcje. Kompilacja i konsolidacja programu. Sygnalizacja błędów kompilacji i konsolidacji. 2. Obiekty, zmienne, typy i wartości. Zakresy wartości i operacje dopuszczalne dla danego typu. Użycie operatorów do wyrażania obliczeń. Kontrola typów. 3. Wyrażenia i instrukcje. l-wartości i r-wartości. Instrukcja warunkowa i instrukcje pętli. Deklaracje i definicje funkcji. Parametry formalne i aktualne. 4. Sposoby sygnalizowania błędów. Wyjątki: generowanie i przechwytywanie. Uruchamianie i testowanie programu. Techniki pisania programów przyjaznych w uruchamianiu. 5. Deklaracje i definicje. Zasięgi widoczności, przesłanianie. Przekazywanie argumentów funkcji przez wartość, referencję i ustaloną referencję. Przestrzenie nazw. 6. Klasy. Interfejs i implementacja. Składowe publiczne i prywatne. Przeciążanie operatorów. Typy wyliczeniowe. Niezmienniki typów użytkownika. Struktury. 7. Strumienie wejściowe i wyjściowe. Współpraca z plikami. Sygnalizacja błędów wejścia/wyjścia. 8. Formatowanie wejścia/wyjścia dla danych liczbowych i łańcuchowych. Klasyfikowanie znaków. Praca z plikami binarnymi. Różne standardy kodowania znaków; kody liczbowe. 9. Dynamiczna alokacja i dealokacja pamięci. Operatory new i delete. Destruktory. Wycieki pamięci. 10. Semantyka kopiowania. Kopiowanie głębokie i płytkie. Konstruktor i podstawienie przenoszące. Współpraca z tablicami. 11. Kontenery. Zarządzanie zasobami. Zasada RAII. Zarządzanie wskazaniami. Wykorzystanie iteratorów do przechodzenia po elementach kolekcji. 12. Biblioteka standardowa C++. Porównanie różnych rodzajów kontenerów. Typowe operacje wykonywane na kontenerach. Predykaty. 13. Algorytmy zdefiniowane w bibliotece standardowej. Standardowe obiekty funkcyjne. 14. Metryki kodu źródłowego. Refaktoryzacja. Systematyczne testowanie. Zagadnienia bezpieczeństwa kodu. 15. Różnice między C++ i C. Klasyfikacja języków programowania. Kompilacja, konsolidacja, interpretacja; kompilacja JIT; środowiska z maszyną wirtualną; języki DSL. Ćwiczenia: Ćwiczenia obejmują projekty polegające na napisaniu programów o rosnącym stopniu złożoności: 1. Prosty program realizujący obliczenia z interfejsem tekstowym 2. Program wykorzystujący własne typy danych z zestawem testów. 3. Program wykorzystujący kolekcje i algorytmy z biblioteki standardowej w połączeniu z typem użytkownika. 4. Utworzenie własnej biblioteki i wykorzystanie jej w programie współpracującym ze strumieniami plikowymi. 5. Program wraz z zestawem testów jednostkowych
Metody oceny:
W trakcie zajęć student może zgromadzić maksymalnie 100 punktów podzielonych na: 50 punktów z zadań programistycznych ocenianych w skali 0-5, 40 punktów za dwa kolokwia przeprowadzane w środku i na koniec semestru w formie pisemnej lub komputerowej na ćwiczeniach oraz 10 punktów za realizację dodatkowych zadań domowych. Do zaliczenia przedmiotu trzeba uzyskać minimum 50% punktów ze sprawdzianów oraz zadań programistycznych. Punkty są przeliczane na oceny wg następujących zakresów: 0-50 punktów – ocena 2, 51-60 punktów – ocena 3.0, 61-70 punktów – ocena 3.5, 71-80 punktów - ocena 4.0, 81-90 punktów – ocena 4.5, 91-100 punktów – ocena 5.0
Egzamin:
nie
Literatura:
__
Witryna www przedmiotu:
-
Uwagi:
Oprogramowanie wykorzystywane na ćwiczeniach: zestaw kompilatorów i narzędzi GCC (MinGW), zintegrowane środowisko Eclipse CDT

Efekty uczenia się

Profil praktyczny - wiedza

Efekt GI.ISP-1007_W01
Zna podstawowe konstrukcje języka C++
Weryfikacja: Kolokwium
Powiązane efekty kierunkowe: K_W04
Powiązane efekty obszarowe: T1P_W03, T1P_W04, T1P_W06
Efekt GI.ISP-1007_W02
Zna zasady programowania obiektowego
Weryfikacja: Kolokwium
Powiązane efekty kierunkowe: K_W04
Powiązane efekty obszarowe: T1P_W03, T1P_W04, T1P_W06
Efekt GI.ISP-1007_W03
Ma podstawową wiedzę na temat sposobów oceny jakości kodu źródłowego, jego testowania i poprawiania
Weryfikacja:
Powiązane efekty kierunkowe: K_W04
Powiązane efekty obszarowe: T1P_W03, T1P_W04, T1P_W06
Efekt GI.ISP-1007_W04
Ma podstawową wiedzę na temat rodzajów języków komputerowych i ich przeznaczenia
Weryfikacja:
Powiązane efekty kierunkowe: K_W04
Powiązane efekty obszarowe: T1P_W03, T1P_W04, T1P_W06

Profil praktyczny - umiejętności

Efekt GI.ISP-1007_U01
Potrafi zdefiniować interfejs oraz implementację klasy
Weryfikacja:
Powiązane efekty kierunkowe: K_U06, K_U15
Powiązane efekty obszarowe: T1P_U05, T1P_U09, T1P_U14, T1P_U15, T1P_U16, T1P_U18
Efekt GI.ISP-1007_U02
Potrafi napisać program komputerowy wykorzystując techniki programowania obiektowego
Weryfikacja:
Powiązane efekty kierunkowe: K_U01, K_U02, K_U05, K_U15
Powiązane efekty obszarowe: T1P_U01, T1P_U13, T1P_U02, T1P_U12, T1P_U01, T1P_U06, T1P_U09, T1P_U14, T1P_U15, T1P_U16, T1P_U18
Efekt GI.ISP-1007_U03
Potrafi skorzystać z bibliotek i ich dokumentacji
Weryfikacja:
Powiązane efekty kierunkowe: K_U01, K_U02, K_U06, K_U15
Powiązane efekty obszarowe: T1P_U01, T1P_U13, T1P_U02, T1P_U12, T1P_U05, T1P_U09, T1P_U14, T1P_U15, T1P_U16, T1P_U18
Efekt GI.ISP-1007_U04
Potrafi napisać program w sposób umożliwiający ponowne wykorzystanie kodu źródłowego
Weryfikacja:
Powiązane efekty kierunkowe: K_U01, K_U06, K_U15
Powiązane efekty obszarowe: T1P_U01, T1P_U13, T1P_U05, T1P_U09, T1P_U14, T1P_U15, T1P_U16, T1P_U18
Efekt GI.ISP-1007_U05
Potrafi przetestować napisany przez siebie program
Weryfikacja:
Powiązane efekty kierunkowe: K_U03, K_U04, K_U15
Powiązane efekty obszarowe: T1P_U02, T1P_U03, T1P_U19, T1P_U03, T1P_U04, T1P_U09, T1P_U14, T1P_U15, T1P_U16, T1P_U18

Profil praktyczny - kompetencje społeczne

Efekt GI.ISP-1007_K01
Potrafi współpracować w zespole rozwiązując przydzielone problemy.
Weryfikacja:
Powiązane efekty kierunkowe: K_K01, K_K04
Powiązane efekty obszarowe: T1P_K01, T1P_K03, T1P_K04