Module also offered within study programmes:
General information:
Name:
Programowanie proceduralne
Course of study:
2016/2017
Code:
JFT-1-201-s
Faculty of:
Physics and Applied Computer Science
Study level:
First-cycle studies
Specialty:
-
Field of study:
Technical Physics
Semester:
2
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Responsible teacher:
dr hab. inż. Gawroński Przemysław (gawron@newton.ftj.agh.edu.pl)
Academic teachers:
dr inż. Kawecka-Magiera Barbara (Barbara.Kawecka@fis.agh.edu.pl)
dr hab. inż. Gawroński Przemysław (gawron@newton.ftj.agh.edu.pl)
dr inż. Krupińska Grażyna (grazyna@fis.agh.edu.pl)
dr hab. inż, prof. AGH Malarz Krzysztof (malarz@agh.edu.pl)
Module summary

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K004 Student potrafi w sposób przejrzysty zaprezentować rozwiązanie problemu programistycznego. Activity during classes,
Examination,
Participation in a discussion
Skills
M_U007 Student potrafi tworzyć zmienne proste i złożone statycznie oraz dynamicznie. FT1A_U11, FT1A_U08 Activity during classes,
Examination,
Test,
Execution of laboratory classes
M_U008 Student potrafi rozwiązać prosty problem programistyczny korzystając z instrukcji języka C oraz zdefiniowanych przez siebie funkcji. FT1A_U11, FT1A_U08 Activity during classes,
Examination,
Execution of laboratory classes,
Test
Knowledge
M_W007 Student zna i rozumie zasady tworzenia oprogramowania z wykorzystaniem proceduralnego języka C. FT1A_W02, FT1A_W04 Activity during classes,
Examination,
Participation in a discussion
M_W008 Student zna zasady zarządzania pamięcią w języku C. FT1A_W02, FT1A_W04 Activity during classes,
Examination,
Participation in a discussion
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K004 Student potrafi w sposób przejrzysty zaprezentować rozwiązanie problemu programistycznego. - - + - - - - - - - -
Skills
M_U007 Student potrafi tworzyć zmienne proste i złożone statycznie oraz dynamicznie. + - + - - - - - - - -
M_U008 Student potrafi rozwiązać prosty problem programistyczny korzystając z instrukcji języka C oraz zdefiniowanych przez siebie funkcji. + - + - - - - - - - -
Knowledge
M_W007 Student zna i rozumie zasady tworzenia oprogramowania z wykorzystaniem proceduralnego języka C. + - - - - - - - - - -
M_W008 Student zna zasady zarządzania pamięcią w języku C. + - - - - - - - - - -
Module content
Lectures:
  1. Wyrażenia i instrukcje

    Struktura programu, typy danych, stałe, zmienne lokalne, zmienne globalne, inicjalizacja zmiennych, blok kodu, zasięg widzialności zmiennej, kwalifikatory i specyfikatory typów, operatory, instrukcje warunkowe, iteracyjne, skoku, etykiety.

  2. Funkcje, wskaźniki, tablice oraz łańcuchy

    Definicja funkcji, przekazywanie parametrów do funkcji, zwracanie wartości przez funkcje, funkcje o zmiennej liście parametrów, funkcje rekurencyjne, deklarowanie i inicjalizowanie tablic oraz wskaźników, operator pobierania adresu, operator dereferencji, arytmetyka wskaźników, Tablice znaków i operacje na łańcuchach, wskaźniki do funkcji, argumenty wiersza poleceń.

  3. Struktury

    Deklarowanie struktur, operatory dostępu do składowych struktury , przekazywanie struktur do funkcji, wskaźniki do struktur.

  4. Preprocesor

    Dyrektywy preprocesora, makrodefinicje z parametrami.

  5. Abstrakcyjne typy danych w języku C

    Lista jednokierunkowa, stos, kolejka, drzewo.

  6. Biblioteka standardowa

    Funkcje matematyczne, funkcje wejścia/wyjścia, funkcje dynamicznej alokacji pamięci

  7. Standardy języka C

    Standard C89, Standard C99

  8. Elementy inżynierii oprogramowania

    Kompilacja, konsolidacja, make i makefile, biblioteka statyczna, biblioteka dynamiczna

