Wydział Informatyki - Informatyka (S1)
Sylabus przedmiotu Języki i paradygmaty programowania:
Informacje podstawowe
Kierunek studiów | Informatyka | ||
---|---|---|---|
Forma studiów | studia stacjonarne | Poziom | pierwszego stopnia |
Tytuł zawodowy absolwenta | inżynier | ||
Obszary studiów | nauk technicznych, studiów inżynierskich | ||
Profil | ogólnoakademicki | ||
Moduł | — | ||
Przedmiot | Języki i paradygmaty programowania | ||
Specjalność | przedmiot wspólny | ||
Jednostka prowadząca | Katedra Inżynierii Oprogramowania | ||
Nauczyciel odpowiedzialny | Dariusz Burak <Dariusz.Burak@zut.edu.pl> | ||
Inni nauczyciele | Krzysztof Siedlecki <Krzysztof.Siedlecki@zut.edu.pl> | ||
ECTS (planowane) | 2,0 | ECTS (formy) | 2,0 |
Forma zaliczenia | zaliczenie | Język | polski |
Blok obieralny | — | Grupa obieralna | — |
Formy dydaktyczne
Wymagania wstępne
KOD | Wymaganie wstępne |
---|---|
W-1 | Ukończony kurs Podstawy programowania. |
W-2 | Ukończony kurs Programowanie obiektowe. |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Zapoznanie studentów z najważniejszymi paradygmatami programowania. |
C-2 | Ukształtowanie umiejętności z zakresu programowania bazującego na wiedzy z zakresu specyfiki podstawowych paradygmatów programowania. |
C-3 | Zapoznanie studenta z procesem tworzenia oprogramowania oraz środowiskiem programistycznym. |
C-4 | Zapoznanie studentów ze specyfiką języków programowania: C, C++, C#, Java z uwypukleniem różnic między nimi. |
Treści programowe z podziałem na formy zajęć
KOD | Treść programowa | Godziny |
---|---|---|
laboratoria | ||
T-L-1 | Paradygmat programowania imperatywnego. Języki programowania: C, C++. | 2 |
T-L-2 | Paradygmat programowania proceduralnego. Języki programowania C, C++. | 2 |
T-L-3 | Paradygmat programowania strukturalnego. Języki programowania C, C++. | 2 |
T-L-4 | Paradygmat programowania obiektowego. Programowanie z z zastosowaniem obiektów. Język C++. | 2 |
T-L-5 | Obiektowy paradygmat programowania. Zaawansowane programowanie obiektowe: dziedziczenie, polimorfizm, szablony. Język C++. | 2 |
T-L-6 | Obiektowy paradygmat programowania. Zaawansowane programowanie obiektowe: dziedziczenie, polimorfizm. Język C#. | 3 |
T-L-7 | Obiektowy paradygmat programowania. Zaawansowane programowanie obiektowe: dziedziczenie, polimorfizm: język Java, | 2 |
15 | ||
wykłady | ||
T-W-1 | Wyjaśnienie podstawowych pojęć związanych z paradygmatami programowania oraz językami programowania. Podstawowe cechy języków programowania. Notacja EBNF. Ewolucja języków programowania. Podział paradygmatów programowania. Ogólna charakterystyka pozostałych głównych paradygmatow programowania. | 2 |
T-W-2 | Imperatywny paradygmat programowania. Proceduralny paradygmat programowania. Strukturalny paradygmat programowania. Zmienne. Podprogramy. Wiązanie statyczne. Wiązanie dynamiczne. Przydział pamięci. Przykłady kodu z języków C, Fortran, Pascal. | 4 |
T-W-3 | Obiektowy paradygmat programowania. Abstrakcje. Klasy. Obiekty. Dziedziczenie. Enkapsulacja. Polimorfizm. Szablony. Wzorce projektowe. Przykłady kodu z języków C++, Java, C#. | 4 |
T-W-4 | Specyfika języków skryptowych. Komponentowy paradygmat programowania. Aspektowy paradygmat programowania. Przykłady kodu z języków C++, Java, Ruby. | 2 |
T-W-5 | Funkcyjny paradygmat programowania. Logiczny paradygmat programowania. Przykłady kodów z języka F#, Clojure, Prolog. | 3 |
15 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | Udział w zajęciach laboratoryjnych. | 15 |
A-L-2 | Przygotowanie się do zajęć laboratoryjnych. | 8 |
A-L-3 | Wykonanie programów poza zajęciami. | 5 |
A-L-4 | Udział w konsultacjach i zaliczeniu formy zajęć | 2 |
30 | ||
wykłady | ||
A-W-1 | Udział w wykładach. | 15 |
A-W-2 | Samodzielne studiowanie tematyki wykładów | 7 |
A-W-3 | Przygotowanie się do zaliczenia. | 6 |
A-W-4 | Zaliczenie przedmiotu. | 2 |
A-W-5 | Udział w konsultacjach | 1 |
31 |
Metody nauczania / narzędzia dydaktyczne
KOD | Metoda nauczania / narzędzie dydaktyczne |
---|---|
M-1 | Wykład informacyjny. |
M-2 | Ćwiczenia laboratoryjne. |
Sposoby oceny
KOD | Sposób oceny |
---|---|
S-1 | Ocena formująca: Ocena poprawności wykonania zadania programistycznego realizowanego na zajęciach laboratoryjnych. |
S-2 | Ocena formująca: Ocena poprawności wykonania zadania programistycznego realizowanego poza zajęciami laboratoryjnymi. |
S-3 | Ocena podsumowująca: Test zaliczeniowy z wykładów. |
Zamierzone efekty kształcenia - wiedza
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_C/06_W01 Student posiada wiedzę umożliwiającą zaimplementowanie algorytmu zgodnie z imperatywnym oraz obiektowym paradygmatem programowania w oparciu o wybrany język programowania (C, C++, C#, Java). | I_1A_W06 | T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W09 | InzA_W01, InzA_W02, InzA_W04, InzA_W05 | C-1, C-2 | T-W-1, T-W-2, T-W-3, T-L-2, T-L-1, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7 | M-1, M-2 | S-1, S-2, S-3 |
I_1A_C/06_W02 Student posiada wiedzę umożliwiającą przekształcenie prostego programu zapisanego zgodnie z paradygmatym imperatywnym (w języku C oraz C++) do postaci obiektowej (w językach C++ C# lub Java) oraz na odwrót. | I_1A_W06 | T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W09 | InzA_W01, InzA_W02, InzA_W04, InzA_W05 | C-1, C-2, C-3 | T-W-1, T-W-2, T-W-3, T-L-2, T-L-1, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7 | M-2 | S-1 |
I_1A_C/06_W03 Student posiada wiedzę umożliwiającą przekształcenie prostego programu zapisanego w języku C++ do równorzędnej postaci zapisanej w języku C# lub Java | I_1A_W06 | T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W09 | InzA_W01, InzA_W02, InzA_W04, InzA_W05 | C-2, C-3 | T-W-1, T-W-2, T-W-3, T-L-2, T-L-1, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7 | M-1, M-2 | S-1, S-2 |
I_1A_C/06_W04 Student zna i rozumie podstawowe mechanizmy paradygmatu imperatywnego, obiektowego, funkcyjnego oraz logicznego. | I_1A_W06 | T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W09 | InzA_W01, InzA_W02, InzA_W04, InzA_W05 | C-1, C-2 | T-W-2, T-W-3, T-W-5, T-L-2, T-L-1, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7 | M-1, M-2 | S-1, S-2, S-3 |
Zamierzone efekty kształcenia - umiejętności
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_C/06_U01 Student potrafi wykorzystać wiedzę z zakresu mechanizmów programowania imperatywnego i obiektowego do utworzenia oprogramowania. | I_1A_U01, I_1A_U03, I_1A_U05 | T1A_U01, T1A_U02, T1A_U04, T1A_U06, T1A_U07, T1A_U08, T1A_U09, T1A_U10, T1A_U13, T1A_U14, T1A_U15, T1A_U16 | InzA_U01, InzA_U02, InzA_U03, InzA_U05, InzA_U06, InzA_U07, InzA_U08 | C-1, C-2, C-3 | T-W-1, T-W-2, T-W-3, T-L-2, T-L-1, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7 | M-1, M-2 | S-1, S-2 |
Zamierzone efekty kształcenia - inne kompetencje społeczne i personalne
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_C/06_K01 Student umie kreatywnie tworzyć programy oraz korzystać z dokumentacji projektu informatycznego | I_1A_K01, I_1A_K04 | T1A_K01, T1A_K02, T1A_K07 | InzA_K01 | C-1, C-2, C-3 | T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-L-2, T-L-1, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7 | M-1, M-2 | S-1, S-2, S-3 |
Kryterium oceny - wiedza
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_1A_C/06_W01 Student posiada wiedzę umożliwiającą zaimplementowanie algorytmu zgodnie z imperatywnym oraz obiektowym paradygmatem programowania w oparciu o wybrany język programowania (C, C++, C#, Java). | 2,0 | student nie zna podstawowych konstrukcji języków programowania umożliwiających implementację programu zgodnie z imperatywnym oraz biektowym paradygmatem programowania |
3,0 | student zna jedynie podstawowe konstrukcje języków programowania umożliwiające implementację programu zgodnie z imperatywnym oraz obiektowym paradygmatem programowania | |
3,5 | student zna podstawowe konstrukcje języków programowania umożliwiające implementację programu zgodnie z imperatywnym oraz obiektowym paradygmatem programowania; ponadto student zna zaawansowane mechanizmy programowania proceduralnego | |
4,0 | student zna podstawowe konstrukcje języków programowania umożliwiające implementację programu zgodnie z imperatywnym oraz obiektowym paradygmatem programowania; ponadto student zna zaawansowane mechanizmy programowania proceduralnego oraz strukturalnego | |
4,5 | student zna zaawansowane mechanizmy programowania imperatywnego, proceduralnego oraz strukturalnego w języku C oraz C++ oraz obiektowego w języku C++ | |
5,0 | student zna zaawansowane mechanizmy programowania imperatywnego, proceduralnego oraz strukturalnego w języku C oraz C++ oraz obiektowego w języku C++ oraz Java lub C# | |
I_1A_C/06_W02 Student posiada wiedzę umożliwiającą przekształcenie prostego programu zapisanego zgodnie z paradygmatym imperatywnym (w języku C oraz C++) do postaci obiektowej (w językach C++ C# lub Java) oraz na odwrót. | 2,0 | student nie zna podstawowych konstrukcji języków programowania umożliwiających przekształcenie programu zapisanego zgodnie z paradygmatem imperatywnym (w języku C lub C++) do postaci obiektowej (w języku C++). |
3,0 | student zna podstawowe konstrukcje języków programowania umożliwiające przekształcenie programu zapisanego zgodnie z paradygmatem imperatywnym (w języku C lub C++) do postaci obiektowej (w języku C++). | |
3,5 | student zna podstawowe konstrukcje języków programowania umożliwiające przekształcenie programu zapisanego zgodnie z paradygmatem imperatywnym (w języku C lub C++) do postaci obiektowej (w języku C++) oraz na odwrót. | |
4,0 | student zna zaawansowane konstrukcje języków programowania umożliwiające przekształcenie programu zapisanego zgodnie z paradygmatem imperatywnym (w języku C lub C++) do postaci obiektowej (w języku C++) oraz na podstawowe konstrukcje umozliwiające przekształcenie programu zapisanego zgodnie z paradygmatem obiektowym (w języku C++) do postaci imperatywnej (w języku C lub C++) . | |
4,5 | student zna zaawansowane konstrukcje języków programowania umożliwiające przekształcenie programu zapisanego zgodnie z paradygmatem imperatywnym (w języku C lub C++) do postaci obiektowej (w języku C++) oraz na odwrót. | |
5,0 | student zna zaawansowane konstrukcje języków programowania umożliwiające przekształcenie programu zapisanego zgodnie z paradygmatem imperatywnym (w języku C lub C++) do postaci obiektowej (w języku C++ oraz C# lub Java) oraz na odwrót. | |
I_1A_C/06_W03 Student posiada wiedzę umożliwiającą przekształcenie prostego programu zapisanego w języku C++ do równorzędnej postaci zapisanej w języku C# lub Java | 2,0 | student nie zna podstawowych konstrukcji języków programowania umożliwiających przekształcenie programu zapisanego w języku C++ do postaci zapisanej w języku C# lub Java |
3,0 | student zna podstawowe konstrukcje języków programowania umożliwiające przekształcenie programu zapisanego w języku C++ opartego na jednej klasie do postaci zapisanej w języku C# lub Java | |
3,5 | student zna podstawowe konstrukcje języków programowania umożliwiające przekształcenie programu zapisanego w języku C++ opartego na jednej klasie z mechanizmem enkapsulacji do postaci zapisanej w języku C# lub Java | |
4,0 | student zna podstawowe konstrukcje języków programowania umożliwiające przekształcenie programu zapisanego w języku C++ opartego na klasie bazowej oraz klasie dziedziczącej po niej z mechanizmem enkapsulacji do postaci zapisanej w języku C# lub Java | |
4,5 | student zna podstawowe konstrukcje języków programowania umożliwiające przekształcenie programu zapisanego w języku C++ opartego na klasie bazowej oraz klasach dziedziczących po niej z mechanizmem enkapsulacji do postaci zapisanej w języku C# lub Java | |
5,0 | student zna podstawowe konstrukcje języków programowania umożliwiające przekształcenie programu zapisanego w języku C++ opartego na klasie abstrakcyjnej z mechanizmem enkapsulacji oraz polimorfizmu obiektowego do postaci zapisanej w języku C# lub Java | |
I_1A_C/06_W04 Student zna i rozumie podstawowe mechanizmy paradygmatu imperatywnego, obiektowego, funkcyjnego oraz logicznego. | 2,0 | student nie zna podstawowych mechanizmów paradygmatu imperatywnego, obiektowego, funkcyjnego oraz logicznego |
3,0 | student zna podstawowe mechanizmy paradygmatu imperatywnego, obiektowego, funkcyjnego oraz logicznego | |
3,5 | student zna i rozumie podstawowe mechanizmy paradygmatu imperatywnego; student zna podstawowe mechanizmy paradygmatu obiektowego, funkcyjnego oraz logicznego | |
4,0 | student zna i rozumie podstawowe mechanizmy paradygmatu imperatywnego oraz obiektowego; student zna podstawowe mechanizmy paradygmatu funkcyjnego oraz logicznego | |
4,5 | student zna i rozumie podstawowe mechanizmy paradygmatu imperatywnego, obiektowego oraz funkcyjnego; student zna podstawowe mechanizmy paradygmatu logicznego | |
5,0 | student zna i rozumie podstawowe mechanizmy paradygmatu imperatywnego, obiektowego, funkcyjnego oraz logicznego |
Kryterium oceny - umiejętności
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_1A_C/06_U01 Student potrafi wykorzystać wiedzę z zakresu mechanizmów programowania imperatywnego i obiektowego do utworzenia oprogramowania. | 2,0 | Student nie potrafi wykorzystać wiedzy z zakresu mechanizmów programowania imperatywnego i obiektowego do utworzenia prostego programu |
3,0 | Student potrafi wykorzystać wiedzę z zakresu mechanizmów programowania imperatywnego i obiektowego do utworzenia prostego programu z zastosowaniem podstawowych mechanizmów programowania imperatywnego (język C oraz C++) oraz obiektowego (język C++) | |
3,5 | Student potrafi wykorzystać wiedzę z zakresu mechanizmów programowania imperatywnego, proceduralnego i obiektowego do utworzenia prostego programu z zastosowaniem podstawowych mechanizmów programowania imperatywnego i zaawansowanych mechanizmów programowania proceduralnego (język C oraz C++) oraz obiektowego (język C++) | |
4,0 | Student potrafi wykorzystać wiedzę z zakresu mechanizmów programowania imperatywnego, proceduralnego, strukturalnego i obiektowego do utworzenia prostego programu z zastosowaniem podstawowych mechanizmów programowania imperatywnego (język C oraz C++) i obiektowego (język C++) i zaawansowanych mechanizmów programowania proceduralnego i strukturalnego (język C oraz C++) | |
4,5 | Student potrafi wykorzystać wiedzę z zakresu mechanizmów programowania Student potrafi wykorzystać wiedzę z zakresu mechanizmów programowania imperatywnego, proceduralnego, strukturalnego i obiektowego do utworzenia prostego programu z zastosowaniem podstawowych mechanizmów programowania imperatywnego (język C oraz C++) i zaawansowanych mechanizmów programowania proceduralnego i strukturalnego (język C oraz C++) i obiektowego (język C++) | |
5,0 | Student potrafi wykorzystać wiedzę z zakresu mechanizmów programowania Student potrafi wykorzystać wiedzę z zakresu mechanizmów programowania imperatywnego, proceduralnego, strukturalnego i obiektowego do utworzenia prostego programu z zastosowaniem podstawowych mechanizmów programowania imperatywnego (język C oraz C++) i zaawansowanych mechanizmów programowania proceduralnego i strukturalnego (język C oraz C++) i obiektowego (język C++ oraz C# lub Java) |
Kryterium oceny - inne kompetencje społeczne i personalne
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_1A_C/06_K01 Student umie kreatywnie tworzyć programy oraz korzystać z dokumentacji projektu informatycznego | 2,0 | Student nie umie kreatywnie tworzyć programów oraz korzystać z dokumentacji projektu informatycznego |
3,0 | Student umie kreatywnie tworzyć programy w oparciu o podstawowe mechanizmy programowania imperatywnego oraz obiektowego | |
3,5 | Student umie kreatywnie tworzyć programy w oparciu o podstawowe mechanizmy programowania imperatywnego (język C oraz C++) oraz obiektowego (język C++)oraz zaawansowane mechanizmy programowania proceduralnego (język C oraz C++) | |
4,0 | Student umie kreatywnie tworzyć programy w oparciu o podstawowe mechanizmy programowania imperatywnego (język C oraz C++) oraz obiektowego (język C++)oraz zaawansowane mechanizmy programowania proceduralnego oraz strukturalnego (język C oraz C++) | |
4,5 | Student umie kreatywnie tworzyć programy w oparciu o podstawowe mechanizmy programowania imperatywnego (język C oraz C++) oraz zaawansowane mechanizmy programowania proceduralnego oraz strukturalnego (język C oraz C++) i obiektowego (język C++). Student umie korzystać z dokumentacji projektu informatycznego | |
5,0 | Student umie kreatywnie tworzyć programy w oparciu o podstawowe mechanizmy programowania imperatywnego (język C oraz C++) oraz zaawansowane mechanizmy programowania proceduralnego oraz strukturalnego (język C oraz C++) i obiektowego (język C++ oraz Java lub C#). Student umie korzystać z dokumentacji projektu informatycznego |
Literatura podstawowa
- P.Van Roy, S.Haridi, Programowanie. Koncepcje techniki i modele., Helion, Gliwice, 2005
Literatura dodatkowa
- B.Kernighan, D.Ritchie, Język ANSI C, Wydawnictwa Naukowo Techniczne, Warszawa, 2007
- B.Eckel, Thinking in C++, Helion, Gliwice, 2002, Tom 1
- B.Eckel, Thinking in C++, Helion, Gliwice, 2004, Tom 2
- B.Eckel, Thinking in JAVA, Helion, Gliwice, 2006, IV
- C.Petzold, Programowanie Windows w języku C#, RM, Warszawa, 2002