Module also offered within study programmes:
General information:
Annual:
2017/2018
Code:
EME-1-301-s
Name:
Basics of graphical programming languages
Faculty of:
Faculty of Electrical Engineering, Automatics, Computer Science and Biomedical Engineering
Study level:
First-cycle studies
Specialty:
-
Field of study:
Microelectronics in industry and medicine
Semester:
3
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)
Kozioł Anna (ankoziol@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_K001 Ma świadomość odpowiedzialności za pracę własną i zespołu, a także jest gotowy podporządkować się zasadom pracy zespołowej. ME1A_K04 Activity during classes,
Test
Skills
M_U001 napisać dokumentację oprogramowania w sposób czytelny dla innych programistów, ME1A_U03 Activity during classes,
Test
M_U002 poprawnie i świadomie wykorzystać znane wzorce projektowe do budowy programu zgodnie ze specyfikacją ME1A_U25 Test,
Activity during classes,
Examination
M_U003 napisać program działający zgodnie ze specyfikacją ME1A_U25 Examination
Knowledge
M_W001 zna proste i złożone struktury danych, zna metody pozwalające na budowę algorytmów operujących na tych danych ME1A_W07 Activity during classes,
Test,
Examination
M_W002 zna podstawowe struktury programów oraz wzorców projektowych ME1A_W07 Activity during classes,
Test,
Examination
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. - - + - - - - - - - -
Skills
M_U001 napisać dokumentację oprogramowania w sposób czytelny dla innych programistów, + - - - - - - - - - -
M_U002 poprawnie i świadomie wykorzystać znane wzorce projektowe do budowy programu zgodnie ze specyfikacją + - + - - - - - - - -
M_U003 napisać program działający zgodnie ze specyfikacją - - + - - - - - - - -
Knowledge
M_W001 zna proste i złożone struktury danych, zna metody pozwalające na budowę algorytmów operujących na tych danych + - - - - - - - - - -
M_W002 zna podstawowe struktury programów oraz 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 programistycznego: konfiguracja środowiska, programy,
2. Metody eliminacji błędów w programach w ćwiczeniach.
3. Algorytmy wykonywane w pętlach FOR i WHILE, sposoby zapisu, rejestr przesuwny,
4. Obsługa wykresów, wykreślanie pojedynczych punktów i całych tablic, struktura waveform,
5. Budowa programu, definicja wejść/wyjść, dokumentacja programu,
6. Program w architekturze maszyny stanów, definicja stanów i przejść pomiędzy nimi,
7. Kolokwium I – napisanie programu o strukturze podstawowej, wyjaśnienie rozwiązania,
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,
13. Budowa aplikacji .exe i dystrybuowanie aplikacji,
14. Uniwersalna, wielowątkowa struktura programu w Windows,
15. Podsumowanie, kolokwium zaliczeniowe i wystawienie ocen.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 146 h
Module ECTS credits 5 ECTS
Participation in lectures 28 h
Participation in laboratory classes 28 h
Preparation for classes 20 h
Realization of independently performed tasks 60 h
Examination or Final test 10 h
Additional information
Method of calculating the final grade:

Ocena z laboratorium jest obliczana na podstawie sumy punktów z kolokwiów i aktywności zgodnie z regulaminem studiów, przy czym:
1. kolokwium I 30 pkt;
2. kolokwium II (niezależny egzamin certyfikacyjny) 30 pkt;
3. aktywność 10 pkt;

Ocena końcowa wystawiana jest na podstawie oceny z laboratorium oraz z egzaminu.

Prerequisites and additional requirements:

Matematyka,
Podstawy Logiki

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, National Instruments, Warszawa 2010
3. W. Nawrocki: Komputerowe Systemy Pomiarowe, WKŁ, 2002
Dodatkowe aktualne materiały podane zostaną na wykładzie

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

Additional scientific publications not specified

Additional information:

None