Module also offered within study programmes:
General information:
Name:
Podstawy graficznych języków programowania
Course of study:
2017/2018
Code:
EIB-1-503-s
Faculty of:
Faculty of Electrical Engineering, Automatics, Computer Science and Biomedical Engineering
Study level:
First-cycle studies
Specialty:
-
Field of study:
Biomedical Engineering
Semester:
5
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
Maj Piotr (maj@agh.edu.pl)
Academic teachers:
Maj Piotr (maj@agh.edu.pl)
Module summary

Podstawy graficznych języków programowania w praktyce

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_K001 Ma świadomość odpowiedzialności za pracę własną i zespołu, a także jest gotowy podporządkować się zasadom pracy zespołowej. IB1A_K03, IB1A_K01 Activity during classes,
Test
M_K002 IB1A_K01 IB1A_K01 Activity during classes,
Test
Skills
M_U001 Potrafi zaplanować pracę zespołu i sprawnie oraz bezpiecznie w tym zespole pracować. Potrafi napisać specyfikację oprogramowania w sposób czytelny dla innych programistów Potrafi poprawnie, świadomie i wykorzystać znane wzorce projektowe do budowy programu zgodnie ze specyfikacją IB1A_U02, IB1A_U07, IB1A_U04, IB1A_U11 Activity during classes,
Test
Knowledge
M_W002 Ma wiedzę pojęć z zakresu budowy struktur danych i oprogramowania. Ma poszerzoną i uporządkowaną wiedzę dotyczącą podstawowych struktur wykorzystywanych do budowy oprogramowania. Zna i rozumie budowę, zasady działania oraz zastosowania podstawowych wzorców projektowych IB1A_W07, IB1A_W12, IB1A_W10 Activity during classes,
Test
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_K001 Ma świadomość odpowiedzialności za pracę własną i zespołu, a także jest gotowy podporządkować się zasadom pracy zespołowej. + - + - - - - - - - -
M_K002 IB1A_K01 + - + - - - - - - - -
Skills
M_U001 Potrafi zaplanować pracę zespołu i sprawnie oraz bezpiecznie w tym zespole pracować. Potrafi napisać specyfikację oprogramowania w sposób czytelny dla innych programistów Potrafi poprawnie, świadomie i wykorzystać znane wzorce projektowe do budowy programu zgodnie ze specyfikacją - - + - - - - - - - -
Knowledge
M_W002 Ma wiedzę pojęć z zakresu budowy struktur danych i oprogramowania. Ma poszerzoną i uporządkowaną wiedzę dotyczącą podstawowych struktur wykorzystywanych do budowy oprogramowania. Zna i rozumie budowę, zasady działania oraz zastosowania podstawowych wzorców projektowych + - + - - - - - - - -
Module content
Lectures:
Wykład

WYKŁADY 2×45min

1. Omówienie programu przedmiotu w zakresie wykładu i laboratorium. Omówienie poszczególnych zagadnień i związanych z nimi trudności, które należy rozwiązać, przedstawienie i omówienie literatury przedmiotu.

2. Programowanie, definicja, zastosowania. Wstęp do graficznych języków programowania. Omówienie środowiska programowania – podstawowe funkcje i możliwości środowiska wraz z przykładami wykorzystania.

3. Błędy w programach. Błędy grube rozpoznawane przez kompilator. Błędy programisty. Narzędzia do detekcji błędów, śledzenia błędów. Metody zabezpieczania przed skutkami występowania błędów wraz z przykładami.

4. Podstawowe struktury danych w środowisku LabVIEW i ich właściwości wraz z przykładami. Struktury złożone (tablice i klastry danych), definicje typu, ich zastosowania wraz z przykładami użycia w gotowych programach.

5. Pętle WHILE, FOR – definicja, zastosowanie i przykłady wykorzystania do obsługi tablic i struktur danych. Rejestr przesuwny pętli zastosowany w dwóch trybach wraz z przykładami. Struktury wyboru CASE i Select wraz z przykładami wykorzystania.

6. Trzy rodzaje wykresów i ich obsługa wraz z przykładami. Obsługa plików tekstowych i plików typu Spreadsheet (zapis, odczyt, błędy). Przykłady fragmentów aplikacji wykorzystujących obsługę plików.

7. Budowa programu – General VI oraz Simple VI. Przykłady pisania prostych aplikacji i związanych z tym ustawień (Nazwa, ikona, dokumentacja, przykład użycia). Testowanie szybkości pracy programu. Struktura programu Functional Global i przykłady jej wykorzystania.

8. Podstawowa architektura programu – maszyna stanów. Budowa programu, wady i zalety, sposoby definiowania stanów, warunki przejścia, taktowanie programu i obsługa interfejsu użytkownika wraz z przykładami.

9. Wątki równoległe. Dwie pętle WHILE pracujące równolegle. Zmienne lokalne, globalne oraz zmienne współdzielone. Współdzielenie zasobów i błędy związane z pętlami równoległymi i próbą jednoczesnego dostępu do danych. Przykład rozwiązania problemu przez wykorzystanie Functional Global.

10. Synchronizacja wątków przez wykorzystanie kolejek (Queues) i powiadomień (Notifiers). Budowa programów z wyżej wymienionymi strukturami. Przykłady podstawowych schematów programów Producent-Konsument oraz Master-Slave.

11. Programowanie z wykorzystaniem struktury zdarzeń. Omówienie asynchronicznych powiadomień z interfejsu użytkownika. Omówienie struktury Event. Przykłady programów wykorzystujących zdarzenia oraz filtrowanie zdarzeń. Wady, zalety i wskazówki użycia struktury w praktycznych aplikacjach.

12. Programowa zmiana właściwości obiektów w LabVIEW (kontrolek i wskaźników). Property Node i Invoke Node. Możliwości wykorzystania w programach. Referencja do kontrolek i wskaźników. Zmiana właściwości interfejsu w podprogramach. Przykłady wykorzystania do budowania automatycznych raportów.

13. Zaawansowane funkcje plikowe. Pliki binarne, ASCII oraz TDMS. Własności plików binarnych w porównaniu do ASCII i TDMS. Ułożenie danych na dysku. Szybkość dostępu do danych. Defragmentacja plików. Przykłady wykorzystania do zapisu i odczytu dużych i bardzo dużych plików.

14. Refactoring. Kiedy poprawiać, usprawniać i przyspieszać wykonywanie programu. Jakość programu a szybkość jego wykonywania. Poprawność kodu. Budowa aplikacji .exe – kodu wykonywalnego. Dystrybucja aplikacji. Instalowanie. Dołączanie dokumentacji i plików powiązanych z definicją ich ścieżki docelowej. Kolejne wersje programu.

15. Budowa aplikacji wielowątkowych. Synchronizacja wątków. Dobór struktur danych dla komunikatów. Rozpoczęcie działania programu.

Laboratory classes:
Laboratorium

LABORATORIUM 2×45min

1. Obsługa interfejsu środowiska LabVIEW: konfiguracja środowiska, opcje, palety,
2. Algorytmy wykonywane w pętlach FOR i WHILE, sposoby zapisu, rejestr przesuwny, struktura case
3. Podstawowe typy danych, tablice
4. Klastry, obsługa wykresów, wykreślanie pojedynczych punktów i całych tablic, struktura waveform,
5. Budowa programu, budowa podprogramów, definicja wejść/wyjść, dokumentacja programu,
6. Program w architekturze maszyny stanów, definicja stanów i przejść pomiędzy nimi,
7. Functional Global Variable, kolejki, notifiery
8. Dwie pętle równolegle i ich synchronizacja przy wykorzystaniu kolejek i powiadomień,
9. Struktura zdarzeń, przechwytywania zdarzeń systemowych, sposoby wykorzystania,
10. Programowa zmiana własności programu – wykorzystanie property node i invoke node,
11. Funkcje plikowe, pliki binarne i pliki TDMS,
12. Kolejne kroki przy poprawianiu programu – poprawa gotowego kodu, VI analyzer
13. Budowa aplikacji .exe i dystrybuowanie aplikacji,
14. Uniwersalna, wielowątkowa struktura programu w Windows,
15. Podsumowanie, kolokwium zaliczeniowe i wystawienie ocen.

Każde laboratoria rozpoczynają się testem na platformie moodle. Podczas laboratoriów studenci rozwiązują zadania dostarczone przez prowadzącego oraz prezentują rozwiązania zadań domowych.

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

1. Aby uzyskać pozytywną ocenę końcową niezbędne jest uzyskanie pozytywnej oceny z ćwiczeń laboratoryjnych.
2. Obliczana jest średnia arytmetyczna ocen z laboratorium.
3. Ocena końcowa wystawiana jest zgodnie z regulaminem studiów.

Prerequisites and additional requirements:

Znajomość podstaw matematyki, podstaw programowania

Recommended literature and teaching resources:

1. Robert H. Bishop: LabVIEW Student Edition, Prentice Hall, 2009
2. Materiały szkoleniowe kursów LabVIEW Core I, LabVIEW Core II, LabVIEW Core III, National Instruments, Warszawa 2010
3. W. Nawrocki: Komputerowe Systemy Pomiarowe, WKŁ, 2002
4. Materiały szkoleniowe kursu Data Acquisition and Signal Conditioning, National Instruments, Warszawa 2010

Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

None