Laboratory classes:
  1. Wyrażenia i instrukcje

    - student potrafi zadeklarować i zainicjalizować zmienne całkowite, rzeczywiste, i znakowe,
    - student potrafi zadeklarować zmienne lokalne oraz globalne,
    - student potrafi utworzyć blok kodu i wykorzystać go do ograniczenia zakresu widzialności zmiennych.
    - student potrafi zaimplementować program z użyciem instrukcji warunkowych, iteracyjnych oraz skoku.
    - student potrafi skonstruować poprawne wyrażenie przy użyciu operatorów arytmetycznych, logicznych, bitowych, relacyjnych.
    - student potrafi określić wartość wyrażenia i na podstawie priorytetów odpowiednich operatorów.

  2. Funkcje, wskaźniki, tablice oraz łańcuchy

    - student potrafi zadeklarować tablicę jednowymiarową i wielowymiarową oraz łańcuch.
    - student potrafi zadeklarować wskaźnik oraz pobrać adres zmiennej.
    - student potrafi użyć wskaźnika do indeksowania tablicy.
    - student potrafi zdefiniować i wywołać funkcję.
    - student potrafi przekazać zmienną do funkcji przez wartość oraz adres.
    - student potrafi zwrócić wartość zmiennej przy pomocy instrukcji return.

  3. Struktury

    - student potrafi zadeklarować i zainicjalizować strukturę oraz wskaźnik do struktury.
    - student potrafi manipulować zawartością struktur przy pomocy operatorów bezpośredniego i pośredniego dostępu do pola struktury.
    - student potrafi przekazać do funkcji i zwrócić strukturę przez wartość i adres.

  4. Preprocesor

    - student potrafi wykorzystać dyrektywę #include,
    - student potrafi zdefiniować makro z parametrami,

  5. Abstrakcyjne typy danych w języku C

    - student potrafi zaimplementować prosty interfejs listy jednokierunkowej,
    - student potrafi zaimplementować prosty interfejs drzewa,

  6. Biblioteka standardowa

    - student potrafi skompilować program z użyciem funkcji matematycznych,
    - student potrafi biegle operować funkcjami wejścia/wyjścia,
    - student potrafi używać funkcji dynamicznej alokacji pamięci,
    - student potrafi wykorzystać w programie funkcje biblioteczne qsort i bsearch oraz przekazywać funkcje do funkcji przy użyciu wskaźnika do funkcji.

  7. Standardy języka C

    - student potrafi skompilować program w standardzie C89 jak również C99.
    - student potrafi wykorzystać praktycznie rozszerzenia zdefiniowane w standardzie C99.

  8. Elementy inżynierii oprogramowania

    - student potrafi zautomatyzować proces tworzenia oprogramowania przy pomocy pliku makefile.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 120 h
Module ECTS credits 4 ECTS
Participation in lectures 28 h
Participation in laboratory classes 28 h
Preparation for classes 36 h
Realization of independently performed tasks 28 h
Additional information
Method of calculating the final grade:

Ocena końcowa to ocena z ćwiczeń laboratoryjnych.
Ocena z ćwiczeń laboratoryjnych = 1/3 * Aktywność zajęciach + 1/3*Pierwsze kolokwium + 1/3*Drugie kolokwium. Aktywność każdych zajęciach oceniana jest w skali od 0 do 100. Pierwsze i drugie kolokwium oceniane jest w skali od 0 do 100.
Pojęcie aktywność na zajęciach definiuje prowadzący zajęcia. Pierwsze trzy zajęcia nie są oceniane.

Ocena końcowa i oceny cząstkowe ustalane będą zgodnie ze skalą ocen obowiązującą w regulaminie AGH, przyporządkowującą procent opanowania materiału konkretnej ocenie.

Prerequisites and additional requirements:

Prerequisites and additional requirements not specified

Recommended literature and teaching resources:
  1. Stephen Prata, Język C. Szkoła programowania, ISBN 83-87150-06-1
  2. Herbert Schildt, Programowanie C, ISBN 83-7243-258-9
  3. Kenneth Reek, Język C wskaźniki, ISBN 83-7361-198-3
  4. Kyle Loudon, Algorytmy w C, ISBN 83-7197 –912-6
  5. Brian Kernighan i Dennis Ritchie, Język ANSI C, ISBN 83-204-1693-0
Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

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

Ćwiczenia laboratoryjne:
Nieobecność na jednych ćwiczeniach/zajęciach wymaga od studenta samodzielnego opanowania przerabianego na tych zajęciach materiału. Nieobecność na więcej niż jednych 20% zajęć wymaga od studenta samodzielnego opanowania przerabianego na tych zajęciach materiału i jego zaliczenia w formie pisemnej w wyznaczonym przez prowadzącego terminie lecz nie później jak w ostatnim tygodniu trwania zajęć. Student, który bez usprawiedliwienia opuścił więcej niż 20% zajęć i jego cząstkowe wyniki w nauce były negatywne może zostać pozbawiony, przez prowadzącego zajęcia, możliwości wyrównania zaległości.

Obecność na wykładzie: zgodnie z Regulaminem Studiów AGH.

Zasady zaliczania zajęć:

Ćwiczenia laboratoryjne:
Podstawowym terminem uzyskania zaliczenia jest koniec zajęć w danym semestrze. Student może dwukrotnie przystąpić do poprawkowego zaliczania.
Kolokwia zaliczeniowe są wspólne dla wszystkich grup a zadania przygotowywane wspólnie przez wszystkich prowadzących zajęcia laboratoryjne.

Student, który bez usprawiedliwienia opuścił więcej niż 20% zajęć i jego cząstkowe wyniki w nauce były negatywne może zostać pozbawiony, przez prowadzącego zajęcia, możliwości poprawkowego zaliczania zajęć. Od takiej decyzji prowadzącego zajęcia student może się odwołać do prowadzącego przedmiot (moduł) lub Dziekana.