Procedural programming
0800-PRPROC
Essential construction of the lecture is based on the concept of "case study": from problem, throuhg algorithm, to computer program - understood as a formulation of algorithm in terms of a given computer language.
The main topics listed below are grouped according to the meritoric content, not according to lecture's chronology:
- From calculations to information processing
- From algorithm to program: flow-charts
- Simple data types: arithmetic (fixed, float), logical, character, symbolic
- Expressions, hierarchy of operators
- Statements: sequences, selections, loops; structural programming
- Data structures: arrays, records, sets, objects
- Subprograms: functions, procedures; procedural programming
- Files, processing of data streams
- Dynamic structures: pointers, lists, queues, stacks, trees
- Elements of programming engineering
Total student workload
(in Polish) Godziny realizowane z udziałem nauczycieli ( 62 godz.):
- udział w wykładach - 30 godz.
- udział w laboratoriach – 30 godz.
- konsultacje z nauczycielem akademickim- 2 godz.
Czas poświęcony na pracę indywidualną studenta ( 78 godz.):
- przygotowanie do wykładu - 15 godz.
- przygotowanie do ćwiczeń – 15 godz.
- pisanie prac, projektów- 16 godz.
- czytanie literatury- 16 godz.
- przygotowanie do kolokwium - 16 godz.
Łącznie: 140 godz. (5 ECTS)
Learning outcomes - knowledge
(in Polish) W1 - zna zasady programowania proceduralnego i strukturalnego oraz potrafi wymienić korzyści wynikające ze stosowania tych paradygmatów (Informatyka stosowana: K_W06, K_W10, Automatyka i robotyka: K_W04, K_W06)
W2 - zna składnię języka C: typy danych, instrukcje sterujące, operatory (Informatyka stosowana: K_W06, Automatyka i robotyka: K_W04, K_W06)
W3 - zna definicję pojęć: kompilacja, kod maszynowy, assembler, plik źródłowy, plik nagłówkowy, dyrektywy preprocesora (Informatyka stosowana: K_W05, K_W06, K_W11, Automatyka i robotyka: K_W04, K_W06)
W4 - posiada podstawową wiedzę teoretyczną oraz praktyczną dotyczącą opisu i analizy algorytmów oraz rozumie pojęcie złożoności obliczeniowej algorytmów (Informatyka stosowana: K_W04, Automatyka i robotyka:K_W04, K_W06)
W5 - posiada podstawową wiedzę dotyczącą ograniczeń dotyczących reprezentacji symboli i liczb w komputerze (nadmiar, niedomiar, precyzja obliczeń) (Informatyka stosowana: K_W03, K_W06, Automatyka i robotyka: K_W04, K_W06)
W6 - zna najczęściej wykorzystywane pliki nagłówkowe i funkcje z biblioteki standardowej C: stdio.h, stdlib.h, math.h (Informatyka stosowana: K_W06, Automatyka i robotyka: K_W04, K_W06)
W7 - zna przynajmniej jedno środowisko programistyczne zawierające kompilator języka C działające w środowisku Windows lub UNIX/Linux (Informatyka stosowana: K_W06, Automatyka i robotyka: K_W04, K_W06, K_W07)
Learning outcomes - skills
(in Polish) U1 - potrafi formować algorytmy i programować je w języku C z zachowaniem zasad programowania proceduralnego (Informatyka stosowana: K_U01, K_U08, Automatyka i robotyka: K_U11)
U2 - potrafi posługiwać się wybranymi narzędziami programistycznymi (kompilator, IDE) w celu stworzenia prostych aplikacji konsolowych oraz wyszukiwania błędów w ich działaniu (debugger) (Informatyka stosowana: K_U08, Automatyka i robotyka: K_U09, K_U11)
U3 - potrafi napisać program, który komunikuje się z użytkownikiem za pomocą terminala oraz potrafi wczytać/zapisać dane z pliku (Informatyka stosowana: K_U08, Automatyka i robotyka: K_U11)
U4 - potrafi ocenić złożoność obliczeniową typowych zagadnień algorytmicznych (Informatyka stosowana: K_U08)
U5 - potrafi samodzielnie poszerzać swoją wiedzę z zakresu programowania w oparciu o literaturę i dokumentację techniczną (Informatyka stosowana: K_U04, Automatyka i robotyka: K_U01)
Learning outcomes - social competencies
(in Polish) K1 - rozumie potrzebę ciągłego dokształcania powodowanego pojawianiem się nowych osiągnięć, nowych technologii, etc. rozumie potrzebę wymiany informacji w grupach osób zajmujących się informatyką, rozumie możliwości jakie daje edukacja akademicka, zna wartość innych form edukacji, tj. kursy, egzaminy/certyfikaty, warsztaty, które związane są ze szczegółowymi obszarami wiedzy wokół informatycznej (Informatyka stosowana: K_K06, Automatyka i robotyka: K_K01, K_K02)
K2 - ma świadomość skutków wadliwie działających systemów informatycznych, które mogą doprowadzić do strat moralnych i finansowych, a nawet utraty zdrowia czy zagrożenia życia (Informatyka stosowana: K_K01, Automatyka i robotyka: K_K03)
K3 - rozumie potrzebę zachowań profesjonalnych i przestrzegania zasad etyki (Informatyka stosowana: K_K02, Automatyka i robotyka: K_K03)
Teaching methods
(in Polish) - wykład informacyjny
- analiza problemów (use case)
- demonstracje i symulacje komputerowe
- laboratoria
Expository teaching methods
- problem-based lecture
- informative (conventional) lecture
Exploratory teaching methods
- laboratory
- case study
Type of course
compulsory course
Prerequisites
(in Polish) - wiedza z zakresu matematyki na poziomie maturalnym
- umiejętność obsługi komputera działającego w środowisku Windows lub UNIX/GNU Linux
Course coordinators
Bibliography
- N. Wirth, Algorithms + Data Structures = Programs, Prentice-Hall, 1976.
- D. Harel, The spirit of Computing, Addison-Wesley Pub., 1987.
- Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language
- David Griffiths, Dawn Griffiths, Head First C, O'Reilly Media, 2012.
More info (in Polish): http://www.fizyka.umk.pl/~grochu/pp
Additional information
Additional information (registration calendar, class conductors,
localization and schedules of classes), might be available in the USOSweb system: