Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Programowanie komputerów
Tok studiów:
2019/2020
Kod:
ZIIE-1-201-n
Wydział:
Zarządzania
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka i Ekonometria
Semestr:
2
Profil:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma studiów:
Niestacjonarne
Strona www:
 
Prowadzący moduł:
dr Skalna Iwona (skalna@agh.edu.pl)
Treści programowe zapewniające uzyskanie efektów uczenia się dla modułu zajęć

Celem zajęć jest nabycie przez studentów z umiejętności programowania w języku C, w szczególności z wykorzystaniem środowiska Microsoft Visual Studio.

Opis efektów uczenia się dla modułu zajęć
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Powiązania z KEU Sposób weryfikacji i oceny efektów uczenia się osiągniętych przez studenta w ramach poszczególnych form zajęć i dla całego modułu zajęć
Wiedza: zna i rozumie
M_W001 Zna i rozumie zasady tworzenia algorytmów oraz ichimplementację w językach imperatywnych i strukturalnych. IIE1A_W06 Aktywność na zajęciach,
Odpowiedź ustna,
Udział w dyskusji
M_W002 Zna i rozumie podstawowe elementy składni języka C. IIE1A_W05 Odpowiedź ustna,
Aktywność na zajęciach,
Udział w dyskusji
M_W003 Zna i rozumie zasady doboru języka programowania do specyfiki zadania programistycznego oraz zasady niezawodnego programowania komputerów. IIE1A_W04, IIE1A_W03 Udział w dyskusji,
Odpowiedź ustna,
Aktywność na zajęciach
M_W004 Zna zasady ogólne programowania strukturalnego, proceduralnego i obiektowego oraz budowania oprogramowania z wykorzystaniem różnych języków programowania. IIE1A_W06, IIE1A_W05 Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych,
Aktywność na zajęciach
Umiejętności: potrafi
M_U001 Potrafi tworzyć algorytmy rozwiązujące problemy obliczeniowe i implementować je w języku C. IIE1A_U03, IIE1A_U05 Odpowiedź ustna,
Kolokwium,
Wykonanie projektu,
Zaangażowanie w pracę zespołu,
Aktywność na zajęciach,
Wykonanie ćwiczeń
M_U002 Umie reprezentować problem w postaci programu komputerowego poprzez budowę poprawnych modułów, kontrolować poprawność oraz diagnozować i analizować błędy wykonania. IIE1A_U05, IIE1A_U06 Udział w dyskusji,
Odpowiedź ustna,
Kolokwium,
Aktywność na zajęciach,
Wykonanie projektu,
Wykonanie ćwiczeń
Kompetencje społeczne: jest gotów do
M_K001 Ma świadomość odpowiedzialności programisty za poprawność obliczeń i zagrożeń wynikających z błędów programu, a zatem konieczność starannego sprawdzania tej poprawności. IIE1A_K04, IIE1A_K03 Wykonanie projektu,
Zaangażowanie w pracę zespołu
Liczba godzin zajęć w ramach poszczególnych form zajęć:
SUMA (godz.)
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
22 8 0 0 14 0 0 0 0 0 0 0
Matryca kierunkowych efektów uczenia się w odniesieniu do form zajęć i sposobu zaliczenia, które pozwalają na ich uzyskanie
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Forma zajęć dydaktycznych
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Wiedza
M_W001 Zna i rozumie zasady tworzenia algorytmów oraz ichimplementację w językach imperatywnych i strukturalnych. + - - - - - - - - - -
M_W002 Zna i rozumie podstawowe elementy składni języka C. + - - - - - - - - - -
M_W003 Zna i rozumie zasady doboru języka programowania do specyfiki zadania programistycznego oraz zasady niezawodnego programowania komputerów. + - - - - - - - - - -
M_W004 Zna zasady ogólne programowania strukturalnego, proceduralnego i obiektowego oraz budowania oprogramowania z wykorzystaniem różnych języków programowania. + - - - - - - - - - -
Umiejętności
M_U001 Potrafi tworzyć algorytmy rozwiązujące problemy obliczeniowe i implementować je w języku C. - - - + - - - - - - -
M_U002 Umie reprezentować problem w postaci programu komputerowego poprzez budowę poprawnych modułów, kontrolować poprawność oraz diagnozować i analizować błędy wykonania. - - - + - - - - - - -
Kompetencje społeczne
M_K001 Ma świadomość odpowiedzialności programisty za poprawność obliczeń i zagrożeń wynikających z błędów programu, a zatem konieczność starannego sprawdzania tej poprawności. + - - - - - - - - - -
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 102 godz
Punkty ECTS za moduł 4 ECTS
Udział w zajęciach dydaktycznych/praktyka 22 godz
Przygotowanie do zajęć 18 godz
przygotowanie projektu, prezentacji, pracy pisemnej, sprawozdania 30 godz
Samodzielne studiowanie tematyki zajęć 30 godz
Egzamin lub kolokwium zaliczeniowe 2 godz
Szczegółowe treści kształcenia w ramach poszczególnych form zajęć (szczegółowy program wykładów i pozostałych zajęć)
Wykład (8h):

W ramach zajęć wykładowych realizowane są niżej wymienione zagadnienia (wielkość opisu nie jest proporcjonalna do czasu poświęcanego na dane zagadnienie).

  1. Języki program owania oraz ich klasyfikacja (paradygmat, generacja, tworzenie kodu, typowanie). Język C jako przykład języka imperatywnego i strukturalnego, Podstawy składni języka C (typy danych, reprezentacja liczb całkowitych oraz rzeczywistych), modyfikatory, specyfikatory, oepratory arytmetyczne).
  2. Język C: operatory porównania, operatory bitowe, priorytety operatorów, standardowe strumienie wejścia/wyjścia, podstawowe funkcje wejścia/wyjścia.
  3. Język C: instrukcje wyboru, instrukcje pętli, dyrektywy preprocesora (rola plików nagłówkowych i ich dołączanie, stałe symboliczne)
  4. Język C: tablice statyczne, wskaźniki (arytmetyka wskaźników), tablice dynamiczne (alokacja i zwalnianie pamięci).
  5. Typy złożone (wyliczeniowy, struktury, unie) oraz definiowane własnych typów.
  6. Funkcje: celowość i zasady wydzielania funkcji, przekazywanie danych do funkcji i wyników funkcji, rola prototypu funkcji, wskaźniki do funkcji.
  7. Zapis i odczyt danych z plików binarnych oraz tekstowych.
  8. Tryb przetwarzania kodu programu, kompilacja i łączenie, pliki źródłowe, binarne i wykonywalne.
  9. Podstawowe zasady niezawodnego programowania oraz testowania oprogramowania.

Ćwiczenia projektowe (14h):

Zgodnie z regulaminem studiów AGH (§ 11, p. 1, ust. 4) główny nacisk tych zajęć położony jest przygotowanie przez studentów projektu w języku C. Dodatkowo zajęcia poświęcone są na opanowanie umiejętności z zakresu tworzenia algorytmów oraz ich kodowania w języku C.

W szczególności celem ćwiczeń projektowych jest:

  • Opanowanie umiejętności projektowania algorytmów.
  • Opanowanie umiejętności posługiwania się środowiskami programistycznymi pozwalającymi na edycję i kompilację kodu zapisanego w języku C (edycja kodu, kompilacja, łączenie, debugowanie, zapoznanie z zasadami zarządzania kodem źródłowym). Praktyczne ćwiczenie zasad podziału kodu na pliki i budowania plików nagłówkowych.
  • Praktyczne ćwiczenie umiejętności budowania prostych programów w języku C (z wykorzystaniem typów standardowych, tablic i struktur danych) z zaakcentowaniem zasad i praktyk niezawodnego programowania.
  • Nabycie umiejętności właściwej strukturyzacji kodu (podział na funkcje, przekazywanie danych do funkcji, zwracanie wyniku, budowa makrodefinicji za pomocą dyrektyw preprocesora).
  • Opanowanie podstaw dynamicznej alokacji pamięci i wykorzystania arytmetyki wskaźnikowej; zwalnianie zaalokowanej pamięci.
  • Opanowanie sposobów komunikacji użytkownika z programem (czytanie danych z różnych strumieni wejścia oraz zapis na różne strumienie wyjścia)
  • Opanowanie sposobów prezentacji wyników obliczeń za pomocą kodu w języku C.
  • Opanowanie umiejętności samodzielnej pracy w zespołach programistów. Realizacja projektu zaliczeniowego.

2 bloki zajęć (4h) przeznaczone są na kolokwia (sprawdziany) mające na celu sprawdzenie nabytej na wykładach wiedzy oraz nabytych na ćwiczeniach umiejętności programowania w języku C.
6 bloków zajęć (10h) przeznaczonych jest na przygotowanie projektów, w szczególności:

  • ustalenie tematów, walidację koncepcji/założeń,
  • konsultacje projektowe,
  • rozwiązywanie problemów programistycznych związanych z realizacją projektów,
  • prezentację projektów przez studentów i zaliczenie projektów (kolokwium ustne).

Pozostałe informacje
Metody i techniki kształcenia:
  • Wykład: Treści prezentowane na wykładzie są przekazywane w formie prezentacji multimedialnej w połączeniu z klasycznym wykładem tablicowym wzbogaconymi o pokazy odnoszące się do prezentowanych zagadnień.
  • Ćwiczenia projektowe: Studenci wykonują zadany projekt samodzielnie, bez większej ingerencji prowadzącego. Ma to wykształcić poczucie odpowiedzialności za pracę w grupie oraz odpowiedzialności za podejmowane decyzje.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

Ocena z ćwiczeń projektowych jest ustalana na podstawie wyników z kolokwium zaliczeniowego, oceny projektu zaliczeniowego oraz aktywności na zajęciach. Do zaliczenia przedmiotu konieczne jest otrzymanie co najmniej dostatecznej oceny (3,0) z ćwiczeń projektowych.
Zaliczenie poprawkowe w przypadku negatywnej oceny kolokwium polega na ponownym zdawaniu określonego materiału w trakcie godzin kontaktowych (maksymalnie dwie próby).
Usprawiedliwiona nieobecność na zajęciach nie zwalnia z konieczności zaliczenia kolokwiów.

W przypadku nieuzyskania zaliczenia w terminie I, student otrzymuje do wykonania dodatkowe zadania (obejmujący cały materiał), który będzie oceniany w skali 0-50 pkt. Ocena z zaliczenia będzie wystawiana na podstawie liczby uzyskanych punktów (wg Regulaminu Studiów AGH).

Zasady udziału w zajęciach:
  • Wykład:
    – Obecność obowiązkowa: Nie
    – Zasady udziału w zajęciach: Studenci uczestniczą w zajęciach poznając kolejne treści nauczania zgodnie z syllabusem przedmiotu. Studenci winni na bieżąco zadawać pytania i wyjaśniać wątpliwości. Rejestracja audiowizualna wykładu wymaga zgody prowadzącego.
  • Ćwiczenia projektowe:
    – Obecność obowiązkowa: Tak
    – Zasady udziału w zajęciach: Studenci wykonują prace praktyczne mające na celu uzyskanie kompetencji zakładanych przez syllabus. Ocenie podlega sposób wykonania projektu oraz efekt końcowy.
Sposób obliczania oceny końcowej:

Ocena końcowa wystawiana jest przez prowadzącego wykład na podstawie oceny z ćwiczeń projektowych. Ocenę zaokrągla się zależnie od obecności na wykładach, z możliwością podniesienia (maks. o 1.0) na podstawie dodatkowego kolokwium ustnego.

Podczas zajęć wystawiane są oceny cząstkowe:

  • S1: ocena ze sprawdzianu nr 1 dotyczącego praktycznych umiejętności programowania, znajomości kodu w języku C.
  • PW: ocena z wykonania projektu.
  • A: ocena z aktywności na zajęciach

Ocena końcowa (OCP) wystawiona jest wg formuły:
OCP = 0,55*S2 + 0,35*PW + 0,1*A

Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Wyrównanie zaległości powstałych wskutek nieobecności studenta na nie więcej niż jednych zajęciach wymaga od studenta samodzielnego (z możliwością wykorzystania godzin konsultacji) opanowania przerabianego na tych zajęciach materiału.

Usprawiedliwienie nieobecności na zajęciach może nastąpić tylko na podstawie zwolnienia lekarskiego lub pisma urzędowego (np. wezwania do sądu).

Wymagania wstępne i dodatkowe, z uwzględnieniem sekwencyjności modułów :

Znajomość podstaw informatyki i zasad korzystania z komputera. Znajomość podstaw matematyki na poziomie szkoły średniej.

Zalecana literatura i pomoce naukowe:

podstawowa:

  • N. Wirth: Algorytmy+struktury danych = programy. WNT, Warszawa 2002,
  • B. W.Kernighan, D.M.Ritchie, * Język C, WNT Warszawa 1992;
  • K.A.Barclay, ANSI C: Problem Solving and Programming, Prentice Hall, 1990
  • S. Prata: Język C. Szkoła programowania. Wyd. Helion, 2006

pomocnicza:

  • D. van Tassel: Praktyka programowania. WNT Warszawa, 1989; W.Duch: Fascynujący świat komputerów, Wydawnictwo Nakom, Poznań, 1997,
  • J. Grębosz: Symfonia C++. Wyd. Edition 2000, 2010
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:
  1. Enhancing monotonicity checking in parametric interval linear systems / Iwona SKALNA, Milan Hladík // W: TNC’18 [Dokument elektroniczny] : Trusted Numerical Computations : [June 19–20, 2018, Krakow, Poland]
  2. Exact solution to a parametric linear programming problem / Lubomir Kolev, Iwona SKALNA // Numerical Algorithms ; ISSN 1017-1398. — 2018 vol. 78 iss. 4, s. 1183–1194.
  3. A new algorithm for Chebyshev minimum-error multiplication of reduced affine forms / Iwona SKALNA, Milan Hladík // Numerical Algorithms ; ISSN 1017-1398. — 2017 vol. 76 iss. 4, s. 1131–1152.
  4. A new method for computing a \emph{p}-solution to parametric interval linear systems with affine-linear and nonlinear dependencies / Iwona SKALNA, Milan Hladík // Bit Numerical Mathematics ; ISSN 0006-3835. — 2017 vol. 57 iss. 4, s. 1109–1136.
Informacje dodatkowe:

Brak