Programowanie I I-SI7O>P-I
2. Szczegółowy opis form zajęć:
a. Wykłady:
• Treści programowe (tematyka zajęć):
1. Pojęcie algorytmu. Metody zapisu algorytmów. Kod źródłowy, kod wynikowy. Kompilacja, interpretacja, maszyna wirtualna. Asembler, kompilator, interpreter.
2. Pojęcie zmiennej i typu danych. Deklaracje zmiennych i definicje stałych. Operacje wejścia i wyjścia. Instrukcje sterujące: warunkowe i iteracyjne. Instrukcja złożona.
3. Operatory: arytmetyczne, przypisania, logiczne, bitowe, rzutowania, wyrażenie warunkowe, operator przecinek. Priorytety i łączność operatorów.
4. Koncepcja podprogramów. Deklaracja i definicja funkcji. Wartość zwracana przez funkcję. Metody przesyłania argumentów do funkcji. Przeładowanie nazw funkcji. Funkcje rekurencyjne. Funkcje w programie wieloplikowym - pliki nagłówkowe.
5. Pochodne typy danych: typ tablicowy. Tablice wielowymiarowe. Przekazywanie tablic do funkcji.
6. Pochodne typy danych: typ wskaźnikowy, referencja. Dynamiczny przydział pamięci, pojęcie stosu i sterty.
7. Operacje na tablicach znakowych.
8. Podstawowe struktury danych i wykonywane na nich operacje.
9. Metody weryfikacji poprawności działania programów.
• Metody dydaktyczne: wykład multimedialny.
Ćwiczenia laboratoryjne
• Treści programowe (tematyka zajęć):
1. Struktura programu w języku C/C++. Pojęcie zmiennej i typu danych. Deklaracje zmiennych i definicje stałych. Operacje wejścia i wyjścia. Proces kompilacji programu: preprocesor, kompilator, linker. Komunikacja funkcji main() z systemem operacyjnym.
2. Instrukcje sterujące: warunkowe i iteracyjne. Instrukcja złożona.
3. Operatory: arytmetyczne, przypisania, logiczne, bitowe, rzutowania, wyrażenie warunkowe, operator przecinek. Priorytety i łączność operatorów.
4. Deklaracja i definicja funkcji. Wartość zwracana przez funkcję. Metody przesyłania argumentów do funkcji. Przeładowanie nazw funkcji. Funkcje rekurencyjne. Funkcje w programie wieloplikowym - pliki nagłówkowe.
5. Pochodne typy danych: typ tablicowy. Tablice wielowymiarowe. Przekazywanie tablic do funkcji.
6. Pochodne typy danych: typ wskaźnikowy, referencja. Dynamiczny przydział pamięci.
7. Operacje na tablicach znakowych.
8. Pochodne typy danych: typ strukturalny.
9. Struktury danych: lista jedno i dwukierunkowa.
10. Metody weryfikacji poprawności działania programów. Asercje, debugger, testy jednostkowe.
• Metody dydaktyczne: ćwiczenia laboratoryjne.
W cyklu 2021/2022-Z:
Wykłady: Stanowić to ma stabilną podbudowę zajęć z programowania, realizowanych w następnych semestrach. Zajęcia przedstawią pojęcie algorytmu, podstawowe konstrukcje programistyczne, implementacje algorytmów w języku C/C++, podstawowe struktury danych i wykonywane na nich operacje, również dynamiczny przydział pamięci oraz rekurencja i jej implementacja w językach wysokiego poziomu. Omówione zostaną także metody weryfikacji poprawności programów. |
W cyklu 2022/2023-Z:
Wykłady: Stanowić to ma stabilną podbudowę zajęć z programowania, realizowanych w następnych semestrach. Zajęcia przedstawią pojęcie algorytmu, podstawowe konstrukcje programistyczne, implementacje algorytmów w języku C/C++, podstawowe struktury danych i wykonywane na nich operacje, również dynamiczny przydział pamięci oraz rekurencja i jej implementacja w językach wysokiego poziomu. Omówione zostaną także metody weryfikacji poprawności programów. |
W cyklu 2023/2024-Z:
Wykłady: Stanowić to ma stabilną podbudowę zajęć z programowania, realizowanych w następnych semestrach. Zajęcia przedstawią pojęcie algorytmu, podstawowe konstrukcje programistyczne, implementacje algorytmów w języku C/C++, podstawowe struktury danych i wykonywane na nich operacje, również dynamiczny przydział pamięci oraz rekurencja i jej implementacja w językach wysokiego poziomu. Omówione zostaną także metody weryfikacji poprawności programów. |
W cyklu 2024/2025-Z:
Wykłady: Stanowić to ma stabilną podbudowę zajęć z programowania, realizowanych w następnych semestrach. Zajęcia przedstawią pojęcie algorytmu, podstawowe konstrukcje programistyczne, implementacje algorytmów w języku C/C++, podstawowe struktury danych i wykonywane na nich operacje, również dynamiczny przydział pamięci oraz rekurencja i jej implementacja w językach wysokiego poziomu. Omówione zostaną także metody weryfikacji poprawności programów. |
Koordynatorzy przedmiotu
<b>Ocena końcowa</b>
<b>Wymagania wstępne</b>
<b>Literatura podstawowa</b>
- Symfonia C++ : programowanie w języku C++ orientowane obiektowo, Jerzy Grębosz. - Wyd.5 popr. - Kraków : Oficyna Kallimach, [ca 2001], Tom 1
- Język C++, Bjarne Stroustrup ; z ang. przeł. - Wyd.5 zm. i rozsz.. - Warszawa : WN-T, 2000
<b>Literatura uzupełniająca</b>
- Algorytmy + struktury danych = programy / Niklaus Wirth ; z ang. przeł. - Wyd.4. - Warszawa : WN-T, 2000
- Projektowanie i analiza algorytmów / Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman. - Gliwice : Helion, 2003
<b>Inne informacje</b>
Efekty kształcenia
Wiedza
Ma elementarną wiedzę w zakresie algorytmów i złożoności
Powiązane efekty kierunkowe:
IF1A_W03
Metody weryfikacji:
Egzamin:Ma elementarną wiedzę w zakresie algorytmów i złożoności
Wiedza
Ma uporządkowaną wiedzę w zakresie metod i technik programowania (języki programowania wysokiego poziomu C )
Powiązane efekty kierunkowe:
IF1A_W04
Metody weryfikacji:
Egzamin:Ma uporządkowaną wiedzę w zakresie metod i technik programowania (język programowania wysokiego poziomu C )
Wiedza
Ma uporządkowaną i podbudowaną teoretycznie wiedzę w zakresie języków i paradygmatów programowania
Powiązane efekty kierunkowe:
IF1A_W05
Metody weryfikacji:
Egzamin:Ma uporządkowaną i podbudowaną teoretycznie wiedzę w zakresie języków i paradygmatów programowania
Umiejętności
Potrafi pozyskiwać informacje z literatury, baz danych i innych źródeł zarówno w języku polskim i języku angielskim; potrafi integrować uzyskane informacje, dokonywać ich interpretacji, a także wyciągać wnioski oraz formułować i uzasadniać opinie.
Powiązane efekty kierunkowe:
IF1A_U01
Metody weryfikacji:
Kolokwium:Potrafi pozyskiwać informacje z literatury, baz danych i innych źródeł zarówno w języku polskim i języku angielskim; potrafi integrować uzyskane informacje, dokonywać ich interpretacji, a także wyciągać wnioski oraz formułować i uzasadniać opinie.
Umiejętności
Posługuje się narzędziami informatycznymi.
Powiązane efekty kierunkowe:
IF1A_U03
Metody weryfikacji:
Kolokwium:Posługuje się narzędziami informatycznymi
Kompetencje społeczne
Rozumie potrzebę i zna możliwości ciągłego dokształcania się– podnoszenia kompetencji zawodowych, osobistych i społecznych.
Powiązane efekty kierunkowe:
IF1A_K01
Metody weryfikacji:
Kolokwium:Rozumie potrzebę i zna możliwości ciągłego dokształcania się– podnoszenia kompetencji zawodowych, osobistych i społecznych.
Kompetencje społeczne
Potrafi pracować w zespole w roli osoby inspirującej, lidera grupy lub członka grupy.
Powiązane efekty kierunkowe:
IF1A_K03
Metody weryfikacji:
Kolokwium:Potrafi pracować w zespole w roli osoby inspirującej, lidera grupy lub członka grupy.
Kryteria oceniania
Warunkiem zaliczenia ćwiczeń laboratoryjnych jest uzyskanie pozytywnej oceny z dwóch kolokwiów.
Przedmiot kończy się egzaminem. Egzamin obejmuje materiał przedstawiony na wykładach. Warunkiem przystąpienia do egzaminu jest uzyskanie zaliczenia z ćwiczeń laboratoryjnych Możliwe jest zwolnienie z egzaminu po uzyskaniu zaliczenia ćwiczeń laboratoryjnych na ocenę minimum 4,5.
Literatura
• Wykaz literatury podstawowej
1. Symfonia C++ : programowanie w języku C++ orientowane obiektowo, Jerzy Grębosz. - Wyd.5 popr. - Kraków : Oficyna Kallimach, [ca 2001], Tom 1
2. Język C++, Bjarne Stroustrup ; z ang. przeł. - Wyd.5 zm. i rozsz.. - Warszawa : WN-T, 2000
• Wykaz literatury uzupełniającej:
1. Algorytmy + struktury danych = programy / Niklaus Wirth ; z ang. przeł. - Wyd.4. - Warszawa : WN-T, 2000
2. Projektowanie i analiza algorytmów / Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman. - Gliwice : Helion, 2003