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

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_W003 Posiada wiedzę na temat powszechnie wykorzystywanych narzędzi programowania (wybrane kompilatory, środowiska programistyczne typu IDE) ME1A_W19 Egzamin,
Kolokwium
M_W004 Posiada podstawową wiedzę na temat struktury programu i jego poszczególnych elementów. ME1A_W19 Egzamin,
Kolokwium
Umiejętności
M_U004 Posiadać umiejętność projektowania i tworzenia programów komputerowych z wykorzystaniem języka imperatywnego. ME1A_U11 Aktywność na zajęciach,
Projekt,
Udział w dyskusji
M_U005 Posiadać umiejętność projektowania i tworzenia prostych programów komputerowych z wykorzystaniem języka orientowanego obiektowo. ME1A_U11 Aktywność na zajęciach,
Projekt,
Udział w dyskusji
Kompetencje społeczne
M_K002 Potrafi docenić zalety płynące z wykorzystania technik programowania w życiu codziennym. ME1A_K06 Udział w dyskusji
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_W003 Posiada wiedzę na temat powszechnie wykorzystywanych narzędzi programowania (wybrane kompilatory, środowiska programistyczne typu IDE) + - - - - - - - - - -
M_W004 Posiada podstawową wiedzę na temat struktury programu i jego poszczególnych elementów. + - - - - - - - - - -
Umiejętności
M_U004 Posiadać umiejętność projektowania i tworzenia programów komputerowych z wykorzystaniem języka imperatywnego. - - + - - - - - - - -
M_U005 Posiadać umiejętność projektowania i tworzenia prostych programów komputerowych z wykorzystaniem języka orientowanego obiektowo. - - + - - - - - - - -
Kompetencje społeczne
M_K002 Potrafi docenić zalety płynące z wykorzystania technik programowania w życiu codziennym. + - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:
  1. Techniki programowania

    Rys historyczny rozwoju języków programowania. Przegląd dostępnych języków programowania. Programowanie imperatywne. Programowanie strukturalne. Przetwarzanie kodu źródłowego: kompilatory, narzędzia, platformy, biblioteki. Struktura kodu źródłowego.

  2. Wprowadzenie do programowania.

    Deklaracje i definicje. Słowa Kluczowe. Stałe. Instrukcje sterujące. (na przykładzie języka C lub C++).

  3. Typy danych

    Typy fundamentalne i pochodne. Typ wyliczeniowy. Zakres ważności nazw obiektów i czas życia obiektów. Specyfikatory. Operatory i wyrażenia.

  4. Preprocesor

    Omówienie zadań preprocesora.

  5. Funkcje

    Funkcje. Przesyłanie argumentów do funkcji.

  6. Tablice 1

    Tablice 1. Definiowanie, odwoływanie, inicjalizacja tablic. Przesyłanie tablic od funkcji.

  7. Tablice 2

    Tablice 2. Tablice znakowe.

  8. Wskaźniki 1

    Wskaźniki 1. Arytmetyka wskaźników. Wskaźniki do obiektu. Wskaźniki do funkcji

  9. Wskaźniki 2

    Wskaźniki 2. Przeładowanie funkcji. Programowanie z wykorzystaniem szablonów funkcji.

  10. Przeładowanie funkcji

    Przeładowanie funkcji

  11. Tablice znakowe i ich obsługa.
  12. Elementy inżynierii oprogramowania

    Etapy tworzenia programów, cykl rozwoju oprogramowania. Refactoring. Narzędzia automatycznego dokumentowania kodu. Zasady projektowania oprogramowania.

  13. Podstawy programowania obiektowego

    Definicja klasy. Hermetyzacja. Polimorfizm. Wewnętrzna struktura obiektów.

  14. Podstawy programowania obiektowego

    Konstruktory. Destruktory. Komunikacja z obiektami.

Ćwiczenia laboratoryjne:
  1. Zapoznanie się z jednym z dostępnych zintegrowanych środowisk programistycznych.
  2. Zapoznanie się z jednym z dostępnych zintegrowanych środowisk programistycznych.
  3. Napisanie i uruchomienie programu np. w języku C, C++.
  4. Napisanie i uruchomienie programu wykorzystującego funkcje.
  5. Napisanie i uruchomienie programu wykorzystującego tablice.
  6. Napisanie i uruchomienie programu wykorzystującego tablice.
  7. Napisanie i uruchomienie programu wykorzystującego wskaźniki.
  8. Napisanie i uruchomienie programu wykorzystującego wskaźniki.
  9. Napisanie i uruchomienie programu uwzględniającego przeładowanie funkcji.
  10. Napisanie i uruchomienie programu wykorzystującego tablice znakowe.
  11. Napisanie i uruchomienie programu wykorzystującego tablice znakowe.
  12. Napisanie i uruchomienie programu rozwiązującego zagadnienie modelowe.
  13. Napisanie i uruchomienie programu rozwiązującego zagadnienie modelowe.
  14. Napisanie i uruchomienie programu obiektowo orientowanego np. w języku C++.
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 146 godz
Punkty ECTS za moduł 5 ECTS
Udział w wykładach 28 godz
Udział w ćwiczeniach laboratoryjnych 28 godz
Przygotowanie do zajęć 55 godz
Samodzielne studiowanie tematyki zajęć 17 godz
Egzamin lub kolokwium zaliczeniowe 3 godz
Dodatkowe godziny kontaktowe z nauczycielem 15 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Średnia ważona: 0.6* ocena z ćwiczeń + 0.4* ocena z egzaminu

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. Grębosz J., Symfonia C++ standard ISO, Wyd. Edition 2000, 2008
2. Stroustrup B., Język C++, Wyd. Naukowo-Techniczne, 2002
3. International Standard ISO/IEC 14882. Programming Languages – C++
4. B. Eckel, Thinking in C++
5. Meyers S., Język C++ bardziej efektywny, Wyd. Naukowo-Techniczne, 1998

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

Madej L., Sitko M., Parallelization of the Monte Carlo static recrystallization model, Lecture Notes in Computer Science, 2014, 8500, 445–458.
Rauch L., Madej L., Spytkowski P., Golab R., Development of the Cellular Automata Framework dedicated for metallic materials microstructure evolution models, Archives of Civil and Mechanical Engineering, 15, 2015, 48–61.
Golab R., Madej L., Pietrzyk M., The complex computer system based on cellular automata method designed to support modelling of laminar cooling processes, Journal of Machine Engineering, 14, 2014, 63-73.

Informacje dodatkowe:

Brak