Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Programowanie strukturalne
Tok studiów:
2016/2017
Kod:
MEI-1-606-s
Wydział:
Inżynierii Metali i Informatyki Przemysłowej
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Edukacja Techniczno – Informatyczna
Semestr:
6
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Strona www:
 
Osoba odpowiedzialna:
Sztangret Łukasz (szt@agh.edu.pl)
Osoby prowadzące:
Sztangret Łukasz (szt@agh.edu.pl)
Krótka charakterystyka modułu

Student po zakończeniu kursu zna język C/C++ i umie go wykorzystać do implementacji algorytmów stosując funkcyjny paradygmat programowania.

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W001 Zna podstawowe zasady działania komputera, zapisu i przetwarzania informacji. Potrafi tę wiedzę zastosować dla podanych przykładów. EI1A_W08, EI1A_W10, EI1A_W09, EI1A_W07, EI1A_W04 Aktywność na zajęciach,
Egzamin
M_W002 Zna składnie języka C++, potrafi definiować zmienne, wskaźniki, funkcje, tablice, struktury. Potrafi korzystać z mechanizmu obsługi sytuacji wyjątkowych. EI1A_W08, EI1A_W10, EI1A_W09, EI1A_W01, EI1A_W07, EI1A_W05, EI1A_W04, EI1A_W06 Aktywność na zajęciach,
Egzamin,
Wykonanie ćwiczeń laboratoryjnych
M_W003 Student ma wiedzę na temat różnorodnych rodzajów programów komputerowych. Nabywa wiedzę o językach programowania (C/C++). EI1A_W08, EI1A_W01, EI1A_W07, EI1A_W04 Egzamin,
Kolokwium,
Wykonanie ćwiczeń laboratoryjnych
M_W004 Rozumie zasady programowania proceduralnego, potrafi analizować działanie różnych programów. EI1A_W08, EI1A_W10, EI1A_W13, EI1A_W01, EI1A_W07 Aktywność na zajęciach,
Egzamin,
Wykonanie ćwiczeń laboratoryjnych
M_W005 Znajomość zasad realizacji projektu informatycznego, krok po kroku wg wytycznych i założeń. EI1A_W08, EI1A_W10, EI1A_W12, EI1A_W09, EI1A_W01, EI1A_W07 Aktywność na zajęciach,
Egzamin,
Wykonanie ćwiczeń laboratoryjnych
Umiejętności
M_U001 Potrafi zastosować poznane mechanizmy do rozwiązywania problemów różnych obliczeniowych, potrafi opracować algorytm postępowania w celu rozwiązania postawionego problemu. EI1A_U07, EI1A_U06, EI1A_U01 Aktywność na zajęciach,
Egzamin
M_U002 Umie analizować zagadnienia z punktu widzenia przydatności do projektu informatycznego. Do tego użyje języka programowania dla wybranego projektu w sposób przemyślany pod względem optymalizacji tegoż oprogramowania, stosując właściwe mechanizmy obliczeniowe. EI1A_U03, EI1A_U06, EI1A_U01, EI1A_U15 Aktywność na zajęciach,
Egzamin,
Wykonanie ćwiczeń laboratoryjnych
M_U003 Potrafi korzystać z podanych pozycji literaturowych oraz pozyskiwać własne źródła wiedzy. EI1A_U03, EI1A_U07, EI1A_U06, EI1A_U01, EI1A_U02 Aktywność na zajęciach,
Egzamin,
Wykonanie ćwiczeń laboratoryjnych
M_U004 Wykazuje gotowość do pracy zespołowej nad tworzeniem rozwiązania dla rozpatrywanego problemu algorytmicznego. EI1A_U03, EI1A_U07, EI1A_U06, EI1A_U01, EI1A_U02 Aktywność na zajęciach,
Egzamin
Kompetencje społeczne
M_K001 Racjonalne działanie w grupie realizującej wspólne przedsięwzięcie informatyczne z pełną świadomością znaczenia informatyki w konwencji systemowej dyscyplin naukowych i w układach ekonomicznych. EI1A_K01, EI1A_K02 Aktywność na zajęciach,
Egzamin,
Wykonanie ćwiczeń laboratoryjnych
M_K002 Zwracanie uwagi na odpowiedzialność społeczną programisty, przechwytującego często w swojej pracy, uwarunkowania społeczeństwa informacyjnego, a więc w sposób decydujący, realizującego cele tegoż społeczeństwa. EI1A_K03, EI1A_K01, EI1A_K02, EI1A_K04 Aktywność na zajęciach,
Egzamin
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W001 Zna podstawowe zasady działania komputera, zapisu i przetwarzania informacji. Potrafi tę wiedzę zastosować dla podanych przykładów. + - + - - - - - - - -
M_W002 Zna składnie języka C++, potrafi definiować zmienne, wskaźniki, funkcje, tablice, struktury. Potrafi korzystać z mechanizmu obsługi sytuacji wyjątkowych. + - + - - - - - - - -
M_W003 Student ma wiedzę na temat różnorodnych rodzajów programów komputerowych. Nabywa wiedzę o językach programowania (C/C++). + - + - - - - - - - -
M_W004 Rozumie zasady programowania proceduralnego, potrafi analizować działanie różnych programów. + - + - - - - - - - -
M_W005 Znajomość zasad realizacji projektu informatycznego, krok po kroku wg wytycznych i założeń. + - + - - - - - - - -
Umiejętności
M_U001 Potrafi zastosować poznane mechanizmy do rozwiązywania problemów różnych obliczeniowych, potrafi opracować algorytm postępowania w celu rozwiązania postawionego problemu. - - + - - - - - - - -
M_U002 Umie analizować zagadnienia z punktu widzenia przydatności do projektu informatycznego. Do tego użyje języka programowania dla wybranego projektu w sposób przemyślany pod względem optymalizacji tegoż oprogramowania, stosując właściwe mechanizmy obliczeniowe. - - + - - - - - - - -
M_U003 Potrafi korzystać z podanych pozycji literaturowych oraz pozyskiwać własne źródła wiedzy. - - + - - - - - - - -
M_U004 Wykazuje gotowość do pracy zespołowej nad tworzeniem rozwiązania dla rozpatrywanego problemu algorytmicznego. - - + - - - - - - - -
Kompetencje społeczne
M_K001 Racjonalne działanie w grupie realizującej wspólne przedsięwzięcie informatyczne z pełną świadomością znaczenia informatyki w konwencji systemowej dyscyplin naukowych i w układach ekonomicznych. - - + - - - - - - - -
M_K002 Zwracanie uwagi na odpowiedzialność społeczną programisty, przechwytującego często w swojej pracy, uwarunkowania społeczeństwa informacyjnego, a więc w sposób decydujący, realizującego cele tegoż społeczeństwa. - - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:
  1. Podstawowe pojęcia związane z informatyką i programowaniem

    Definicja i cechy algorytmu, metody konstrukcji i etapy rozwiązywania zadań algorytmicznych. Zapis algorytmu: schemat blokowy, pseudokod. Struktura programu.

  2. Sterowanie przebiegiem działania programu

    Instrukcja sterujące: rozgałęzienia, pętle i skoki. Biblioteki i moduły.

  3. Typy w języku C++

    Typy: fundamentalne, pochodne, wbudowane, definiowane przez użytkownika). Zmienne i stałe. Zakres ważności nazw i czas życia obiektów.

  4. Reprezentacja liczb w komputerze

    Jednostki informacji. Sposoby zapisu danych w pamięci. Pozycyjne systemy liczbowe. Reprezentacja liczb całkowitych: reprezentacja liczb nieujemnych, kod znak-moduł, kod U1, kod U2, kod z nadmiarem. Liczby stałoprzecinkowe. Liczby zmiennoprzecinkowe.

  5. Operatory

    Użycie operatorów, ich priorytety i łączność. Najczęstsze błędy związane z niewłaściwym użyciem operatorów.

  6. Funkcje i procedury

    Przesyłanie parametrów, zwracanie rezultatów, wywoływanie. Funkcje inline. Funkcje biblioteczne. Argumenty wywołania programu. Rekurencja. Przeładowanie nazw funkcji, szablony funkcji.

  7. Preprocesor

    Dyrektywy preprocesora. Makrodefinicje, kompilacja warunkowa.

  8. Tablice

    Elementy tablic, indeksowanie, definiowanie. Tablice wielowymiarowe.

  9. Wskaźniki

    Definiowanie, używanie wskaźników. Wskaźniki a tablice. Przekazywanie tablic do funkcji, funkcje zwracające tablice. Dynamiczne przydzielanie pamięci – operatory new i delete. Tablice wskaźników. Wskaźniki do funkcji.

  10. Typy definiowane przez użytkownika

    Definiowanie struktur i obiektów strukturalnych. Odwoływanie się do składników struktury. Wskaźniki do struktur. Struktury zagnieżdżone i lokalne. Metody składowe struktury. Pola bitowe i unie.

  11. Klasa biblioteczna std::string

    Definiowane i operacje na obiektach klasy string.

  12. Obsługa wejścia/wyjścia

    Posługiwanie się strumieniami, zmiana formatowania. Strumienie płynące do i z plików oraz do i z obiektów klasy std::string.

  13. Mechanizm obsługi sytuacji wyjątkowych

    Bloki try i catch, instrukcja throw. Funkcje exit, abort, terminale i set_terminate.

Ćwiczenia laboratoryjne:
Rozwiązywanie zadań i implementacja

Ćwiczenia z zakresu opracowania i implementacji algorytmów i struktur danych do rozwiązywania problemów obliczeniowych z zastosowaniem poznanych technik programowania.

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 86 godz
Punkty ECTS za moduł 3 ECTS
Egzamin lub kolokwium zaliczeniowe 2 godz
Udział w wykładach 28 godz
Udział w zajęciach praktycznych 14 godz
Przygotowanie do zajęć 20 godz
Samodzielne studiowanie tematyki zajęć 20 godz
Dodatkowe godziny kontaktowe z nauczycielem 2 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Ocena końcowa jest średnią ważoną oceny z ćwiczeń laboratoryjnych z wagą 0.4 i oceny z egzaminu z wagą 0.6 (obie muszą być pozytywne), przy czym oceny niedostateczne z ćwiczeń i egzaminu są uwzględniane z wagami odpowiednio 0.1 i 0.15. Jeżeli ocena z ćwiczeń oraz egzaminu jest pozytywna ocena końcowa nie może być niższa niż 3.0.

Wymagania wstępne i dodatkowe:

Zgodnie z Regulaminem Studiów AGH podstawowym terminem uzyskania zaliczenia jest ostatni dzień zajęć w danym semestrze. Termin zaliczenia poprawkowego (tryb i warunki ustala prowadzący moduł na zajęciach początkowych) nie może być późniejszy niż ostatni termin egzaminu w sesji poprawkowej (dla przedmiotów kończących się egzaminem) lub ostatni dzień trwania semestru (dla przedmiotów niekończących się egzaminem).

Zalecana literatura i pomoce naukowe:

1. Cormen T. Leiserson C. Rivest R., Wprowadzenie do algorytmów, WNT 2000.
2. Knuth D., Sztuka Programowania, WNT 2002.
3. N. Wirth, Algorytmy + struktury danych = programy, WNT, 1999.
4. Aho A.V., Hopcroft J.E., Ulman J.D., Projektowanie i analiza algorytmów komputerowych, PWN, 1983.
5. Grębosz J., Symfonia C++ standard, Wydawnictwo „Edition 2000”, Kraków 2008.
6. Grębosz J., Pasja C++, Oficyna Kallimach, Kraków 1999.
7. B. Eckel, Thinking in C++, Helion, Gliwice 2002.

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

1. Analiza wrażliwości jako metoda wspomagająca optymalizację parametrów procesów metalurgicznych — Sensitivity analysis as a supporting procedure in optimization of metallurgical processes / Łukasz SZTANGRET, Danuta SZELIGA, Jan KUSIAK // Hutnik Wiadomości Hutnicze : czasopismo naukowo-techniczne poświęcone zagadnieniom hutnictwa ; ISSN 1230-3534. — 2010 R. 76 nr 12, s. 721–725. — Bibliogr. s. 725

2. Computer aided design of the best TR forging technology for crank shafts — Wspomagane komputerowo projektowanie najlepszej technologii kucia wałów korbowych metodą TR / Łukasz SZTANGRET, Andrzej MILENIN, Mateusz SZTANGRET, Wojciech Walczyk, Maciej PIETRZYK, Jan KUSIAK // Computer Methods in Materials Science : quarterly / Akademia Górniczo-Hutnicza ; ISSN 1641-8581. — Tytuł poprz.: Informatyka w Technologii Materiałów. — 2011 vol. 11 no. 2, s. 237–242. — Bibliogr. s. 241–242, Abstr., Streszcz.

3. Computer system for identification of material models on the basis of plastometric tests — System komputerowy do identyfikacji modeli materiałowych na podstawie testów plastometrycznych / L. RAUCH, L. SZTANGRET, M. PIETRZYK // Archives of Metallurgy and Materials / Polish Academy of Sciences. Committee of Metallurgy. Institute of Metallurgy and Materials Science ; ISSN 1733-3490. — 2013 vol. 58 iss. 3, s. 737–743. — Bibliogr. s. 742–743.

4. Industrial process control with case-based reasoning approach — Sterowanie procesów przemysłowych z podejściem opartym na wnioskowaniu epizodycznym / Jan KUSIAK, Gabriel ROJEK, Łukasz SZTANGRET, Piotr JAROSZ // Computer Methods in Materials Science : quarterly / Akademia Górniczo-Hutnicza ; ISSN 1641-8581. — Tytuł poprz.: Informatyka w Technologii Materiałów. — 2013 vol. 13 no. 2, s. 313–319. — Bibliogr. s. 318, Abstr., Streszcz.

5. Zastosowanie zmodyfikowanej strategii aproksymacyjnej w optymalizacji procesów metalurgicznych — Modified approximation strategy in optimization of metallurgical processes / Łukasz SZTANGRET, Marcin Szpieg, Jan KUSIAK // Hutnik Wiadomości Hutnicze : czasopismo naukowo-techniczne poświęcone zagadnieniom hutnictwa ; ISSN 1230-3534. — 2010 R. 77 nr 11, s. 674–678. — Bibliogr. s. 678

Informacje dodatkowe:

Brak