techniki komputerowe - Instytut Maszyn Matematycznych

Transkrypt

techniki komputerowe - Instytut Maszyn Matematycznych
W NUMERZE:
Nauczanie baz danych - doœwiadczenia szkoleniowe Instytutu Maszyn
Matematycznych, Tadeusz Kuroczycki
INSTYTUT MASZYN MATEMATYCZNYCH
Przetwarzanie tekstu - analiza potrzeb s³uchaczy na podstawie doœwiadczeñ
szkoleniowych Instytutu Maszyn Matematycznych, Andrzej Abramowicz
Arkusze kalkulacyjne - doœwiadczenia szkoleniowe Instytutu Maszyn
Matematycznych, Krzysztof £ysoñ
Metodyka treningu wielopoziomowego operatorów robotów, Andrzej
Kaczmarczyk, Marek Kacprzak, Andrzej Mas³owski
Tworzenie oprogramowania trena¿erów operatorów robotów mobilnych,
Marek Kacprzak, Andrzej Kaczmarczyk, Andrzej Mas³owski
Przetwarzanie kodu - czyli jak dzia³a kompilator, Piotr Zduñczyk
TECHNIKI
KOMPUTEROWE
BIULETYN INFORMACYJNY
Technologia bezprzewodowa Bluetooth, Jerzy S³omczyñski
1
2008
ISSN 0239-8044
Warszawa 2008
TECHNIKI
KOMPUTEROWE
BIULETYN INFORMACYJNY
INSTYTUT MASZYN MATEMATYCZNYCH
TECHNIKI
KOMPUTEROWE
BIULETYN INFORMACYJNY
Rok XLIII, Nr 1, 2008
Warszawa 2008
TECHNIKI KOMPUTEROWE, Biuletyn Informacyjny
Rok XLIII, Nr 1, 2008
Wydawca: Instytut Maszyn Matematycznych
Projekt ok³adki: Jerzy Kowalski
DTP: Instytut Maszyn Matematycznych
Notka wydawcy:
Ca³a zawartoœæ niniejszego wydania, wraz z rysunkami i zdjêciami jest w³asnoœci¹
Instytutu Maszyn Matematycznych oraz Autorów. Kopiowanie i reprodukowania
niniejszego biuletynu w ca³oœci lub czeœci jest bez zezwolenia Wydawcy
zabronione.
ISSN 0239-8044
Instytut Maszyn Matematycznych
02-078 Warszawa, ul. Krzywickiego 34
www.imm.org.pl
Druk i oprawa: Oficyna Wydawniczo-Poligraficzna ADAM
Spis treœci
Nauczanie baz danych - doœwiadczenia szkoleniowe Instytutu Maszyn
Matematycznych, Tadeusz Kuroczycki
7
Przetwarzanie tekstu - analiza potrzeb s³uchaczy na podstawie
doœwiadczeñ szkoleniowych Instytutu Maszyn Matematycznych,
Andrzej Abramowicz
14
Arkusze kalkulacyjne - doœwiadczenia szkoleniowe Instytutu Maszyn
Matematycznych, Krzysztof £ysoñ
22
Metodyka treningu wielopoziomowego operatorów robotów, Andrzej
Kaczmarczyk, Marek Kacprzak, Andrzej Mas³owski
30
Tworzenie oprogramowania trena¿erów operatorów robotów
mobilnych, Marek Kacprzak, Andrzej Kaczmarczyk, Andrzej Mas³owski
39
Przetwarzanie kodu - czyli jak dzia³a kompilator, Piotr Zduñczyk
48
Technologia bezprzewodowa Bluetooth, Jerzy S³omczyñski
54
Tadeusz Kuroczycki
Instytut Maszyn Matematycznych
Nauczanie baz danych – doświadczenia szkoleniowe
Instytutu Maszyn Matematycznych
Database-related education – educational experiences of the
Institute of Mathematical Machines
Streszczenie
W artykule omówiono wybrane zagadnienia dotyczące edukacji informatycznej
w dziedzinie relacyjnych baz danych. Podstawowe formy edukacji to szkolenia w zakresie
korzystania i projektowania baz danych, szkolenia ukierunkowane na tworzenie aplikacji
oraz konsultacje i doradztwo. W artykule autor wykorzystuje swoje wieloletnie
doświadczenie w zakresie prowadzenia szkoleń związanych z dziedziną baz danych.
Abstract
The article discuses the chosen issues regarding IT education in the field of relational
databases. Basic forms of this education are the trainings regarding the use and design of
databases, trainings aimed at the creation of applications, as well as providing support and
consultancy. In the article the author uses his long experience in the field of conducting
database-related trainings.
1. Wstęp
Instytut Maszyn Matematycznych w Warszawie od lat prowadzi szkolenia
z szeroko pojętego obszaru informatyki. Organizacją i prowadzeniem większości
szkoleń zajmuje się Centrum Doradczo-Szkoleniowe. Historia Centrum sięga
przełomu lat osiemdziesiątych i dziewięćdziesiątych, kiedy to w Instytucie
Maszyn Matematycznych został powołany Ośrodek Badawczo-Szkoleniowy
Technik Komputerowych. Następnie, w trakcie swego prawie dwudziestoletniego
istnienia, Ośrodek przechodził zmiany w strukturze organizacyjnej, by wreszcie od
lipca roku 2007 zacząć funkcjonować w obecnym kształcie, jako Centrum
Doradczo-Szkoleniowe IMM.
Początkowo zajęcia prowadzono na komputerach osobistych klasy IBM PC,
pod kontrolą systemu operacyjnego MS-DOS ucząc korzystania z edytorów tekstu
(m.in. Chiwriter, MS-Word, Ami-Pro i WordPerfect) oraz arkuszy kalkulacyjnych
(Multiplan i jego polski odpowiednik znany jako Multoplan). Pierwsze kursy w
środowisku graficznym (GUI) związane były z pojawieniem się w Polsce systemu
operacyjnego MS-Windows w wersji 2.1. Wśród pakietów w wersji graficznej
najpopularniejszymi okazały się początkowo – MS-Word (edytor tekstu) i Lotus 12-3 (arkusz kalkulacyjny). Wkrótce obok programu Lotus 1-2-3 pojawił się jego
groźny konkurent – MS-Excel, który z czasem zdominował rynek arkuszy
kalkulacyjnych w Polsce.
Obecnie podstawowy zakres szkoleń obejmuje oprogramowanie biurowe ze
szczególnym uwzględnieniem edytorów tekstu, arkuszy kalkulacyjnych i baz
danych. Doświadczenia dotyczące nauczania edytorów tekstu i arkuszy
kalkulacyjnych są opisane w [1] i [2]. W niniejszej pracy opisano doświadczenia
szkoleniowe w zakresie baz danych.
Szkolenia z dziedziny relacyjnych baz danych stanowią jedną z form bieżącej
działalności Centrum w obszarze baz danych. Dwie pozostałe to: konsultacje
i doradztwo w zakresie zastosowań bazodanowych oraz tworzenie konkretnych
aplikacji (programów użytkowych) na zamówienie klientów.
2. Korzystanie z systemów ZBD
Z bazami danych spotykamy się praktycznie w każdej dziedzinie życia. Często
nie używamy samego terminu baza danych, ale zawsze chodzi o zbiory
przeznaczone do przechowywania dużych ilości informacji. Z bazą danych (zbiór
danych) jest powiązane narzędzie umożliwiające obsługę informacji w bazie,
zwane Systemem Zarządzania Bazą Danych (SZBD). Przy pomocy SZBD
wprowadzamy dane do bazy, modyfikujemy je, wyszukujemy w różnych
przekrojach według określonych kryteriów, prowadzimy szczegółową analizę
danych, prezentujemy dane w formie zestawień lub sporządzamy na ich podstawie
raporty. Wynika stąd, że szkolenia związane z dziedziną baz danych powinny
dotyczyć przede wszystkim metod korzystania z SZBD.
W latach dziewięćdziesiątych pierwsze szkolenia, jeszcze pod kontrolą
systemu operacyjnego DOS, dotyczyły SZBD o nazwie dBase. Głównie
w najpopularniejszej wersji – III Plus. Z programem dBase powiązany był pakiet
o nazwie Clipper stanowiący narzędzie do tworzenia aplikacji bazodanowych
również działających w środowisku DOS i wykorzystujących format danych
zgodny z linią dBase.
W roku 1995 w ofercie szkoleniowej Centrum w zakresie baz danych pojawił
się program MS Access wchodzący w skład pakietu zintegrowanego MS Office
pracującego już w środowisku Windows. Oferta Centrum była aktualizowana wraz
z pojawianiem się kolejnych wersji tego programu. Dziś szkolenia, zarówno na
poziomie podstawowym jak i zaawansowanym, są prowadzone w oparciu o wersje
2000 i 2003.
Od samego początku proces edukacyjny związany z bazami danych dotyczył
dwóch poziomów pracy w środowisku bazodanowym: korzystania z istniejących
baz danych oraz projektowania i tworzenia nowych baz.
Podstawową sprawą, którą musi rozwiązać wykładowca, to ustalenie
właściwych proporcji pomiędzy zakresem przekazywanej wiedzy teoretycznej
i praktycznej. Często odbywa się to na bieżąco – już po rozpoczęciu konkretnego
szkolenia. Bowiem zależy to m.in. od ogólnego poziomu wiedzy informatycznej
posiadanej przez słuchaczy oraz od ich potrzeb – zarówno bieżących jak
i przyszłościowych.
Wprowadzając słuchacza w świat baz danych należy zapoznać go
z obowiązującą tam terminologią oraz przekazać mu niezbędne zasady poruszania
się w świecie baz danych. Problem terminologii jest tu o tyle istotny, że istnieją
pewne standardy w korzystaniu z systemów zarządzania relacyjnymi bazami
danych. Poznanie powyższych standardów ułatwia użytkownikowi korzystanie
z różnych SZBD. Użytkownik, który wie, że mechanizm wyszukiwania informacji
w relacyjnych bazach danych wykorzystuje instrukcje języka SQL (Structured
Query Language), będzie miał ułatwione zadanie w przypadku potrzeby
skorzystania z nieznanego mu narzędzia. Przykładowo osoba znająca Access,
8
która teraz ma zająć się obsługą baz danych w MySQL odnajdzie tu znane jej
konstrukcje języka SQL jak instrukcje SELECT, INSERT czy UPDATE.
Podstawowymi terminami stosowanymi w każdym systemie zarządzania
relacyjnymi bazami danych są: rekord, pole, klucz (główny, obcy, prosty,
złożony), relacja, indeks, typ danych, integralność danych, sortowanie danych,
filtrowanie danych [3].
Niestety, przy opracowywaniu polskich edycji językowych dla poszczególnych
SZBD pojawiły się różnice terminologiczne. Dotyczy to również kolejnych wersji
tego samego systemu.
Przykładowo, w polskich edycjach wcześniejszych wersji programu Access
składowa przeznaczona do sprawnego wyszukiwania informacji w różnych
przekrojach z uwzględnieniem bardziej lub mniej złożonych kryteriów była
określana przy użyciu terminu zapytanie jako odpowiednika słowa query w jęz.
angielskim. Niestety, po przejęciu przez firmę Microsoft systemu zarządzania
bazami danych o nazwie FoxPro nastąpiła zmiana w terminologii. Z programu
FoxPro zaczerpnięto mniej szczęśliwy (moim zdaniem) termin kwerenda i tak już
zostało w kolejnych wersjach programu Access.
Program Access stanowi podstawowe narzędzie stosowane do nauczania baz
danych w Centrum Doradczo-Szkoleniowym, głównie ze względu na to, że
wchodzi on w skład pakietu zintegrowanego MS Office – obecnie
najpopularniejszego pakietu z zakresu oprogramowania biurowego. Do celów
edukacyjnych wykorzystywana jest oczywiście polska wersja językowa tego
programu. Pojawia się tu kolejny problem. W przeciwieństwie do programów
Word lub Excel, mechanizm stosowania funkcji wbudowanych nie został
spolszczony (zarówno nazwy funkcji jak i ich opisy w sekcji Pomoc). Stanowi to
czasem dodatkowy kłopot dla uczestników szkolenia. Osoba znająca funkcję
o nazwie Jeżeli (Excel) nie znajdzie jej pod tą nazwą w programie Access. Tu jej
odpowiednikiem jest funkcja o nazwie IIF.
W ramach szkoleń zarówno na poziomie podstawowym jak i zaawansowanym
przekazywane są uczestnikom podstawowe zasady związane z projektowaniem
baz danych – oczywiście bez głębszego wnikania w teorię baz danych (np.
postacie normalne) oraz bez szczegółowego omawiania trzech faz procesu
projektowania: analiza wymagań, modelowanie danych oraz normalizacja.
Ponieważ wszystkie dane w bazie są przechowywane w tabelach, najważniejszą
sprawę stanowi poprawne określenie struktury tabel.
Do wyżej wspomnianych podstawowych zasad projektowania tabel należą:
– niepowtarzalność danych (konkretna informacja np. nazwisko pracownika
w bazie kadrowej powinna występować tylko w jednym zbiorze danych – jednej
tabeli),
– niepodzielność danych (w jednym polu powinna znajdować się tylko jedna
informacja – np. niedozwolone jest umieszczenie nazwiska i imienia osoby obok
siebie w jednym polu),
– niezależność danych (w tabeli nie powinna być przechowywana informacja
obliczana na podstawie innych danych przechowywanych w tej samej bazie).
Często zdarza się, że po zakończeniu szkolenia jego uczestnik przystępuje do
tworzenia własnej bazy danych i powinien wiedzieć jak zrobić to w sposób
właściwy, aby uniknąć popełnienia ewentualnych błędów. Problem stanowią tu
9
pewne niedobre nawyki. Niejednokrotnie spotykałem się z następującą sytuacją.
W przypadku konieczności stworzenia firmowej bazy danych sięgano najpierw po
program Excel jako bardziej znany. Jest tam pewna namiastka baz danych kryjąca
się po hasłem – listy.
Po zapoznaniu się z programem Access i założeniu nowej bazy następował
transfer danych. Jeżeli nie miały one struktury zgodnej z regułami obowiązującymi
w świecie baz danych, użytkownika czekała bardzo czasochłonna i mozolna praca
nad poprawieniem dotychczasowej struktury. Dwoma najczęściej powtarzającymi
się błędami było nieuwzględnienie reguł niepodzielności danych i niezależności
danych oraz brak wiedzy na temat logicznego związku pomiędzy regułą
niepodzielności danych, a operacją wyszukiwania danych oraz pomiędzy regułami
niepowtarzalności i niezależności danych, a edycją danych.
Kolejną sprawą, na którą należy zwrócić uwagę przy nauce korzystania
z SZBD, jest konieczność wprowadzania i stosowania w bazie danych
unikatowych identyfikatorów dla wszystkich elementów opisywanych w bazie (np.
kod produktu, identyfikator osoby) [4]. Wiąże się to z ustawianiem kluczy.
Niestety, sprawa definiowania kluczy nie jest opisana w większości podręczników
w sposób precyzyjny i jednoznaczny.
Proces tworzenia poszczególnych składowych bazy może odbywać się różnymi
drogami. Ważne jest by uczestnicy szkolenia opanowali dobrze przynajmniej
jedną, najbardziej uniwersalną metodę. Za najoptymalniejszą metodę należy
przyjąć w przypadku tabel i kwerend – tworzenie ich drogą samodzielnego
projektowania, bez korzystania z odpowiedniego kreatora. Uzasadnieniem takiego
wyboru jest fakt, że droga ta jest właściwie jedyną w przypadku konieczności
późniejszego zmodyfikowania struktury już istniejącej tabeli lub kwerendy.
Natomiast w przypadku formularzy czy raportów, ich tworzenie (podczas
szkolenia) powinno odbywać się przy pomocy właściwego kreatora.
W procesie szkoleniowym wykładowca powinien też omówić operacje
importu/eksportu danych. Ważną sprawą jest tu przekazanie słuchaczom
informacji o możliwości jednoczesnej pracy na tych samych danych przy pomocy
różnych narzędzi (mechanizm tabel połączonych).
Przykładowo, zbiór danych został założony w arkuszu kalkulacyjnym Excel.
Wprowadzono dużą ilość danych. Po pewnym czasie pojawiła się konieczność
okresowego sporządzania zestawień. Excel nie posiada wygodnego i elastycznego
mechanizmu służącego do tego celu. Natomiast w programie Access użytkownik
może w wygodny sposób tworzyć i okresowo wyświetlać/drukować zestawienia
w formie raportów. Z drugiej strony wskazane jest pozostawienie danych
w arkuszu i prowadzenie edycji według dotychczasowych procedur.
Dzięki zastosowaniu mechanizmu tabel połączonych dane mogą pozostać
w arkuszu i być tam poddawane aktualizacji. Natomiast, dzięki temu, że wszystkie
informacje są widoczne w bazie (Access) można w dowolnym momencie
sporządzać raporty prezentujące aktualny stan danych [5].
Powracając do sprawy proporcji pomiędzy częścią teoretyczną a praktyczną
w cyklu szkoleniowym należy podkreślić zdecydowaną przewagę tej drugiej –
choćby w wymiarze czasowym. Dużą rolę odgrywa tu wykonywanie konkretnych
ćwiczeń przez słuchaczy. Treść tych ćwiczeń w sposób wyraźny powinna być
związana z przekazanymi elementami wiedzy teoretycznej.
10
Przykładowym sprawdzianem umiejętności w zakresie projektowania baz
danych jest rozwiązanie następującego zadania przedstawiającego typową sytuację
z jaką spotykamy się w rzeczywistości. Jest podany zbiór informacji, które
powinny znaleźć się w tworzonej bazie. Zadanie polega na zaplanowaniu
właściwej liczby tabel i rozdzieleniu wspomnianych danych na poszczególne
tabele z uwzględnieniem podstawowych reguł projektowania, w tym dołączeniu
pól przechowujących identyfikatory elementów opisywanych w tabelach.
3.Tworzenie programów użytkowych (aplikacji)
Obok szkoleń dotyczących korzystania z SZBD w zakresie przedstawionym
powyżej (korzystanie z istniejących baz danych oraz projektowanie nowych baz)
w Centrum prowadzone są szkolenia dotyczące tworzenia programów użytkowych
(aplikacji) działających zazwyczaj w środowisku sieciowym [6].
W tym przypadku bardzo dużą rolę odgrywa doświadczenie wykładowców
zdobyte w trakcie prac nad specjalizowanymi systemami użytkowymi z dziedziny
baz danych, przygotowywanymi na zamówienie klienta. Pracownicy Centrum
mają w swym dorobku m.in. opracowanie i wdrożenie szeregu aplikacji dla
potrzeb urzędów centralnych. Należą do nich systemy powstałe na zamówienie
Urzędu Rady Ministrów (przełom lat osiemdziesiątych i dziewięćdziesiątych),
Kancelarii Senatu (lata dziewięćdziesiąte) oraz pakiet aplikacji przygotowany na
zamówienie Ministerstwa Spraw Zagranicznych (lata 2000-2003).
Szkolenia na poziomie zaawansowanym związane z tworzeniem aplikacji są
obecnie prowadzone w dwóch wariantach. Pierwsze szkolenie – noszące tytuł
Tworzenie aplikacji przygotowuje słuchaczy do
tworzenia aplikacji
z wykorzystaniem makr, natomiast Programowanie baz danych (dawniej:
Tworzenie aplikacji z wykorzystaniem języka Visual Basic) ma za zadanie
przygotować uczestników szkolenia do tworzenia aplikacji w oparciu o elementy
programowania w języku VBA (Visual Basic for Applications). Słuchacze
uzyskują wiedzę ogólną dotyczącą podstaw programowania ze szczególnym
ukierunkowaniem na programowanie obiektowe.
Oba szkolenia uwzględniają specyfikę działania programów użytkowych
w środowisku sieciowym. W celu przedstawienia słuchaczom pełnej gamy
środków służących do tworzenia programów użytkowych, każde z powyższych
szkoleń obejmuje również elementy charakterystyczne dla drugiego wariantu
tworzenia aplikacji.
W trakcie szkolenia jego uczestnicy pracując w oparciu o przykładową bazę
danych budują aplikację, krok po kroku, wykorzystując uzyskaną wiedzę oraz
korzystając z dodatkowych narzędzi typu: rozdzielacz bazy danych, menedżer
tabel połączonych, kreator plików mde.
Tego rodzaju ćwiczenia praktyczne pozwalają utrwalić uzyskane informacje,
aby później wykorzystać je na etapie samodzielnej pracy mającej na celu
utworzenie lub zmodyfikowanie konkretnego systemu użytkowego.
Przekazanie słuchaczom elementów programowania aplikacji przy
wykorzystaniu języka Visual Basic for Applications pozwala na opanowanie przez
nich podstaw programowania obiektowego. Umożliwia też zastosowanie, przez
nich w przyszłości, języka VBA do programowania makropoleceń związanych
z innymi programami pakietu Office (Word, Excel).
11
4. Certyfikacja umiejętności
Najpopularniejszym obecnie potwierdzeniem posiadania kompetencji
w obszarze wiedzy informatycznej jest uzyskanie Europejskiego Certyfikatu
Umiejętności Komputerowych ECDL (European Computer Driving Licence) [7].
ECDL to międzynarodowy projekt Stowarzyszenia Europejskich
Profesjonalnych Towarzystw Informatycznych (Council of European Professional
Informatics Societes – CEPIS), mający na celu ujednolicenie i sprawdzenie
wiadomości z podstaw obsługi komputera. Inicjatywa ta polega na wydaniu
jednolitego w skali kraju certyfikatu zaświadczającego, że jego posiadacz ma
podstawowe umiejętności w zakresie obsługi komputera i potrafi je efektywnie
wykorzystać w codziennej pracy.
Pomysł certyfikatu zrodził się w Finlandii w roku 1992, potem został
rozpropagowany w Unii Europejskiej. W Polsce, począwszy od roku 1997,
egzaminy ECDL (określane początkowo jako Europejskie Komputerowe Prawo
Jazdy – obecnie tłumaczone jako Europejski Certyfikat Umiejętności
Komputerowych) przeprowadza (i wydaje certyfikaty) Polskie Towarzystwo
Informatyczne. Certyfikat taki jest zgodny z europejskimi standardami
i honorowany w całej Unii Europejskiej.
Aby otrzymać certyfikat ECDL należy (w ciągu 3 lat) zdać siedem egzaminów
z następujących dziedzin:
• Podstawy technik informatycznych
• Użytkowanie komputerów
• Przetwarzanie tekstów
• Arkusze kalkulacyjne
• Bazy danych
• Grafika menedżerska i prezentacyjna
• Usługi w sieciach informatycznych
W Instytucie szkolenia przygotowujące do egzaminów ECDL są prowadzone
od roku 2000. Do tej pory prawie wszyscy uczestnicy tych szkoleń zdali
pozytywnie komplet egzaminów i uzyskali certyfikat.
Osoby, które posiadają już ugruntowaną wiedzę na poziomie certyfikatu ECDL
i chcą potwierdzić swoje umiejętności w dziedzinie konkretnej aplikacji mogą
ubiegać się o uzyskanie certyfikatu ECDL Advanced. W przypadku ECDL
Advanced certyfikaty wydawane są oddzielnie dla każdego z 4 modułów:
• Przetwarzanie tekstów
• Arkusze kalkulacyjne
• Bazy danych
• Grafika menedżerska i prezentacyjna
Osoba, która skompletuje wszystkie (cztery) certyfikaty ECDL Advanced
otrzymuje tytuł ECDL Ekspert. Z dziedziną baz danych związane są dwa poziomy
certyfikacyjne – podstawowy i zaawansowany (Advanced). Rozpatrując relację
pomiędzy wymaganiami stawianymi przed osobami zdobywającymi ten certyfikat,
a podstawowym zakresem wiedzy w dziedzinie baz danych należy podkreślić z
żalem fakt, że brane są tu pod uwagę jedynie kompetencje związane z
wykorzystaniem baz danych – bez głębszego uwzględnienia elementów
projektowania. Znacznie ostrzejsze wymagania są związane ze zdobyciem
certyfikatu ECDL – poziom zaawansowany (ECDL Advanced). Zakres
12
wymaganej wiedzy w przypadku baz danych obejmuje również elementy
projektowania baz danych. Jednocześnie osoba w trakcie egzaminu musi sama
wybrać najwłaściwszą drogę do realizacji postawionego zadania.
5. Spojrzenie w przyszłość
Szybki rozwój technologii informatycznych, jaki obserwujemy w ostatnich
latach, stawia nowe wyzwania i określa nowe kierunki działalności – również
działalności edukacyjnej w dziedzinie baz danych.
Jednym z nich jest szersze ukierunkowanie szkoleń z baz danych na działanie
w sieci Internet. Przykładem mogłoby być szkolenie przygotowujące do tworzenia
aplikacji internetowych, które obejmowałoby następujące zagadnienia: znajomość
relacyjnych baz danych, zarządzanie serwerem WWW oraz opracowywanie
praktycznych aplikacji z wykorzystaniem skryptów ASP (Active Server Pages).
Drugi kierunek działalności szkoleniowej powinien być związany z (coraz
popularniejszymi) narzędziami bazodanowymi typu open source. Chodzi tu
głównie o programy Base i Calc wchodzące w skład pakietu oprogramowania
biurowego OpenOffice.
Literatura
[1]
Abramowicz A., Przetwarzanie tekstu – analiza potrzeb słuchaczy na
podstawie doświadczeń szkoleniowych Instytutu Maszyn
Matematycznych. Techniki Komputerowe. Biuletyn Informacyjny, 1,
2008.
[2]
Łysoń K., Arkusze kalkulacyjne – doświadczenia szkoleniowe Instytutu
Maszyn Matematycznych. Techniki Komputerowe. Biuletyn
Informacyjny, 1, 2008.
[3]
Date C.J., An Introduction to Database Systems. Addison-Wesley
Publishing Company, 1995.
[4]
Hernandez M.J., Bazy danych dla zwykłych śmiertelników. Mikom,
1998.
[5]
Forte S.: Access 2000. Księga eksperta. Wydawnictwo Helion, 2001.
[6]
Banachowski L., Bazy danych. Tworzenie aplikacji. Akademicka Oficyna
Wydawnicza PLJ, 1998.
[7]
Kopertowska M., Europejski Certyfikat Umiejętności Komputerowych –
Bazy danych. Wydawnictwo Naukowe PWN SA, 2007.
13
Andrzej Abramowicz
Instytut Maszyn Matematycznych
Przetwarzanie tekstu – analiza potrzeb słuchaczy
na podstawie doświadczeń szkoleniowych
Instytutu Maszyn Matematycznych
Text processing – students’ needs based on educational
experiences
of the Institute of Mathematical Machines
Streszczenie
Celem artykułu jest uzasadnienie potrzeby uzupełniania wiedzy informatycznej z dziedziny
przetwarzania tekstu, określenie pewnego „minimum edukacyjnego” związanego
z umiejętnością posługiwania się edytorem oraz zwrócenie uwagi na wybrane aspekty
efektywności w pracy nad tekstem.
Abstract
The aim of the article is to prove necessity of completion of text processing knowledge.
A „basic knowledge level” is defined. Additionally, some problems connected with text
processing effectiveness are considered.
Próba diagnozy stanu edukacji informatycznej
Faktem jest, że obecnie wiele osób, zwłaszcza aktywnych zawodowo,
deklaruje znajomość obsługi komputera i rzeczywiście – ma w tym zakresie pewne
doświadczenia. Niestety, bardzo często poziom ich wiedzy jest dalece
niewystarczający, np. znacznie odbiega od oczekiwań nawet niezbyt
wymagających pracodawców. Jest wiele przyczyn takiego stanu rzeczy.
W przypadku osób w średnim wieku powody są dość oczywiste. Ale nawet
w przypadku młodzieży mającej w programie nauczania podstawy informatyki,
nauka posługiwania się komputerem wciąż stanowi nowość i zdaje się być polem
do niezbyt przemyślanych eksperymentów. Nauczyciele niedostatecznie
przygotowani zarówno merytorycznie, jak i od strony metodyki nauczania nie są,
niestety, rzadkością. Młodzi ludzie, nawet bardzo intensywnie korzystający
z komputera, wykorzystują raczej jego funkcje „rozrywkowe”, zdecydowanie
zaniedbując uważane za nudne i nieatrakcyjne oprogramowanie będące
w powszechnym użyciu np. w przedsiębiorstwach. Trudno więc uznać za
dostateczną rekomendację fakt „zaliczenia” szkolnego programu informatyki.
Tezę tę potwierdzają obserwacje Centrum Doradczo-Szkoleniowego Instytutu
Maszyn Matematycznych [1], [2], które od kilkunastu lat prowadzi szkolenia
komputerowe na wszystkich poziomach zaawansowania i pozostaje w bieżącym
kontakcie z instytucjami i firmami kierującymi swoich pracowników na szkolenia,
urzędami pracy itp. Bardzo często zdarza się na przykład, że poziom wiedzy osób
14
zgłaszających się na kursy dla zaawansowanych wymusza taką modyfikację
programu zajęć, że faktycznie realizowanych jest wiele elementów programu
kursu podstawowego, przy czym – trzeba przyznać – często nauka przebiega
stosunkowo sprawnie ze względu na ogólną znajomość interfejsu graficznego.
Zdecydowana większość osób pytanych o umiejętność posługiwania się
oprogramowaniem biurowym bez wahania deklaruje znajomość edytora. Niestety,
w praktyce różnie bywa.
Przykład: zajęcia w IMM dla przyszłych przedsiębiorców, osób młodych,
przebojowych, dynamicznych, kreatywnych, w ramach projektu pilotowanego
przez jedną z warszawskich placówek samorządowych. Oczywiście wszyscy
deklarują dobrą znajomość edytora. Prowadzący zajęcia prosi o wykonanie
ćwiczenia, aby dostosować stopień zaawansowania kursu do potrzeb słuchaczy.
Test jest elementarny, sprawdza umiejętność posługiwania się podstawowymi
funkcjami edytora: atrybutami znaków, wcięciami, czterema rodzajami tabulacji,
wymaga złożenia prostej tabeli, ustalenia konkretnych parametrów strony.
Żadnych niuansów, pułapek. Testowi poddano kilka grup szkoleniowych – nie
zaliczył go nikt (były osoby, które radziły sobie trochę lepiej niż inne, ale nie
zmienia to ogólnej oceny). Przypomnijmy, uczestnicy testu to osoby uczące się
korzystać z komputera „od przedszkola”.
Inny przykład. Kurs dla (zaawansowanych) pracowników jednej z instytucji
centralnych, zajęcia obejmują konkretne, uzgodnione wcześniej tematy. Specyfika
pracy w instytucji to przede wszystkim praca z długimi dokumentami. Często
wymagana jest modyfikacja wcześniej (czasami dużo wcześniej) utworzonych
dokumentów tekstowych, przy czym modyfikacji dokonują niekoniecznie twórcy
poprzednich wersji dokumentów. Tymczasem nawet drobne, lokalne próby
ingerencji w treść merytoryczną lub szatę typograficzną tekstu powodują
niekontrolowane i wysoce niepożądane skutki dla – zdawałoby się – partii tekstu,
które z dokonanymi właśnie poprawkami maja niewiele wspólnego. Powód –
niewłaściwe przygotowanie dokumentów przez autorów i/lub brak dostatecznych
umiejętności po stronie osób dokonujących modyfikacji. Audytorium stanowili
pracownicy mający za sobą realizację szkolnych i uczelnianych programów
informatyki (młodsi) oraz specjalistyczne kursy (starsi).
Problemy z procesorami tekstu miewają też np. informatycy i jest to tylko
pozorny paradoks. Na studiach informatycznych w renomowanych uczelniach nie
uczy się korzystania z powszechnie stosowanych pakietów oprogramowania; po
prostu nie ma na to czasu. Zresztą zakłada się – i słusznie – że młody człowiek
podejmujący studia potrafi posługiwać się popularnymi programami
w odpowiednim stopniu. W praktyce bywa różnie. Zdaje się funkcjonować
obiegowa opinia, że na naukę funkcji procesora tekstu szkoda czasu, że tekst
„jakoś się napisze”. Powyższe uwagi nie dotyczą studentów (najczęściej
kierunków ścisłych) używających np. systemu TeX. Opanowanie go wymaga dość
gruntownego zapoznania się z podstawami przetwarzania tekstu, znacznie
wykraczającymi poza zasób wiedzy nawet dość zaawansowanego użytkownika
edytora, a sprawne posługiwanie się TeX’em – pewnej „kultury matematycznej”
(czy informatycznej).
15
Należy pamiętać, że podręcznik zawierający wyczerpujący opis współczesnego
edytora liczy zwykle ponad tysiąc stron. Rzecz jasna wykorzystuje się w praktyce,
powiedzmy, 30% możliwości, ale to też materiał obejmujący kilkaset stron. Jak
często użytkownicy programu zadają sobie trud, aby w sposób systematyczny ten
materiał opanować? Nie wszystkie funkcje działają w sposób intuicyjny i nie
wszystkie można poznać stosując – skrajnie nieefektywną – metodę prób i błędów.
Korzystanie z procesora tekstu wymaga również pewnej dodatkowej wiedzy
obejmującej podstawy typografii. Nie wystarczy więc umieć formułować zdania
poprawne
pod
względem
logicznym,
stylistycznym,
gramatycznym
i ortograficznym; należy zadbać również o odpowiednią formę składu. Niestety,
trudno o literaturę z tego zakresu. Zresztą problem literatury jest szerszy i dotyczy
nawet podręczników opisujących konkretne edytory. Są to przekłady
pozostawiających wiele do życzenia pod względem merytorycznym
i metodycznym podręczników, bądź nawet zupełnie nieźle napisane, ale bardzo
elementarne podręczniki rodzimych autorów.
Niniejszy tekst nie ma na celu dokładnej diagnozy stanu edukacji
informatycznej nawet jedynie w zakresie przetwarzania tekstów. To temat do
gruntownych, interdyscyplinarnych badań (wstępna, nieprecyzyjna diagnoza
została powyżej nakreślona). Mówiąc zresztą o poziomie edukacji informatycznej
i potrzebach związanych z uzupełnieniem wiedzy nie sposób abstrahować od
poziomu edukacji w ogóle, a także o problemach związanych z samooceną. Jakże
często mamy do czynienia np. z sytuacją, gdy adept kursu językowego na
poziomie elementarnym, potrafiący powiedzieć w obcym języku niewiele więcej
niż „dzień dobry” i „do widzenia” na dodatek z osobliwym akcentem, deklaruje
dobrą znajomość języka obcego „w mowie i w piśmie”.
Stopień ogólności rozważań zawartych w dalszej części pozwala w dużej
mierze abstrahować od konkretnego edytora, chociaż w konkretnych sytuacjach
odwołujemy się do najpopularniejszych narzędzi: edytora Word [3] (element
pakietu MS Office) i Writer. Ten ostatni jest elementem pakietu OpenOffice [4],
darmowego oprogramowania typu open source funkcjonującego w oparciu
o licencję GNU, zdobywającego coraz więcej zwolenników.
Edytor – minimum edukacyjne
Wspomnieliśmy już, że pełny opis współczesnego edytora to bardzo obszerny
podręcznik. Z wielu powodów studiowanie takiego podręcznika od początku do
końca nie ma większego sensu (chociażby dlatego, że przeciętny użytkownik
korzysta z licznych funkcji bardzo rzadko lub w ogóle ich nie używa). Zasadnym
staje się więc pytanie o minimum edukacyjne. Chodzi o to, aby poznać
elementarne pojęcia związane z przetwarzaniem tekstu, specyfikę działania
programu oraz jego podstawowe funkcje. Oczywiście, przed rozpoczęciem pracy
z programem niezbędne jest poznanie, choćby bardzo pobieżne, środowiska pracy
programu, interfejsu graficznego itp.
W ramach podstaw przetwarzania tekstu warto zapoznać się z następującymi
tematami:
1) rodzaje procesorów tekstu, ich specyfika i obszar zastosowań,
2) pojęcia: kroju, stopnia pisma, punktu typograficznego, czcionki, akapitu,
16
3)
4)
5)
grafika wektorowa i mapy bitowe,
rodzaje urządzeń drukujących,
drukowanie do pliku.
W razie konieczności można zredukować te informacje do minimum
(w żadnym razie nie można pominąć pojęć z p. 2), ale ważna jest jednak pewna
elementarna znajomość kontekstu.
Bardzo ważne jest „oswojenie się” z oknem zadania i oknami dokumentów,
prostymi funkcjami konfiguracyjnymi związanymi z oknami, paskami narzędzi
itp., aby zyskać pewną swobodę poruszania się w środowisku edytora.
Warto pamiętać (trudno znaleźć w literaturze taką informację), że akapit jest
sekwencją znaków:
• zawartych między dwoma sąsiednimi znakami specjalnymi ¶
(pierwszy znak ¶ nie wlicza się do akapitu, drugi wlicza się)
albo
• zawartych między pierwszym znakiem tekstu a pierwszym znakiem
specjalnym ¶ (oba znaki graniczne wliczają się do akapitu).
Znaki specjalne ¶ zwane są znakami końca akapitu lub znacznikami akapitu.
Wśród funkcji edytora, szczególną uwagę należy skierować na te, które
dotyczą typografii akapitu. Jest to podstawowy element konstrukcji tekstu
i umiejętność swobodnego operowania funkcjami mającymi wpływ na kształt
akapitu jest warunkiem koniecznym posługiwania się edytorem.
Bardzo ważne jest opanowanie czterech rodzajów tabulacji oraz umiejętności
korzystania z linijki w celu modyfikacji akapitu. W konsekwencji należy zapoznać
się z metodami stosowania wypunktowanych i numerowanych akapitów, w tym
numeracją wielopoziomową.
Zdecydowanie trzeba podkreślić wagę umiejętności wprowadzenia
automatycznego i ręcznego dzielenia wyrazów i rozumienia roli strefy dzielenia.
Ponieważ opisy tych zagadnień w najpopularniejszych podręcznikach są dalece
niewystarczające poświęcimy temu nieco uwagi.
Dzielenie wyrazów wprowadza się najczęściej w przypadku krótkich formatów
i długich wyrazów. Profesjonalnie złożony tekst zazwyczaj zawiera wyrazy
podzielone na sylaby przy przenoszeniu do następnego wiersza. Chodzi o to, aby
zachować podobną długość wierszy (przy wyrównywaniu akapitu do lewej
i prawej) lub uniknąć zbyt dużych odstępów międzywyrazowych (przy
justowaniu). Poniższy przykład ilustruje typową sytuację. Zaznaczono na nim
strefę dzielenia wyrazów. Wynosi ona 0,75 cm.
17
Strefa
dzielenia
wyrazów
Włączenie dzielenia wyrazów spowoduje, że wszystkie wiersze będą kończyć
się w obrębie strefy. Ilustruje to następny przykład.
Strefa
dzielenia
wyrazów
W przypadku akapitu wyjustowanego, wielkość strefy dzielenia wyrazów ma
związek z wyliczonym przez program odstępem międzywyrazowym. Zależność tę
można wyrazić w następujący sposób:
s ∈ [σ , σ +
18
Sp
n
]
Oznaczenia:
S odstęp międzywyrazowy
σ odstęp standardowy
Sp strefa dzielenia wyrazów
N liczba spacji w wierszu
Nietrudno zauważyć, że zmniejszając strefę dzielenia wymuszamy częstsze
dzielenie wyrazów.
Aby posługiwać się edytorem należy poznać również – to oczywiste – zupełnie
elementarne operacje na znakach, umieć otworzyć i zapisać plik i wiele innych.
Powyższe uwagi mają jedynie podkreślić fakt, że bez znajomości podstawowych
operacji na akapicie, w tym czterech rodzajów tabulacji, rozumienia roli tabulacji
i wcięć oraz funkcji dzielenia wyrazów, nie ma mowy nawet o podstawowej
znajomości edytora. Znajomość funkcji związanych z formatowaniem akapitu ma
jeszcze jeden walor. Są one bardzo charakterystyczne dla specyfiki działania
całego edytora.
Efektywność w pracy nad tekstem
Znajomość podstawowych funkcji programu umożliwia posługiwanie się
edytorem, jednak efektywne posługiwanie się narzędziem wymaga dodatkowych
umiejętności i zachowania pewnych zasad. Chodzi przede wszystkim o to, aby był
on złożony szybko i w sposób umożliwiający – w razie potrzeby – łatwą
modyfikację.
Efektywność rozumiemy jako:
•
zdolność osiągnięcia zamierzonego celu,
•
umiejętne używanie narzędzi,
•
redagowanie tekstu w sposób umożliwiający łatwą modyfikację treści
merytorycznej i formy składu,
•
znajomość podstawowych metod przyspieszających wykonywanie
pracochłonnych operacji.
Zdolność osiągnięcia zamierzonego celu sprowadza się do znajomości edytora
w stopniu umożliwiającym uzyskanie założonego efektu. Jest rzeczą
niedopuszczalną, aby użytkownik edytora rezygnował np. z fragmentów tekstu
umieszczanego w tabeli tylko dlatego, że nie potrafi dostosować tabeli do
materiału, który ma się w niej znaleźć. Często zdarzają się usterki typograficzne
w nagłówkach pism wynikające z braku umiejętności użycia tabulatora
wyrównującego do prawej strony w odniesieniu do tekstu typu „<nazwa miasta>,
dn. <data>”.
Umiejętne używanie narzędzi wynika częściowo z zakładanej znajomości
podstawowych funkcji programu. Jednak tu chodzi o coś więcej: jeśli można
uzyskać dany efekt stosując więcej niż jedną metodę, należy wybrać tę właściwą.
Na przykład (częste w przypadku druków akcydensowych), użytkownik powinien
umieć ocenić, czy w konkretnym przypadku zastosować skład wielokolumnowy,
czy raczej odpowiednio sformatowane pola tekstowe.
Redagowanie tekstu w sposób umożliwiający łatwą modyfikację wiąże się
z umiejętnym używaniem narzędzi. Przystępując do składania tekstu – zwłaszcza
19
w przypadku długich dokumentów – należy starannie zaplanować formę składu
i odpowiedzieć na szereg pytań. Oto ważniejsze z nich:
•
•
•
•
•
jaki ma być układ strony (rozmiar papieru, orientacja, marginesy),
czy będzie to skład jedno-, wielokolumnowy, czy mieszany,
czy będą wykorzystywane szablony i style,
czy wystąpi podział na sekcje,
czy będzie generowany automatyczny spis treści, podpisy pod
rysunkami itp.
Użytkownik edytora powinien mieć świadomość kłopotów przy zamianie np.
składu jedno- na wielokolumnowy w przypadku planowanych dla składu
jednokolumnowego wcięć i tabulacji. Konsekwencje wynikające z konwersji są
często dość nieprzyjemne.
Wpływ znajomości metod przyspieszających i ułatwiających wykonywanie
pracochłonnych operacji na efektywność pracy nad tekstem jest oczywisty.
Repertuar funkcji, które ma do dyspozycji użytkownik współczesnego edytora jest
ogromny:
• szybkie metody zaznaczania bloków tekstu,
• autotekst,
• malarz formatów,
• style,
• szablony,
• makra
i wiele innych, nie licząc wyspecjalizowanych funkcji np. ułatwiających pracę
z długimi dokumentami, operacje na tabelach itp. Dość szczególne miejsce
zajmują operacje typu szukaj-zamień. Praktyka szkoleniowa dowodzi, że
większość użytkowników mających nawet dość spore doświadczenie nie wie
o tym, że możliwe jest wyszukiwanie frazy o zadanej typografii lub tylko
określonych form typograficznych, np. akapitów o określonym wcięciu
pierwszego
wiersza.
Stosowanie
prostych
funkcji
ułatwiających
i przyspieszających wykonywanie żmudnych operacji, typu autotekst czy malarz
formatów, zależy w dużej mierze od indywidualnych upodobań użytkownika.
Bardzo ważna jest w tym kontekście możliwość konfigurowania pasków narzędzi.
Autor tego tekstu nie wyobraża sobie pracy z edytorem bez zainstalowania
przycisku odpowiadającego funkcji „powtórz operację”.
Podsumowanie i wnioski
Przeprowadzona na wstępie analiza stanu edukacji informatycznej dotyczy
obserwacji Centrum Doradczo-Szkoleniowego IMM. Biorąc pod uwagę
wieloletnią działalność i liczbę przeszkolonych osób, z dużym
prawdopodobieństwem należy stwierdzić, że pozaszkolna edukacja informatyczna
ma jeszcze sporą rolę do odegrania.
Poziom zaawansowania użytkownika edytora nie powinien być mierzony
ilością opanowanych funkcji, ale stopniem opanowania i zrozumienia
elementarnych mechanizmów i operacji na tekście (i ew. grafice) oferowanych
przez program. Cóż z tego, że ktoś zna i pamięta procedurę tworzenia
20
korespondencji seryjnej, jeśli nie potrafi poprawnie złożyć dokumentu głównego,
będącego np. listem składającym się z kilku prostych akapitów.
W tym celu wprowadziliśmy pojęcie minimum edukacyjnego, które jest dość
selektywnym kryterium stopnia opanowania edytora. Należy jednak pamiętać, że
owo minimum należy rozumieć jedynie jako warunek konieczny. Trzeba też
pamiętać, że ważna jest również znajomości menu, okien dialogowych itp., czyli
po prostu swoboda poruszania się w środowisku.
Pożądaną odpowiedzią na pytanie o znajomość procesora tekstu jest: „znam
w takim stopniu, w jakim mi to jest potrzebne”. Taka odpowiedź powinna
oznaczać dobrą znajomość podstaw, w tym minimum edukacyjnego, oraz
deklarację, że jeśli zajdzie potrzeba adept sięgnie do literatury i ze zrozumieniem
przeczyta opis potrzebnej funkcji.
Literatura
[1]
Kuroczycki T., Nauczanie baz danych – doświadczenia szkoleniowe
Instytutu Maszyn Matematycznych. Techniki Komputerowe. Biuletyn
Informacyjny, 1, 2008.
[2]
Łysoń, K., Arkusze kalkulacyjne – doświadczenia szkoleniowe Instytutu
Maszyn
Matematycznych.
Techniki
Komputerowe.
Biuletyn
Informacyjny, 1, 2008.
[3]
Mansfield R., Word 97 od podstaw do mistrzostwa (Pl+En). Wyd. Help,
Warszawa, 1997.
[4]
Dziewoński M., OpenOffice 2.0 PL. Oficjalny podręcznik. Wyd. Helion,
Warszawa, 2005.
21
Krzysztof Łysoń
Instytut Maszyn Matematycznych
Arkusze kalkulacyjne – doświadczenia szkoleniowe
Instytutu Maszyn Matematycznych
Spreadsheets – educational experiences
of the Institute of Mathematical Machines
Streszczenie
Celem artykułu jest przedstawienie doświadczeń szkoleniowych Centrum Doradczo
Szkoleniowego IMM (d. Ośrodka Badawczo-Szkoleniowego IMM) w dziedzinie nauczania
arkuszy kalkulacyjnych, oraz ukazanie perspektyw tego szkolenia w przyszłości.
Abstract
The aim of the article is to present educational experience of the Institute of
Mathematical Machines in spreadsheets teaching. Forecasts are also discussed.
1. Rys Historyczny
Początki nauczania arkuszy kalkulacyjnych w Instytucie Maszyn
Matematycznych sięgają przełomu lat osiemdziesiątych i dziewięćdziesiątych XX
w. i związane są z nauczaniem popularnego w środowisku MS-DOS (dla
komputerów klasy IBM PC) arkusza kalkulacyjnego Multiplan, oraz jego
polskiego odpowiednika – Multoplanu [1].
Pojawienie się środowiska graficznego (GUI) to nowa klasa pakietów,
przeznaczonych do pracy w tym środowisku. W początkowym okresie wiodącym
pakietem w dziedzinie arkuszy kalkulacyjnych okazał się Lotus 1-2-3, jednakże
dalszy rozwój środowiska graficznego to coraz większa rola pakietu biurowego
MS-Office. Wchodzący w skład pakietu MS-Office arkusz kalkulacyjny MS-Excel
stopniowo wypierał pakiet Lotus 1-2-3, aż ostatecznie zdominował rynek arkuszy
kalkulacyjnych w Polsce.
Obecnie pakiet MS-Excel nadal stanowi dominujący produkt w dziedzinie
biurowych arkuszy kalkulacyjnych, a jego ewolucja i rozwój wiąże się
nierozłącznie z ewolucją i rozwojem środowiska MS-Windows, powiązaną
z nieustannym (i niekiedy wręcz lawinowym) rozwojem sprzętu komputerowego.
Można to prześledzić na przykładzie kolejnych wersji MS-Excel – poczynając od
wersji Excel 4.0 i 5.0 (współpracujących ze środowiskiem MS-Windows 3.1/3.11),
poprzez wersje przeznaczone do pracy w środowisku Windows 95/98/Me (Excel
7.0/95, Excel 97 i Excel 2000), na wersjach przeznaczonych do pracy
w środowisku MS-Windows XP/Vista kończąc (Excel XP/2002, Excel 2003,
Excel 2007).
W związku z faktem, że pakiet MS-Excel jest produktem dominującym na
rynku arkuszy kalkulacyjnych i zdecydowana większość słuchaczy nim się
posługuje (lub będzie posługiwać), jest on podstawowym arkuszem kalkulacyjnym
nauczanym w naszym Centrum.
22
2. Profile kursów
2.1. Profil podstawowy
Dominujący profil, zwłaszcza w początkowym okresie działalności
szkoleniowej, stanowił profil podstawowy. Kurs ten przeznaczony był dla
kalkulacyjnym. Odwoływał się jednakże do ogólnej znajomości systemu MSWindows, oraz do pewnych (podstawowych) elementów pakietu słuchaczy, którzy
nie mieli żadnych doświadczeń ani kontaktu z arkuszem MS-Word. Założenie
takie było tym bardziej uzasadnione, że moduł MS-Excel wchodził w skład
szerszego pakietu szkoleniowego (obecnie pod nazwą „Komputer w biurze”),
obejmującego m.in. podstawy MS-Windows i podstawy MS-Word (moduły te
poprzedzały wtedy zajęcia z arkuszy kalkulacyjnych). Pozwalało to odwoływać
się, podczas prowadzonych zajęć, do już opanowanych podstawowych technik
edycyjnych
oraz
metod
otwierania
i
zapisu
gotowych
plików
(arkuszy/skoroszytów). Po opanowaniu programu modułu podstawowego
zakładano, że słuchacz będzie w stanie samodzielnie wykonywać w MS-Excel
podstawowe operacje związane z arkuszem kalkulacyjnym (takie jak efektywne
wypełnianie komórek arkusza, ich edycja i formatowanie, operacje arytmetyczne i
korzystanie z podstawowych funkcji wbudowanych, wstawianie wykresów itp.)
[2], [3].
Standardowy wymiar każdego modułu (MS-Windows, MS-Word, MS-Excel
itd.) wynosił 12-15 godzin lekcyjnych. Zajęcia prowadzono w blokach 3-4
godzinnych (w zależności od pory dnia).
2.2. Profil zaawansowany
Kolejnym profilem kursów był profil zaawansowany (czy też raczej
średniozaawansowany). Nazwa tej edycji kursów ewoluowała, jednakże na ogół
kursy te anonsowane były pod nazwą: „MS-Excel – zadania zaawansowane”.
Moduł ten zakładał znajomość arkusza kalkulacyjnego na poziomie podstawowym
(tzn. na poziomie „absolwenta” kursu podstawowego). Zajęcia odbywały się
w blokach 3 godzinnych, a całkowity wymiar kursu wahał się w granicach 12-18
godzin lekcyjnych.
Po opanowaniu programu modułu zaawansowanego zakładano, że słuchacz
będzie w stanie swobodnie pracować z arkuszem kalkulacyjnym MS-Excel
w zakresie przydatnym większości jego użytkowników (a więc m.in. biegła
znajomość formatowania komórek i całego arkusza, korzystanie z funkcji
wbudowanych, sposoby adresacji komórek, zabezpieczanie arkusza i skoroszytu,
modyfikowanie i formatowanie wykresów, sortowanie i filtrowanie danych,
zasady pracy z arkuszami powiązanymi, rejestrowanie i wykorzystanie prostych
makropoleceń).
W przypadku omawianego wyżej kursu, zakres nabytych umiejętności zależał
nie tylko od jego wymiaru godzinowego, ale też od początkowych umiejętności
grupy słuchaczy. Ponieważ nabór nie był tu poprzedzony sprawdzianem, a tylko
informacją o konieczności znajomości arkusza MS-Excel na poziomie
podstawowym, umiejętności słuchaczy często były mocno zróżnicowane
i praktycznie w każdej grupie inne. W związku z powyższym, początkowy element
zajęć („przypomnienie i uporządkowanie wiadomości podstawowych”) wymagał
niejednokrotnie znacznego rozciągnięcia w czasie (nawet powyżej 3 godzin).
23
Warto tu zauważyć, że w przypadku osób mających podstawowe braki można
wyróżnić dwie grupy:
– osoby, które miały pewien kontakt z arkuszem MS-Excel i w związku z tym
uważające, że są już biegłe w arkuszach kalkulacyjnych (a w rzeczywistości
kwalifikujące się na kurs podstawowy)
– osoby pracujące z MS-Excel i wykonujące często zaawansowane operacje, ale
mające pewne elementarne braki wynikające na ogół z faktu, że nabywały wiedzę
samodzielnie w miarę wynikających potrzeb (a więc nie przeszły systematycznego
kursu podstawowego).
Jednocześnie zdarzały się też osoby (a sporadycznie całe grupy), o znacznej
biegłości, zgłaszające potrzeby niekiedy wychodzące poza ramy programu kursu.
W miarę możliwości czasowych (jeżeli poziom całej grupy na to pozwalał) starano
się te potrzeby uwzględniać. W szczególnych przypadkach mogło się to także
wiązać z pewną modyfikacją programu samego kursu (np. wprowadzenie tabel
przestawnych kosztem ograniczenia zagadnień związanych z rejestracją
i wykorzystywaniem makropoleceń).
2.3. Makropolecenia
Trzeci, kolejny moduł kursów dotyczących arkuszy kalkulacyjnych, został
wprowadzony do oferty szkoleniowej w odpowiedzi na zapytania słuchaczy o ew.
dalszy etap szkolenia. Anonsowany jest on pod nazwą: „MS Excel –
makropolecenia”.
Makropolecenia dają możliwość poszerzania zestawu dostępnych operacji
o całkiem nowe, dostosowane do specyficznych potrzeb użytkownika. Stosowanie
makropoleceń pozwala też zautomatyzować pracę. Podczas kursu słuchacze
poznają sposoby rejestrowania i odtwarzania makropoleceń, tworzenie własnych
przycisków i przypisywania do nich makropoleceń, a także podstawy języka
Visual Basic for Applications, dzięki któremu można tworzyć bardziej
zaawansowane makropolecenia. Kurs ten przeznaczony jest dla użytkownika MSExcel, chcącego poszerzyć swoje umiejętności w tej dziedzinie – nie jest to
natomiast kurs programowania!
Zajęcia prowadzone były w blokach 3 godzinnych, a całkowity wymiar kursu
wahał się w granicach 15-18 godzin lekcyjnych.
2.4. Szkolenia niestandardowe
Oprócz standardowych kursów stacjonarnych w siedzibie Instytutu,
prowadzono też kursy specjalizowane na zamówienie klienta (zarówno w siedzibie
IMM jak i u klienta). Na ogół były to kursy o profilu podstawowym lub
mieszanym (elementy kursu podstawowego i średniozaawansowanego), jednakże
prowadzono też kursy o profilu zaawansowanym. Program (i wymiar godzinowy)
tych kursów był ustalany każdorazowo w porozumieniu z klientem (i niekiedy
znacząco wykraczał poza zakres proponowanych przez nas zagadnień).
Specyficzną grupę szkoleń stanowiły wystąpienia (poświęcone wybranym
zagadnieniom) dla szerszego audytorium (np. sala kinowa), prowadzone
w siedzibie klienta. Miały one na celu zapoznanie słuchaczy z wybranymi
zagadnieniami z zakresu informatyki użytkowej (np. składanie tekstu, arkusze
kalkulacyjne, bazy danych, podpis elektroniczny, itd). Wystąpienie takie (trwające
24
2 godziny zegarowe) polegało na przedstawieniu wybranego zagadnienia
w postaci pokazu programu, przeplatanego prezentacją slajdów, a następnie
udzielaniu odpowiedzi na pytania audytorium.
Przykładowo, tegoroczne wystąpienia dotyczące zagadnień powiązanych
z arkuszami kalkulacyjnym, nosiły następujące tytuły:
„Arkusze kalkulacyjne (MS-Excel) – Wykresy i grafika”
„Arkusze kalkulacyjne (MS-Excel) – Formuły i funkcje wbudowane”
„Jak to zrobić w OpenOffice – Arkusz kalkulacyjny”
3. Kursy ECDL
Oddzielną grupę szkoleń stanowią szkolenia ECDL (European Computer
Driving Licence) [4]. ECDL (Europejski Certyfikat Umiejętności
Komputerowych) to międzynarodowy projekt Stowarzyszenia Europejskich
Profesjonalnych Towarzystw Informatycznych (Council of European Professional
Informatics Societes – CEPIS). Idea ECDL polega na wydaniu jednolitego w skali
kraju certyfikatu zaświadczającego, że jego posiadacz ma podstawowe
umiejętności w zakresie obsługi komputera i potrafi je efektywnie wykorzystać w
codziennej pracy. W Polsce egzaminy ECDL przeprowadzane są pod nadzorem
Polskiego Towarzystwa Informatycznego – certyfikat wydawany przez PTI jest
zgodny z europejskimi standardami i honorowany w całej Unii Europejskiej.
Jednym z elementów składowych certyfikatu ECDL jest moduł M4
obejmujący znajomość arkuszy kalkulacyjnych. Nie jest tu określona konkretna
aplikacja – użytkownik ma się wykazać znajomością dowolnego z arkuszy (więc
może to być zarówno MS-Excel, jak i Lotus 1-2-3, OpenOffice Calc, itd.), a rolą
PTI jest zapewnienie egzaminatora, który będzie w stanie sprawdzić umiejętności
na przykładzie konkretnej aplikacji. Jednakże w praktyce, zarówno materiały
pomocnicze dostępne na rynku, jak i standardowe zestawy egzaminacyjne PTI,
bazują na podstawowej aplikacji do arkuszy kalkulacyjnych, jaka jest w Polsce
MS-Excel. W związku z tym oferujemy kursy przygotowujące do certyfikatu
ECDL, w oparciu o znajomość pakietu MS-Office (w tym także moduł M4 –
Arkusze kalkulacyjne w oparciu o znajomość MS-Excel).
3.1.Warianty szkoleń ECDL
W praktyce szkolenie ECDL przebiegało w kilku wariantach:
• Oferta kompleksowa (obejmująca zestaw wszystkich modułów ECDL)
• Pojedyncze moduły ECDL (od M1 do M7)
• Oferta na zamówienie klienta (Urząd Dzielnicy, Urząd Pracy itd.)
Wymiar godzinowy modułu M4 zależał od zakładanego poziomu
zaawansowania uczestników, oraz wielkości grupy (10-12, maksymalnie 15 osób)
i wahał się w granicach od 18 do 32 godzin szkoleniowych. Oferta kompleksowa
zakładała, że słuchacze (posiadający już pewna wiedzę i umiejętności) uczestniczą
w szkoleniu moduł po module, w kolejności jaką założyło PTI (tzn. od modułu M1
do M7). W przypadku modułu M4 (Arkusze kalkulacyjne) pozwalało to założyć,
że uczestnicy są już zaznajomieni z podstawami technik komputerowych (moduły
M1 i M2), oraz że posiadają już biegłość w zakresie technik edycyjnych (moduł
M3). W oparciu o to założenie można było zredukować liczbę godzin
szkoleniowych przeznaczonych na ten moduł (18-22 godzin szkoleniowych).
25
Szkoleniem kompleksowym zainteresowane były zwłaszcza osoby, pragnące w
krótkim czasie uzyskać certyfikat ECDL (na potrzeby obecnej pracy czy też
zbliżającego się wyjazdu zagranicznego).
Szkolenie w ramach pojedynczych modułów ECDL zakładało, że w kursie
udział biorą osoby pracujące już z daną aplikacją, a chcące jedynie powtórzyć
i poszerzyć swoją wiedzę, potwierdzając ją zdaniem egzaminu z danego modułu.
Trudno w tym wypadku zakładać kompleksową wiedzę w zakresie modułów M1,
M2 i M3 (egzaminy ECDL można bowiem zdawać w dowolnej kolejności, w
okresie 3 lat). Można jednakże założyć elementarna wiedzę uczestników w
zakresie w/w modułów, oraz posiadanie już pewnej znajomości arkusza MS-Excel.
Liczba godzin szkoleniowych przeznaczonych na ten moduł w tej wersji wynosiła
20-24 godziny szkoleniowe.
Oferta na zamówienie klienta obejmowała w większości przypadków szkolenie
kompleksowe ze wszystkich modułów. Pierwszy wariant stanowią tu szkolenia dla
uczestników korzystających już z komputera (np. urzędy, firmy). W zależności od
poziomu zaawansowania proponowany wymiar szkoleniowy modułu M4 wynosił
w tym wypadku 18-24 godzin szkoleniowych. Drugi wariant obejmuje szkolenia
dla osób, które kontaktu z komputerem nie miały, lub do tego się nie przyznają
(zadeklarowały brak biegłości w tej dziedzinie). Dotyczy to np. szkolenia dla biur
czy urzędów pracy, oraz różnego rodzaju fundacji zajmujących się aktywizacja
zawodową. W tym wypadku wymiar szkoleniowy modułu M4 wynosił 26-32
godzin szkoleniowych.
Oddzielną grupę stanowią tu szkolenia na zamówienie klienta, obejmujące
tylko wybrane moduły ECDL. Dotyczy to osób, które w firmie posługują się już
dana aplikacją, a ich pracodawca chce mieć pewność uzyskania przez te osoby
wiedzy na określonym poziomie (wyznaczanym przez kryteria egzaminu ECDL).
W zależności od zamówienia szkolenie kończyło się bądź obowiązkowym
egzaminem ECDL, lub też opcjonalną możliwością potwierdzenia zdobytych
umiejętności poprzez zdawanie tego egzaminu.
Kolejnym etapem było wzbogacenie oferty szkoleniowej o poziom
zaawansowany ECDL [5]. Poziom ten przeznaczony jest dla osób, które posiadają
już ugruntowaną wiedzę na poziomie certyfikatu ECDL (certyfikat ten obejmuję
wiedzę podstawową z wszystkich 7 modułów) i chcą rozszerzyć swoje
umiejętności w dziedzinie konkretnej aplikacji. W przypadku ECDL Advanced
certyfikaty wydawane są oddzielnie dla każdego z 4 modułów:
• Przetwarzanie tekstu, poziom zaawansowany (AM3)
• Arkusze kalkulacyjne, poziom zaawansowany (AM4)
• Bazy danych, poziom zaawansowany (AM5)
• Grafika menedżerska i prezentacyjna, poziom zaawansowany (AM6)
Egzaminy ECDL Advanced zdawane są niezależnie od siebie, a przystąpienie
do egzaminu nie wymaga posiadania Certyfikatu ECDL. Po zdaniu każdego
egzaminu wydawany jest oddzielny Certyfikat ECDL-A z określonego modułu –
zakresu. Osoba, która skompletuje 4 Certyfikaty ECDL-A w okresie nie dłuższym
niż 3 lata może otrzymać Certyfikat ECDL Ekspert (certyfikat w formie karty
plastikowej ze zdjęciem).
Określenie wymiaru godzin szkoleniowych dla tego typu kursu okazało się
przedsięwzięciem dość trudnym i obarczonym dużym ryzykiem. Wprawdzie do
zdawania egzaminu nie jest wymagane posiadanie certyfikatu ECDL, ale
26
poczyniono takie założenie. Było ono tym bardziej uprawnione, że słuchacze
pilotowego szkolenia z modułu AM4 taki certyfikat posiadali. W związku z tym
wymiar godzinowy szkolenia dotyczącego modułu AM4 określono na 30 godzin
lekcyjnych.
Niestety, pomimo posiadania przez słuchaczy certyfikatu ECDL okazało się, że
wiedza większości z nich w zakresie pakietu MS-Excel jest niewystarczająca do
efektywnego szkolenia zaawansowanego. Konieczne okazało się powtarzanie
(i uzupełnianie) materiału z zakresu modułu M4, co znacznie ograniczyło czas
nauczania materiału wchodzącego w skład modułu AM4. Wydaje się, że w takim
wypadku należy przeznaczyć na realizacje pełnego programu nawet do 40 godzin
lekcyjnych.
Z powyższego przypadku jasno wynika, że zakładanie a’priori, że słuchacze
(nawet posiadający certyfikat ECDL) będą odpowiednio przygotowani do
intensywnego szkolenia w zakresie modułu AM4, jest ryzykowne. O ile
w przypadku innych kursów zaawansowanych (które nie kończą się certyfikatem
zewnętrznym) istnieje, dla prowadzącego zajęcia, pewne pole manewru (np.
modyfikacja programu szkolenia i dostosowanie go do potrzeb i możliwości
słuchaczy w trakcie zajęć) to w przypadku kursu o ściśle określonych kryteriach
egzaminacyjnych (jakim jest ECDL Advanced) taka możliwość nie istnieje.
W związku z tym założenie, że słuchacze prezentują rzeczywiście poziom
certyfikatu ECDL można ew. poczynić w odniesieniu do słuchaczy szkolonych
(i egzaminowanych) niedawno w Ośrodku Szkoleniowym IMM, lub do osób które
poddano „egzaminowi wstępnemu”. W pozostałych przypadkach należy liczyć się
z koniecznością uzupełniania wiedzy słuchaczy także w zakresie podstawowym
i uwzględnić to w planowanym wymiarze godzinnym modułu AM4.
4. Teraźniejszość i dalsze perspektywy
W ciągu blisko 20-letniej historii szkoleń, prowadzonych przez Ośrodek, widać
nieustanną ewolucję potrzeb słuchaczy. Wynika to nie tylko z ewolucji produktów
informatycznych, ale i ciągłego podnoszenia wiedzy informatycznej
społeczeństwa. Czasy, kiedy większość słuchaczy nie miała kontaktu
z komputerem i trzeba uczyć ich pracy od podstaw minęły bezpowrotnie.
Informatyka w szkołach i codzienne obcowanie z komputerem w wielu domach
sprawiły, że program kursów także ulegał ewolucji. Przejawia się to w coraz
mniejszym zainteresowaniu kursami podstawowymi, w tym także podstawami
MS-Excel. Coraz większego znaczenia nabierają kursy ECDL (w tym moduł M4 –
Arkusze kalkulacyjne). Pojawia się też zainteresowanie certyfikatem
zaawansowanym (moduł AM4), którego rola zapewne wzrośnie w przyszłości.
Poza tym warto zwrócić uwagę na coraz większe znaczenie niekomercyjnego
konkurenta MS-Office, czyli pakietu OpenOffice [6], gdzie funkcjonalnym
odpowiednikiem arkusza kalkulacyjnego MS-Excel jest arkusz Calc.
Wprawdzie obecnie standardowe materiały książkowe i procedury egzaminacyjne
ECDL zakładają korzystanie z MS-Office, ale w miarę zdobywania popularności
przez OpenOffice należy spodziewać się materiałów ECDL korzystających także
z OpenOffice (w tym też arkusza Calc).
Warto też zwrócić uwagę na ciągłą ewolucję wymagań dotyczących samego
programu i wymagań egzaminacyjnych ECDL (obecnie Sylabus ECDL wersja
5.0).
27
W związku z ciągłym podnoszeniem kwalifikacji słuchaczy należy spodziewać się
wzrostu zapotrzebowania na kursy o profilu bardziej zaawansowanym, bądź
ukierunkowanych na rozwiązywanie konkretnych problemów, kosztem kursów
podstawowych. Jednakże warto jednocześnie zauważyć, że wśród osób
pracujących biegle z Excelem, wiele z nich ma jednak problemy z pewnymi
czynnościami podstawowymi (lub wykonuje je w sposób mało efektywny).
Wynika to na ogół z faktu, że nabywały one umiejętności samodzielnie, lub przy
pomocy osób przypadkowych, co skutkuje chaotycznością ich wiedzy. Być może
wskazane byłoby zaproponowanie takim osobom kursu porządkującego ich
wiedzę. Jednakże problem polega na tym, że na ogół nie zdają one sobie sprawy ze
swoich braków (a więc nie widzą potrzeby takiego szkolenia) – braki te ujawniają
się dopiero np. przy okazji szkolenia na wyższym poziomie.
Kolejne możliwości szkoleń wynikają z coraz powszechniejszego dostępu do
Internetu i umiejętności posługiwania się nim. Otwiera to możliwości szkoleń
zdalnych (tzw. e-learning). Jednakże całkowite odcięcie słuchacza od
bezpośredniego kontaktu ze szkolącym (trenerem) może niejednokrotnie stanowić
pewną barierę i niedogodność (zwłaszcza w przypadku szkoleń bardziej
zaawansowanych). Sensownym wydaje się tu więc podejście mieszane, co pozwoli
zaoszczędzić słuchaczom czasu spędzanego w laboratorium (kosztem
samodzielnych ćwiczeń w wygodnym dla siebie terminie), a jednocześnie nie
pozbawi ich bezpośredniego kontaktu z trenerem.
5. Podsumowanie
Biorąc pod uwagę blisko 20-letnie doświadczenie Ośrodka w dziedzinie
organizowania szkoleń komputerowych, można pokusić się o stwierdzenie, że
pomimo ciągłego rozwoju wiedzy informatycznej społeczeństwa (m.in.
informatyka w szkołach), pozaszkolna edukacja informatyczna nadal ma pewną
rolę do odegrania, aczkolwiek niewątpliwie zmieniają się jej akcenty. Z jednej
strony potrzeby słuchaczy ewoluują w kierunku zagadnień bardziej
wyrafinowanych i zaawansowanych, z drugiej zaś mamy do czynienia z wiedzą
często wyrywkową i chaotyczną (co stwarza niejednokrotnie problemy edukacyjne
w trakcie szkolenia). W związku z tym konieczne jest stworzenie pewnego
minimum edukacyjnego, które z jednej strony zapewnia słuchaczowi podstawową
wiedzę w zakresie arkuszy kalkulacyjnych, z drugiej zaś stwarza podstawę, do
której możemy odwołać się na kursach bardziej zaawansowanych – taką podstawę
programową stanowi kurs podstawowy (w standardowym wymiarze 12 godzin
szkoleniowych). Można się oczywiście spierać, co w skład takiego minimum
programowego wchodzi ( jest to poniekąd kryterium subiektywne), ale pewne
elementy takiego programu są niepodważalne. Drugim stopniem edukacji
w dziedzinie kursów z arkuszy kalkulacyjnych powinno być rozwinięcie
umiejętności podstawowych i wzbogacenie ich o elementy, które każdemu
użytkownikowi mogą być przydatne – w naszym przypadku rolę taką spełnia kurs
„MS-Excel – zadania zaawansowane”. Na tym etapie szkolenia powstaje pytanie,
czy pozostałe zagadnienia są potrzebne większości użytkowników arkuszy
kalkulacyjnych? Otóż okazuje się, że po dojściu do pewnego etapu szkolenia
oczekiwania mogą być mocno zróżnicowane, w zależności od specyfiki
wykonywanej pracy. Z jednej strony odpowiedzią na takie zapotrzebowanie jest
kurs „MS Excel – makropolecenia”, z drugiej zaś kursy o profilu uzgadnianym
28
z klientem (w tym drugim przypadku dotyczy to szkoleń na zamówienie, a więc
większych grup słuchaczy).
Oddzielną grupę szkoleń stanowią szkolenia ECDL (moduł M4), przy czym
zakres szkolenia podstawowego ECDL nie odbiega znacząco od zakresu kursu
„MS-Excel – zadania zaawansowane” (poprzedzonego oczywiście kursem
podstawowym).
Szkolenie w zakresie ECDL Advanced (moduł AM4) dotyczy zagadnień, które
w znacznej mierze nie będą przydatne przeciętnemu użytkownikowi, może
stanowić natomiast kolejny element szkolenia dla osób, które pragną opanować
w miarę kompleksowo umiejętności posługiwania się arkuszem kalkulacyjnym
(a więc dla osób posiadających wiedze z zakresu modułu M4 lub kursu „MS-Excel
– zadania zaawansowane”).
Niezależnie jednak od poziomu zaawansowania szkolenia należy mieć
świadomość, że kursy nie nauczą słuchacza wszystkiego. Ważne jest natomiast,
aby po ukończeniu szkolenia posiadał on umiejętności, które pozwolą mu, w razie
potrzeby, sięgnąć do literatury i samodzielnie poszerzyć swoją wiedzę.
Literatura
[1]
Kuroczycki T., Nauczanie baz danych – doświadczenia szkoleniowe
Instytutu Maszyn Matematycznych. Techniki komputerowe. Biuletyn
informacyjny, 1, 2008.
[2]
Chester T., Alden R. H., Excel 97 od podstaw do mistrzostwa. Wyd.
Help, 1997.
[3]
Walkenbach J., Excel 97 – Biblia. Wyd. ReadMe, 1997
[4]
Kopertowska M., Europejski Certyfikat Umiejętności Komputerowych –
Arkusze kalkulacyjne. Wyd. Mikom, 2004.
[5]
Kopertowska M., Sikorski W., ECDL Advanced – Arkusze kalkulacyjne.
Wyd. Naukowe PWN SA, 2006.
[6]
Dziewoński M., OpenOffice 2.0 PL. Oficjalny podręcznik. Wyd. Helion,
2005.
29
Andrzej Kaczmarczyk, Marek Kacprzak, Andrzej Masłowski
Instytut Maszyn Matematycznych
Metodyka treningu wielopoziomowego operatorów
robotów1
Methodic of multi-level training of robot operators
Streszczenie
Trening wielopoziomowy ma umożliwiać efektywne co do kosztów i czasu przygotowanie
wysoko kwalifikowanych operatorów robotów dzięki użyciu tańszych urządzeń i metod
treningu do nabycia podstawowych umiejętności i bardziej złożonych do ich doskonalenia.
Przedstawiono koncepcję treningu wielopoziomowego operatorów robotów mobilnych
naziemnych, wyposażonych w kamerę TV i inne sensory oraz manipulator. Ponadto artykuł
zawiera ocenę tej koncepcji dokonaną przez polskiego producenta i użytkowników takich
robotów oraz wnioski dotyczące rozwoju metod treningu.
Abstract
Multi-level training is to enable cost and time efficient preparation of a great number of
robot operators with advanced skills thanks to use of no costly equipment and methods to
get basic expertise, and more sophisticated ones to perfect it. A concept of multi-level
training of operators of the on-earth-mobile robots equipped with TV-cameras, other
sensors, and manipulator arm is presented. Moreover, results of this concept evaluation by a
Polish manufacturer and users of such robots, and conclusions related to the development of
training methods are included in the paper.
1. Wstęp
Roboty znajdują coraz szersze zastosowanie we wszystkich dziedzinach
ludzkiej działalności i w niedalekiej przyszłości ich rozpowszechnienie oraz
wieloraka przydatność mogą osiągnąć rozmiary porównywalne do dzisiejszego
rozpowszechnienia i przydatności komputerów. Dziś jednym z obszarów
intensywnego rozwoju jest technologia i zastosowania robotów do zadań
inspekcyjno-interwencyjnych. Roboty o tym przeznaczeniu, mobilne na ziemi,
w wodzie i w powietrzu, znajdują zastosowanie do wspomagania działań
antyterrorystycznych, militarnych i ratownictwa, w systemach ochrony
nadzorowanych obszarów i granic lądowych i morskich, a także do ochrony
infrastruktury krytycznej. Rozwój technologii potrzebnych do realizacji tych
zastosowań jest istotnym składnikiem „technologii dla bezpieczeństwa” – jednego
z priorytetowych kierunków badań Krajowego Programu Badań Naukowych i Prac
Rozwojowych. Spożytkowanie wyników prac badawczych i rozwojowych, t.zn.
zastosowania robotów na szerokim polu zapewniania bezpieczeństwa przy ich
użyciu, powoduje że potrzebne będzie szkolenie, a także bieżące doszkalanie –
wynikające z szybko postępujących zmian technologii – dużej liczby operatorów
1
Praca naukowa finansowana za środków na naukę w latach 2007-2010 jako
projekt rozwojowy nr OR 00004604.
30
umiejących posługiwać się robotami, zarówno w wojsku i służbach mundurowych
jak i wśród pracowników cywilnych. Można oczekiwać, że wobec szybkiego
rozwoju robotyki i zastosowań robotów w wielu dziedzinach, problem szkolenia
osiągnie rozmiary porównywalne do szkolenia w posługiwaniu się PC-tami po ich
szerokim wprowadzeniu do użytku w latach 1980-tych. Program strategiczny
dotyczący technologii dla bezpieczeństwa powinien więc objąć rozwój metod
i urządzeń do szkolenia operatorów robotów, metod opartych na e-learningu i etreningu z wykorzystaniem komputerowego modelowania i symulacji robotów i
ich otoczenia. System szkolenia powinien umożliwiać certyfikację umiejętności
operatorskich, zapewniającą kompetencję obsługi robotów, od której zależeć
będzie – w szczególności w przypadku działań antyterrorystycznych, ratownictwa
oraz inspekcji, ochrony i remontu infrastruktury krytycznej – życie ludzi i stan
środowiska.
Artykuł niniejszy ma za przedmiot metodykę szkolenia operatorów najbardziej
dziś rozpowszechnionego typu robotów inspekcyjno-interwencyjnych, robotów
mobilnych naziemnych, wyposażonych w manipulator i zestaw sensorów, w tym
w kamerę wizyjną. Ze względu na konieczność przeszkolenia wielu operatorów,
spośród których wielu musi osiągnąć znaczną biegłość w operowaniu robotem
z racji kontaktu z materiałami toksycznymi i wybuchowymi, potrzeba wielu
godzin treningu dla wielu szkolonych. Dlatego przyjęto koncepcję treningu
wielopoziomowego, polegającego na nabywaniu podstawowych umiejętności na
tańszych urządzeniach treningowych, w dużych grupach lub bez udziału
instruktora i na używaniu kosztownych urządzeń w końcowym, doskonalącym
etapie szkolenia. Zaproponowana metodyka treningu wielopoziomowego,
uwzględniająca również certyfikację szkolonych operatorów, została poddana
ocenie ankietowej krajowych użytkowników i producenta robotów. Wyniki tej
oceny posłużyły do korekty metodyki treningu mającej na celu przystosowanie jej
do potrzeb krajowych.
2. Koncepcja metodyki treningu
Koncepcję metodyki treningu wielopoziomowego opracowano dla potrzeb
projektu badawczego rozwojowego „Platforma do projektowania i tworzenia
oprogramowania komputerowych trenażerów do robotów mobilnych inspekcyjnointerwencyjnych” (nr OR 00004604).
2.1. Cele szkolenia
Finalnym celem szkolenia jest nabycie przez operatora biegłości w operowaniu
robotem we wszystkich przewidzianych przez producenta trybach pracy, przy
wykonywaniu zadań określonych przez użytkownika. Wyróżnić można poniższe
szczegółowe cele, które będą osiągane na poszczególnych etapach szkolenia
operatora:
1) Zapoznanie się z robotem, jego interfejsem z operatorem, funkcjami i trybami
pracy;
2) Obserwacja – operowanie kamerą (i ewentualnie innymi sensorami) w celu
wykonywania zadań obserwacyjnych, interpretacja wyników; obserwacja
w warunkach zakłóceń (w tym widoczności ograniczonej np. przez zadymienie);
3) Przemieszczanie robota – „jazda” robotem
- w różnych warunkach terenowych (w tym sypki piasek, żwir, kałuże),
31
przy obserwacji bezpośredniej robota i jazda gdy operator widzi tylko
obraz z kamery wizyjnej robota,
- przy pełnym sterowaniu ręcznym i przy użyciu procedur sterowania
automatycznego (autopilota)
4) Operowanie manipulatorem robota
- wykonywanie ręczne wszystkich podstawowych ruchów/przemieszczeń
manipulatora robota nieruchomego, przy obserwacji bezpośredniej oraz
za pomocą kamery wizyjnej i innych sensorów robota
- programowanie ruchów manipulatora i praca przy sterowaniu
automatycznym
- operowanie manipulatorem w połączeniu z jazdą
5).Wykonywanie
„misji”
robota,
typowych
dla
poszczególnych
użytkowników/zastosowań,
wg. scenariuszy o coraz większym stopniu komplikacji, uwzględniających
występowanie
zakłóceń i niesprawności robota oraz limity czasu.
-
2.2. Środki nauczania
Przedstawiono środki nauczania wykorzystywane na 3 poziomach treningu
realizowanego przy użyciu trenażerów. Po zakończeniu szkolenia prowadzonego
przy użyciu tych środków, może być przeprowadzony trening
uzupełniający/sprawdzający w warunkach rzeczywistych (rzeczywisty robot,
rzeczywiste otoczenie).
Poziom 1 – trenażer zrealizowany za pomocą PC. Symulowane jest otoczenie
robota, robot oraz interfejs robota (pulpit sterowniczy). Trenażer taki może być
użyty na dwa sposoby:
1) „Klasa elektroniczna” ze stanowiskami szkolonych i stanowiskiem instruktora,
wyposażonymi w PC. Należy rozważyć zastosowanie PC z dwoma monitorami
ekranowymi (rozwiązanie stosowane w wojskowych trenażerach Marine Corps
w USA)2, jednym symulującym interfejs robota (pulpit sterowniczy i wskazania
sensorów, w tym obraz z kamery wizyjnej robota), drugim ukazującym symulację
robota w jego otoczeniu;
2) E-learning w sieci prywatnej lub publicznej (intranet lub Internet). Standardowy
PC z jednym monitorem ekranowym (w szczególności w sieci publicznej), trening
prowadzony na zasadzie podobnej do uczestnictwa w grze komputerowej, wraz
z punktacją. Bez udziału instruktora-człowieka.
Poziom 2 – rzeczywiste urządzenia interfejsu robota, symulowany robot i jego
otoczenie. Poziom symulacji, w sensie przybliżenia rzeczywistości, wyższy niż na
poziomie 1 treningu.
Poziom 3 – zastosowanie rzeczywistości rozszerzonej AR (Augmented Reality) –
rzeczywisty
robot
w
otoczeniu
rzeczywistym
z
elementami
symulowanymi/wirtualnymi; hełm używany przez szkolonego, zajęcia
z instruktorem.
2.3. Wykorzystanie środków nauczania do realizacji celów szkolenia
2
Marine Corps Systems Command. U.S. Marine Corps Program Manager for
Training Systems. Products & Services Information Handbook. November 2006
32
Koncepcję wykorzystania środków do realizacji celów nauczania ujmuje
indywidualne curriculum szkolonego operatora, które zawiera następujące etapy
szkolenia.
1) Zapoznanie się z robotem. Demonstracja rzeczywistego robota oraz wstępne
zajęcia z instruktorem w klasie elektronicznej.
2) Indywidualna nauka e-learningowa: obserwacji, jazdy, operowania
manipulatorem i wykonywania podstawowych misji. Po upływie określonego
czasu przeznaczonego na to szkolenie, szkolony powinien uzyskać określone
wyniki punktowe w rozegranych „grach” i przejść do następnego etapu treningu.
3) Zajęcia sprawdzające – i w razie potrzeby uzupełniające – w klasie
elektronicznej przy udziale instruktora. Po uzyskaniu zaliczającej oceny (liczby
punktów) ze sprawdzianu szkolony przechodzi do następnego etapu treningu. Etap
ten może być pominięty i całe szkolenie z symulacją w zakresie obserwacji, jazdy,
operowania manipulatorem i wykonywania podstawowych misji może być
przeprowadzone w klasie elektronicznej.
4) Zajęcia na trenażerze poziomu 2, obejmujące krótkie sprawdzające ćwiczenia
z zakresu obserwacji, jazdy i operowania manipulatorem, a następnie
wykonywanie misji z większą precyzją niż na poziomie 1. Po uzyskaniu
zaliczającej oceny szkolony przechodzi do następnego etapu treningu.
5) Zajęcia na trenażerze poziomu 3. Wykonywanie misji w rozszerzonej
rzeczywistości, przede wszystkim przy użyciu rzeczywistego robota w otoczeniu
z elementami rzeczywistymi (np. różne rodzaje nawierzchni – piasek, żwir,
kałuże) i wirtualnymi.
2.4. Funkcje i właściwości trenażerów
Przed rozpoczęciem pracy trenażer powinien przeprowadzać automatyczny test
sprawności systemu i nie dać się uruchomić w trybie pracy w przypadku wykrycia
niesprawności. Trenażery poszczególnych poziomów winny umożliwiać:
▪ na poziomie 1 –
- widoczną na ekranie monitora symulację w czasie rzeczywistym
następstw użycia przez szkolonego zasymulowanych organów sterowania
robotem w zakresie obserwacji, jazdy i manipulacji,
- wprowadzanie do trenażera zaprogramowanych scenariuszy i widoczną
na ekranie monitora symulację otoczenia robota wynikającą z danego
scenariusza,
- widoczną na ekranie monitora, lub tylko wykrytą i zasygnalizowaną
koincydencję symulacji robota i symulacji otoczenia,
- rejestrację i odtwarzanie sesji szkoleniowej każdego uczestnika,
- wykrywanie i pomiar czasu określonych zdarzeń ekranowych,
- prowadzenie, wg. zaprogramowanego wzorca, w sesji szkoleniowej
każdego uczestnika, punktacji wynikającej z wykrytych zdarzeń
ekranowych i czasu ich wystąpienia,
- sporządzanie raportów o przebiegu i wynikach szkolenia (punktacja)
każdego uczestnika.
Ponadto:
(I) w klasie elektronicznej –
- wysyłanie ze stanowiska instruktora komunikatów do stanowisk osób
szkolonych oraz podgląd tych stanowisk,
33
-
przerywanie i wznawianie ze stanowiska instruktora pracy na
stanowiskach szkolonych, zmiana scenariusza,
- dostęp na stanowisku instruktora do raportów o przebiegu i wynikach
szkolenia każdego uczestnika;
(II) w e-learningu –
- otwieranie, zamykanie, przerywanie i wznawianie własnej sesji
szkoleniowej przez każdego uczestnika,
- odtwarzanie przebiegu własnej sesji szkoleniowej przez każdego
uczestnika,
- odczytywanie raportów o przebiegu i wynikach własnego szkolenia przez
każdego uczestnika;
▪ na poziomie 2 – jak na poziomie 1 w klasie elektronicznej, z tym, że nie jest
potrzebna
symulacja organów sterowania robotem i jej uwidocznianie na ekranie monitora;
▪ na poziomie 3 –
- widoczną stereoskopowo na ekranie hełmu symulację elementów
(wirtualnych) nieruchomych w rzeczywistym otoczeniu robota,
- widoczną na ekranie hełmu koincydencję robota i symulacji elementów
otoczenia,
- podgląd ze stanowiska instruktora (na ekranie monitora) stanowiska
szkolonego,
- przerywanie i wznawianie ze stanowiska instruktora pracy na stanowisku
szkolonego, zmiana scenariusza,
- rejestrację i odtwarzanie (na ekranie monitora) sesji szkoleniowej,
- wykrywanie i pomiar czasu określonych zdarzeń sesji,
- prowadzenie, wg. zaprogramowanego wzorca, w sesji szkoleniowej
uczestnika, punktacji wynikającej z wykrytych zdarzeń i czasu ich
wystąpienia,
- sporządzanie raportów o przebiegu i wynikach szkolenia i dostęp do nich
ze stanowiska instruktora.
2.5. Ocena wyników szkolenia – efektywności pracy operatora
Ocena będzie dokonywana liczbowo, przez przyznawanie szkolonemu pewnej
liczby punktów za wykonanie zadania. Ocena będzie przeprowadzana
automatycznie przez trenażer (w szczególności w e-learningu) lub przez
instruktora. W obliczaniu oceny za większy fragment oraz za całość szkolenia
stosowane będą współczynniki wagowe. System punktacji winien być
zaprojektowany z uwzględnieniem następujących atrybutów efektywności działań
operatora, która winny być uzyskiwana w wyniku szkolenia:
- elastyczność – zdolność do opanowywania sytuacji w otoczeniu
złożonym, niepewnym, zaskakującym zmianami,
- szybkość – zdolność do podejmowania szybkich decyzji, często pod
presją możliwych niekorzystnych (a nawet groźnych) skutków decyzji,
- odporność – zdolność do pracy pod działaniem zagrożeń, niepewności,
w warunkach stresujących,
- adaptowalność – zdolność do zmiany sposobu działania i strategii gdy
zmieniają się warunki lub samo zadanie,
34
-
zdolność do podejmowania ryzyka i umiejętność oceny czy się ono
opłaca,
dokładność – precyzja działania, dobre rozumienie zadań, efektywna
komunikacja.
2.6. Certyfikacja przeszkolonych operatorów
Wydaje się uzasadnionym wprowadzenie certyfikacji dla operatorów którzy
przeszli pomyślnie trening. Należy rozważyć udzielanie operatorom certyfikatów
na 3 poziomach/stopniach:
- certyfikat 1go stopnia – operator uprawniony do pracy z jednym,
określonym typem robota,
- certyfikat 2go stopnia – operator uprawniony do pracy z wieloma
(określonymi) typami robotów,
- certyfikat 3go stopnia – instruktor upoważniony do szkolenia operatorów.
Utrzymywanie ważności certyfikatów wymagałoby uczestnictwa w okresowych
szkoleniach i/lub bieżącej pracy operatorskiej. W związku z tym, wraz
z certyfikacją
należy wprowadzić książki pracy operatorów, do których
wpisywano by przebyte szkolenia oraz informacje o pacy z robotami (misje,
przepracowane godziny – podobnie jak w żeglarstwie i lotnictwie).
3. Ocena ankietowa zaproponowanej metodyki treningu
Ocenę przeprowadzono w czerwcu 2008. Uzyskano odpowiedzi od 5
respondentów: 2 aktualnych użytkowników robotów, 2 potencjalnych
użytkowników robotów (którzy są zainteresowani zakupem robotów i treningiem
operatorów) oraz 1 producenta.
3.1. Rozmiary potrzeb szkoleniowych i intensywność szkolenia
Z odpowiedzi respondentów-użytkowników wynika, że w poszczególnych
instytucjach potrzeba zatrudniać po ok. 20 przeszkolonych operatorów; tyluż
operatorów przeszkolono dotychczas w każdej instytucji użytkującej roboty.
Producent robotów, oferujący podstawowe szkolenie operatorów w ramach
umowy o dostawę robota, przeszkolił dotychczas 135 operatorów.
Całkowity czas szkolenia operatora, zarówno przez producenta jak i
użytkownika, wynosi ok. 30h, w tym po kilka godzin (od 1 do 8) przeznacza się na
zapoznanie się z robotem oraz czynnościami serwisowymi, a resztę na naukę
operowania robotem.
Szkolenie, na pojedynczym urządzeniu, odbywa się na ogół w grupach 3 do 10
osobowych, są przypadki szkolenia indywidualnego. Zgłaszana jest przez
użytkowników potrzeba prowadzenia szkoleń doskonalących w grupach 3 – 5
osobowych z intensywnością kilkanaście godz/mc.
3.2. Stosowane obecnie metody szkolenia
Do szkolenia używa się wyłącznie rzeczywistych robotów, trenażery nie są
dotychczas stosowane. Wykorzystuje się także materiał szkoleniowy na CD
dostarczany przez producenta robota. Procedury treningu nie są określone
instrukcjami w postaci obowiązujących dokumentów. Poziom wykształcenia
35
szkolonych osób nie jest znany, jeden z respondentów-użytkowników podaje, że
przystępujący do szkolenia znają podstawy posługiwania się komputerem.
3.3. Ocena sugerowanych w ankiecie metod szkolenia i postulaty własne
respondentów
Respondenci odrzucają szkolenie zdalne jako nieefektywne, a grę
komputerową uważają za nieprzydatną w szkoleniu. Tylko jeden z respondentów
widzi potrzebę szkolenia w klasie elektronicznej w grupach kilkuosobowych.
Szkolenie na stanowisku z rzeczywistym pulpitem sterowania i symulatorem
uważają respondenci za pożądane, przy czym zgłaszają zapotrzebowanie na
pojedyncze stanowisko, gdyby jego koszt nie przekraczał 10% kosztu robota. Dwu
respondentów uważa za pożądany „trening oparty na zestawie Augmented
Reality”.
W dodatkowych uwagach i postulatach zgłoszonych przez respondentów
podkreśla się raz jeszcze, że praktycznie przydatny trenażer musi posiadać
rzeczywisty pulpit sterowania robota, natomiast robot i jego otoczenie mogą być
symulowane. Szkolenie operatora powinno być przeprowadzone przy zakupie
robota, a potem powinno być prowadzone doszkalanie co pół roku. Powinna być
prowadzona dokumentacja szkolenia poszczególnych operatorów – informacja
o przebytych szkoleniach wraz z uzyskaną punktacją. W szkoleniu należy położyć
nacisk na „taktykę użytkowania” robota. Nie należy wprowadzać limitów
czasowych na wykonanie zadań, a jedynie uwzględniać ten czas w punktacji
uzyskiwanej przez szkolonego; należy też stosować narastająco stopnie trudności
zadań.
Trenażer powinien charakteryzować się dobrą grafiką i umożliwiać symulację
przesuwania obiektów, kolizji, interakcji ze środowiskiem (niszczenie
środowiska). Powinien zapewniać podczas symulacji osiąganie wysokiej realności
i precyzji sterowania, przy uwzględnieniu położenia środka ciężkości.
−
−
−
−
−
−
−
Respondenci zwracają uwagę na potrzebę symulacji w trenażerze:
różnych podłoży i przeszkód, w tym jazdy po schodach,
różnych warunków terenowych (ślisko, grząsko i t.p.),
ciasnych pomieszczeń,
różnych warunków atmosferycznych,
zakłóceń i przekłamań w systemach optycznych,
zakłóceń w komunikacji.
Trenażer winien umożliwiać symulację akcesoriów robota, a w szczególności:
− wyrzutnika pirotechnicznego,
− zestawu rentgenowskiego,
oraz symulację zaawansowanych misji, w tym:
− otwieranie samochodu,
− neutralizacja terenu,
− wyciąganie bomb, w tym bomb losowo umiejscowionych.
4. Wnioski z oceny ankietowej i postulaty rozwoju metod treningu
36
Obciążenia urządzeń treningowych wynikające z odpowiedzi respondentów
mogą być w sposób ekonomicznie uzasadniony zrealizowane przy użyciu do
szkolenia rzeczywistych robotów. Potrzeba zastosowania trenażerów wynika
jedynie z postulowanych zadań szkoleniowych trudnych lub niemożliwych do
realizacji przy użyciu rzeczywistego robota na rzeczywistej scenie. Obecne
i przewidywane przez krajowych użytkowników zapotrzebowanie na trening jest
niewielkie i ten rozmiar potrzeb nie uzasadnia ekonomicznie stosowania treningu
wielopoziomowego. Jednak przeprowadzona ankieta nie daje wiarygodnego
obrazu przyszłego rozwoju rynku usług treningowych, krajowego jak i
zagranicznego dostępnego dla polskich producentów i usługodawców. Również
odrzucany przez respondentów wariant szkolenia zdalnego przy użyciu PC jako
terminala oraz technik gier komputerowych zapewne okaże się przydatny gdy
zapotrzebowanie na trening będzie rosło. Zastosowanie szkolenia zdalnego, w
którym do szkolenia szeroko pojętych operatorów z natury rzeczy wykorzystuje
się techniki gier komputerowych, jest przydatne i bardzo rozpowszechnione w
dziedzinach pokrewnych. Tak więc tego typu szkolenie zdalne jest stosowane w
szkoleniu pilotów w lotnictwie. Oprócz licznej rzeszy amatorów uprawiających
hobby wirtualnego latania w Internecie (po zdalnej nauce pilotażu), którzy
nierzadko łączą to z hobby rzeczywistego latania, profesjonalne szkoły pilotów
wykorzystują szkolenie zdalne na pierwszym etapie nauki pilotażu. Stosuje tę
metodę np. szkoła pilotażu „Forder learn to fly”3 w Toronto, Kanada używając
symulatora MS Flight Simulator 2002/2004. (Wśród amatorów bardzo popularny
jest inny, bezpłatny symulator Microsoft’a MS Flight Simulator X 4).
Zastosowanie techniki gier komputerowych w wirtualnych światach jest szeroko
stosowane w treningu personelu w różnych dziedzinach. Ostatnio wielu
użytkowników stosuje do treningu wojskowego policyjnego, a także medycznego
(trening personelu szpitala w przypadku nagłego napływu poszkodowanych w
wypadku), handlowego (trening w obsłudze klientów personelu centrów
handlowych) i innych oprogramowanie OLIVE (On-Line Interactive Virtual
Environment)5 firmy Forterra Systems. Zatem w dalszym rozwoju metod treningu
operatorów robotów mobilnych należy uwzględnić możliwość wykorzystania
szkolenia zdalnego, a także zastosowania technik światów wirtualnych z gier
komputerowych.
Ze względu na różnicę pomiędzy obecnymi, realnymi potrzebami
szkoleniowymi i potrzebami perspektywicznymi, należy w dalszych pracach
uwzględnić dwa warianty metodyki: „metodykę A” odpowiadającą potrzebom
obecnym oraz “metodykę B” odpowiadającą przewidywanym potrzebom
przyszłym. W metodyce A tylko rzeczywisty robot oraz trenażer złożony
z rzeczywistego pulpitu sterowniczego robota oraz komputera z symulacją robota
i jego otoczenia są środkami nauczania. W metodyce B zachowane są wszystkie
środki nauczania treningu 3-poziomowego:
3
http://www.forderlearntofly.com/
http://www.flightsimaviation.com/_fs2006/announcement.html
5
http://www.forterrainc.com. Por. też Kushner D.: Winner: Make Your Very Own
Virtual World with OLIVE. IEEE Spectrum. Jan. 2008.
4
37
−
trenażer zrealizowany za pomocą PC, w którym symulowane jest otoczenie
robota, robot oraz interfejs robota z operatorem (klasa elektroniczna i/lub
e-learning);
− trenażer złożony z rzeczywistego pulpitu sterowniczego robota oraz
komputera z symulacją robota i jego otoczenia;
− stanowisko treningowe AR (Augmented Reality) z rzeczywistym robotem
działającym w rzeczywistym w środowisku z zasymulowanymi obiektami.
5. Zagadnienia badawcze związane z metodyką treningu
Problematyka treningu operatorów wykonujących misje jest aktualnym polem
prac badawczych, przy czym wymieniane są następujące „research questions”6:
- na jakiej podstawie szkoleni postrzegają podobieństwo sytuacji? Co
uruchamia odpowiednie wzorce w ludzkiej pamięci? Jak szkoleni
pozyskują dodatkowe informacje, jak współdziałają między sobą
w misjach zbiorowych (wymiana danych i uczenie się od drugich)?
- jak wirtualne elementy treningu mogą być zintegrowane z rzeczywistymi
aby zapewnić pełną efektywność?
- jak wiedza przekazywana w treningu ma być zorganizowana w wirtualne
moduły aby zapewnić do niej dobry dostęp gdy jest potrzebna?
- jak ma być ewaluowana jakość treningu – np. jak można stwierdzić, że
ktoś jest ekspertem?
Wydaje się, że dwa problemy o charakterze badawczym trzeba będzie
zaatakować w dalszych pracach nad metodami treningu wielopoziomowego
operatorów robotów:
- jak określić pożądane osiągi (performance) zespołu robot-operator?
- jak je mierzyć podczas treningu?
6
Bell H.H.: The Effectiveness of Distributed Mission Training. Communications
of the ACM, September 1999/Vol. 42, No. 9
38
Marek Kacprzak, Andrzej Kaczmarczyk, Andrzej Masłowski
Instytut Maszyn Matematycznych, Warszawa
Tworzenie oprogramowania trenażerów operatorów
robotów mobilnych7
Generation of software for computer simulators for mobile
robot operators
Streszczenie
Omówiono koncepcję przygotowania szkoleń operatorów robotów mobilnych przy użyciu
komputerowych trenażerów. Opisano niezbędne narzędzia programistyczne do tworzenia
oprogramowania trenażerów.
Abstract
A concept of an organisation of a training of mobile robots operators with use of computer
simulators is presented. Programming tools necessary for the generation of simulators’
software are described.
1. Wstęp
Roboty mobilne sterowane przez operatorów są coraz częściej stosowane do
realizacji różnorodnych zadań inspekcyjnych i interwencyjnych, w działaniach
zarówno cywilnych, jak i wojskowych. W związku z tym, problemem
o zasadniczym znaczeniu staje się szkolenie operatorów robotów. W pracy [1]
uzasadniono potrzebę prowadzenia szkoleń operatorów na specjalizowanych
urządzeniach – komputerowych trenażerach. Przedstawiono także koncepcję
treningu wielopoziomowego, wykonywanego na trenażerach 3 poziomów:
poziom 1 – trenażer zrealizowany wyłącznie za pomocą komputera klasy PC,
poziom 2 – trenażer zrealizowany za pomocą komputera klasy PC z dołączonym
rzeczywistym urządzeniem interfejsu robota – pulpitem sterowania,
poziom 3 – trenażer z zastosowaniem rzeczywistości rozszerzonej AR (Augmented
Reality) – rzeczywisty robot w otoczeniu rzeczywistym z elementami
symulowanymi/wirtualnymi; stosowany komputer klasy PC i specjalny hełm
używany przez szkolonego.
Realizacja koncepcji wielopoziomowej metodyki treningu operatorów robotów
mobilnych przy użyciu trenażerów wymaga specyficznej organizacji
przygotowywania i prowadzenia szkoleń, w której powinny brać udział 3
wyspecjalizowane komórki funkcyjne, nazywane dalej ośrodkami: Ośrodek
Projektowania Robotów (OPR), Ośrodek Tworzenia Oprogramowania dla
7
Praca naukowa finansowana za środków na naukę
w latach 2007-2010 jako projekt rozwojowy nr OR
00004604.
39
Trenażerów Robotów Mobilnych (OTO) i Ośrodek Szkolenia Operatorów (OSO)
– patrz rys. 1.
Ośrodek
Projektowania
Robotów (OPR)
zlecenie wykonania
oprogramowania trenażera
bazowe oprogramowanie
trenażera w postaci e-zadań
docelowe oprogramowanie
trenażera w postaci
programów
szkoleniowych i testowych
Ośrodek Tworzenia
Oprogramowania dla
Trenażerów Robotów
Mobilnych (OTO)
Ośrodek Szkolenia
Operatorów
(OSO)
Rys. 1 Organizacja przygotowania i prowadzenia szkoleń
Wzajemne powiązania tych ośrodków i skrótowy opis wykonywanych w nich
działań są następujące:
a. OPR zleca do OTO wykonanie oprogramowania trenażera określonego poziomu
(1, 2 lub 3) dla ustalonego typu robota,
b. OTO wykonuje bazowe oprogramowanie trenażera w postaci tzw. e-zadań
i przekazuje je z powrotem do OPR,
c. OPR tworzy z e-zadań docelowe oprogramowanie trenażera w postaci
programów szkoleniowych i testowych (egzaminacyjnych),
d. programy szkoleniowe i testowe zostają przekazane do OSO, a po ich
zainstalowaniu na trenażerze (lub trenażerach), służą do edukacji zarówno
instruktorów, jak i operatorów robota.
Wymienione działania są szczegółowo opisane w dalszej części artykułu.
2. Zlecenie wykonania oprogramowania trenażera
Zlecenie przygotowuje OPR, w którym pracuje zespół projektantów robota, dla
którego ma być wykonane oprogramowanie trenażera. Zespół ten posiada pełną
wiedzę na temat robota, w tym także dotyczącą szczegółowych umiejętności, jakie
operator robota powinien opanować w wyniku szkolenia. Dlatego należy przyjąć
dwa zasadnicze założenia:
– model robota, w postaci wymaganej dla utworzenia oprogramowania
trenażerów, powinien być wykonany w OPR,
– program szkolenia operatorów robota musi także określić OPR.
40
2.1 Model trenażera
W procesie tworzenia oprogramowania trenażera podstawowe znaczenie ma
model trenażera. Przyjmuje się jako roboczą hipotezę, wymagającą uzasadnienia w
planowanych dalszych pracach, o możliwości utworzenia modelu trenażera jako
zintegrowanego modelu, złożonego z modeli elementów składowych.
W przypadku trenażerów poziomu 1 (bez pulpitów sterowania robota) model
zintegrowany składa się z 3 modeli: robota, środowiska w którym robot działa oraz
z modelu programu imitującego działanie pulpitu sterowania robota (rys. 2).
Model zintegrowany trenażera
Model programu
imitującego działanie
pulpitu
Interfejs modeli
robota i środowiska
Interfejs
pulpit-robot
Użytkownik
trenażera
Model środowiska
Model robota
Rys. 2. Model zintegrowany dla trenażerów bez pulpitu robota
W przypadku trenażerów z pulpitem sterowania robota, model zintegrowany
składa się z modeli robota i środowiska w którym robot działa (rys. 3).
Model zintegrowany trenażera
Pulpit sterowania
robota
Użytkownik
trenażera
Model robota
Interfejs
pulpit-robot
Model środowiska
Interfejs modeli
robota i środowiska
Rys. 3. Model zintegrowany dla trenażerów bez pulpitu robota
Interfejs pulpit-robot, identyczny w obu przypadkach, jednoznacznie określa
sposób wymiany informacji między robotem a pulpitem sterowania robota lub
jego imitacją programową.
Głównym problemem wymagającym dalszych badań jest sposób budowy
modeli robota i środowiska oraz ustalenie zasad współdziałania (interfejsu) obu
modeli. Istnieje wiele programów klasy CAE (ang. Computer-Aided Engineering)
do projektowania robotów mobilnych, w tym także z napędem gąsienicowym – to
jest takich, które są przedmiotem zainteresowania w niniejszym projekcie. Są to
zarówno programy darmowe, np. powstałe w wyniku projektów badawczych, takie
jak np. [2], a także programy udostępniane na zasadach komercyjnych, np. Adams
[3] (korzystanie z tego programu jest oferowane także na zasadzie outsourcingu,
41
np. przez firmę [4]), czy RecurDyn [5]. Ważnym celem dalszych prac byłoby
dokonanie wyboru takiego programu CAE, który umożliwiałby użycie
stosowanego w programie modelu robota dla celów tworzenia oprogramowania
trenażerów. Do tworzenia modelu środowiska możliwe jest użycie ogólnie
dostępnych tzw. silników gier (ang. game engine), czyli oprogramowania
powszechnie stosowanego w grach komputerowych. Przedstawiona idea integracji
modeli składowych jest zgodna z zasadami przyjętymi w najbardziej znanym
obecnie projekcie z zakresu robotyki – Robotics Studio firmy Microsoft [6].
Określenie wymagań na model robota musi być przedmiotem dalszych badań.
2.2 Menedżer treści szkolenia
Osobą odpowiedzialną za szkolenie instruktorów operatorów robotów
mobilnych, a także uczniów – przyszłych operatorów robotów, oraz za
sprawdzenie ich umiejętności metodą testów, jest menedżer treści szkolenia
(nazywany dalej krótko menedżerem). Podstawowym zadaniem menedżera jest
opracowanie programu szkolenia instruktorów i operatorów robotów oraz
przygotowanie testów egzaminacyjnych8. Programy szkolenia, a także testy
egzaminacyjne, składają się ze skończonej liczby zadań do wykonania przez
szkolonych. Każde zadanie jest opisem zdarzeń, jakie powinny powstać w wyniku
działań użytkownika trenażera (ucznia lub instruktora), wraz z podaniem opisu
tych zdarzeń, które są uważane za błędy.
Menedżer opracowuje zestaw zadań dla konkretnego typu robota i określonego
poziomu trenażera (poziom 1, 2 lub 3) – patrz rys. 4. Zakłada się, że menedżer nie
musi mieć umiejętności informatycznych. Specjalne oprogramowanie graficzne –
Generator zadań szkoleniowych i testowych umożliwia menedżerowi
jednoznaczne definiowanie zadań. Oprogramowanie to, działając w trybie
interaktywnym i wykorzystując grafikę 3D, umożliwia utworzenie graficznego
opisu środowiska, w którym ma działać robot i zadań, jakie ma wykonać szkolony.
Przykładowe informacje, które mogą być zawarte w opisie środowiska to:
– rozmiar, konfiguracja i rodzaj terenu,
– początkowe położenie i orientacja robota,
– obiekty w środowisku, zarówno nieruchome, jak i ruchome,
– wymagane efekty specjalne (np. dym, mgła, ogień).
Przykład.
Opis werbalny środowiska: obszar o wymiarach 20x30 m, wznoszący się
w kierunku północnym, z rowem w kierunku wschód-zachód o zmiennej
głębokości i szerokości, określone fragmenty terenu mają podłoże gliniaste,
pozostałe – skaliste. 4 obiekty nieruchome (nr 1, 2, 3 i 4) o podanych rozmiarach,
brak obiektów ruchomych. Początkowe położenie robota jak na rysunku, robot
zwrócony przodem na wschód.
Koniec przykładu.
8
Warto podkreślić pełną analogię szkoleń operatorów z typowymi grami
komputerowymi – w obu przypadkach występują programy interaktywne,
działające w czasie rzeczywistym, z wizualizacją 3D wysokiej jakości,
z określoną strategią do zrealizowania, z jasnym zdefiniowaniem sukcesu lub
porażki ucznia, bądź użytkownika gry.
42
Menedżer określa też jakie działania ma wykonać szkolony i opisuje zdarzenia,
które będą uznane za błędy szkolonego.
Przykład.
Zadanie do wykonania: przeprowadzenie robota do zaznaczonego obszaru
i podniesienie oznaczonego obiektu nr 4. Za błędy ucznia będą uznane jego
działania, które doprowadzą do następujących zdarzeń:
a. przewrócenia robota,
b. unieruchomienia robota na podłożu gliniastym,
c. uderzenia przez robot w obiekty nr 1, 2 lub 3,
d. nie podniesienie albo zniszczenie obiektu nr 4.
Koniec przykładu.
Menedżer określa również, jaka jest wymagana reakcja trenażera na błędy ucznia.
Menedżer treści
Administrator i operatorzy
zlecenie wykonania e-zadań
(zbiór EZ) według dostarczonych
opisów zadań (zbiór Z)
OPR
OTO
Wykonanie zadań szkoleniowych
i testowych (zbiór Z) przy użyciu
Generatora zadań
Utworzenie modelu zintegrowanego
dla trenażera określonego poziomu
przy użyciu Generatora modeli
zintegrowanych
Wykonanie programów szkoleniowych
i testowych (zbiory PST), tworzonych na
podstawie zbioru EZ, przy użyciu Generatora
programów szkoleniowych i testowych
Utworzenie e-zadań (zbiór EZ) przy
użyciu Generatora oprogramowania
trenażerów
utworzony zbiór
e-zadań (EZ)
Uczeń
Instruktor
zbiory programów szkoleniowych
i testowych (PST)
OSO
Trenażer
Proces edukacyjny prowadzony przy
zastosowaniu programów PST
Rys. 4. Działania dotyczące przygotowania i prowadzenia szkoleń
43
Przykład.
W przypadkach a, b i c należy zakończyć realizację zadania; w przypadku d –
należy zadanie kontynuować.
Koniec przykładu.
Za pomocą Generatora zadań szkoleniowych i testowych menedżer tworzy
zbiór zadań Z, złożony z N zadań zi: Z = { zi }, i = 1, ... ,N.
Menedżer zleca do OTO wykonanie oprogramowania trenażera określając typ
robota i poziom trenażera oraz przekazując:
– model robota,
– sformalizowany opis zadań szkoleniowych i testowych (egzaminacyjnych)
w postaci zbioru zadań Z.
Ponadto, dla trenażerów poziomu 1 przekazywany jest do OTO model pulpitu
sterowania robotem, a dla trenażerów poziomu 2 przekazywany jest sam pulpit.
3. Wykonanie bazowego oprogramowanie trenażera
Na podstawie zlecenia przygotowanego przez OPR, ośrodek OTO tworzy
bazowe oprogramowanie trenażera określonego poziomu dla robota ustalonego
rodzaju. Praca, realizowana w dwóch etapach (rys. 4), obejmuje: utworzenie
modelu zintegrowanego trenażera i utworzenie e-zadań.
Modele trenażera, przedstawione na rys. 2 i 3, są tworzone przy użyciu
specjalizowanego programu – Generatora modeli zintegrowanych. Zbadanie
możliwości tworzenia modeli zintegrowanych jest ważnym zagadnieniem
badawczym, które powinno być podjęte w dalszych etapach pracy. Za szczególnie
interesujące należy uznać określenie warunków integracji modeli w przypadku,
gdy model trenażera jest dostosowany do implementacji w języku C++, a model
środowiska – w języku C#.
Dla każdego zadania zi, i=1, ..., N zdefiniowanego przez menedżera tworzone
jest, przy użyciu specjalizowanego oprogramowania – Generatora
oprogramowania trenażerów, odpowiadające mu e-zadanie ezi. Powstaje w ten
sposób zbiór e-zadań, oznaczany jako EZ: EZ = {ezi}, i = 1, ... ,N.
Model zintegrowany trenażera jest zasadniczym elementem każdego e-zadania.
Pętla sterowania dla e-zadania jest przedstawiona na rys. 5.
Każde utworzone e-zadanie:
– jest oprogramowaniem, które może działać samodzielnie (pod kontrolą systemu
operacyjnego) na trenażerze określonego poziomu,
– umożliwia wykonanie przez szkolonego na trenażerze zadania zdefiniowanego
przez menedżera,
– jest wykonywane w trybie interakcyjnym, w czasie rzeczywistym, z wizualizacją
3D (należy przyjąć, że wizualizacja działań użytkownika trenażera powinna
nastąpić w czasie nie dłuższym niż 100 ms).
W wyniku działań OTO na podstawie zbioru zadań Z zostaje utworzony
odpowiadający mu zbiór e-zadań EZ.
44
działanie operatora
powstanie nowego
uwzględnienie zdarzenia w modelu zintegrowanym
wizualizacja 3D nowego zdarzenia
tak
nie
spełniony warunek końca działań operatora?
Rys. 5. Sieć działań e-zadania
4. Tworzenie programów szkoleniowych i testowych
Wygenerowany zbiór EZ jest przekazywany z OTO menedżerowi (rys. 4),
który dokonuje oceny poprawności działania e-zadań. W przypadku stwierdzenia
błędów – zwraca e-zadanie ponownie do OTO w celu usunięcia błędów. Ze zbioru
e-zadań uznanych za poprawne, menedżer treści szkoleniowych tworzy programy
szkoleniowe i testowe oznaczane dalej jako PST. W celu utworzenia programów
PST, elementy zbioru EZ – samodzielne e-zadania – muszą zostać powiązane
między sobą. Powiązania dokonuje menedżer tworząc ze zbioru EZ sekwencje
e-zadań, które, zależnie od przeznaczenia, nazywane są e-szkoleniami lub
e-testami.
e-szkolenie jest sekwencją e-zadań, odpowiadającą tzw. grafowi zadań,
zgodnie z terminologią stosowaną w systemach e-learningu. Węzłami grafu są
e-zadania – elementy zbioru EZ, a łukami grafu – przejścia między e-zadaniami.
W grafie zadań zawarte są następujące informacje:
– które zadanie ma być wykonane jako pierwsze (dla różnych uczniów mogą to
być zadania różne),
– które zadanie ma być wykonane jako następne,
– które zadanie ma być wykonane jako ostatnie.
Wykonanie zadania może być powiązane z przyznawaną oceną punktową (w tym
także za precyzje wykonania i czas realizacji) oraz z systemem wag. Wybór
zadania następnego lub ostatniego może zależeć od różnych warunków (np.
45
uzyskane przez ucznia punkty, liczba prób wykonania określonych zadań, łączny
czas pracy ucznia z trenażerem, łączna liczba wykonanych zadań itp.).
Przykład.
Na rys. 6 pokazano graf zadań złożony z 3 e-zadań: ez1, ez2 i ez3. Pierwszym
zadaniem do wykonania jest ez1. Po wykonaniu ez1, zależnie od pewnych
warunków (nie opisanych na rysunku), oznaczonych na łukach jako czarny
kwadrat, następnym zadaniem może być ez2 lub ez3, albo powtórzone zadanie ez1
lub też zakończenie e-szkolenia.
Koniec przykładu.
ez1
ez2
ez3
Rys. 6. Przykład grafu zadań
Na podobnych zasadach tworzony jest e-test, z tą różnicą, że zazwyczaj liczba
zadań jest ograniczona i nie są powtarzane e-zadania źle wykonane. e-test służy do
końcowego sprawdzania umiejętności uczniów – przeprowadzania egzaminów.
Menedżer tworzy e-szkolenia i e-testy przy użyciu specjalizowanego
oprogramowania – Generatora programów szkoleniowych i testowych.
5. Proces edukacyjny wykonywany przy użyciu trenażerów
Menedżer przekazuje programy PST do OSO (rys. 4). Po zainstalowaniu na
trenażerze (lub trenażerach) określonego poziomu, PST służą do edukacji zarówno
instruktorów, jak i operatorów robota. W OSO programy PST są instalowane na
określonym typie trenażera, zależnie od wymaganego poziomu trenażera.
Szkolenia i testy mogą się odbywać pod nadzorem instruktora lub też bez jego
udziału. Wyniki działań użytkowników są rejestrowane. Przebieg zadań
szkoleniowych, za zgodą instruktora, może być powtarzany przez ucznia od
dowolnego zdarzenia. Instruktor, na podstawie analizy wyników szkolenia,
decyduje o kontynuowaniu szkolenia lub o jego zakończeniu i przystąpieniu
ucznia do egzaminu. Egzamin, wykonywany przy użyciu oprogramowania e-test,
może się odbywać również bez udziału instruktora. Wyniki egzaminu są
rejestrowane i niedostępne dla ucznia.
46
Szkolenia operatorów robotów na trenażerach mogą być prowadzone także
poza OSO u użytkowników końcowych.
6. Wnioski
Tworzenie oprogramowania trenażerów operatorów robotów mobilnych jest
związane z zagadnieniami z obszarów modelowania, symulacji i e-learningu. Ze
względu na specyficzny cel nauczania operatorów – zorientowany na rozwój
i utrwalanie umiejętności sterowania robotem, a nie na przekazywanie wiedzy –
proces edukacyjny należy określić jako e-trening.
Tworząc oprogramowanie dla trenażerów należy dążyć do wykorzystania
w jak największym zakresie już istniejących narzędzi, służących do budowy
modeli robotów i środowisk działania robotów. Jednakże część specjalizowanego
oprogramowania musi być wykonana samodzielnie – chodzi tu o opisane
w niniejszym artykule generatory: zadań, modeli zintegrowanych, e-zadań oraz
programów szkoleniowych i testowych.
Literatura
[1]
Kaczmarczyk A., Kacprzak M.: Metodyka treningu wielopoziomowego
operatorów robotów. Techniki Komputerowe. Biuletyn Informacyjny.
Nr 1/2008.
[2]
www.ode.org
[3]
www.mscsotware.com
[4]
www.offshoringtimes.com
[5]
www.functionbay.com
[6]
msdn.microsoft.com/robotics/
47
Piotr Zduńczyk
Instytut Maszyn Matematycznych
Przetwarzanie kodu - czyli jak działa kompilator
Processing code – how the compiler works
Streszczenie
W artykule zaprezentowano budowę oraz sposób działania typowego kompilatora języka
programowania wysokiego poziomu. Został przedstawiony proces przetwarzania kodu
źródłowego przez kompilator – od wyodrębniania pojedynczych jednostek leksykalnych,
kontroli gramatycznej przez budowę reprezentacji pośredniej do generowania kodu
wynikowego
Abstract
The article presents the construction and the operation of a typical high level programming
language compiler. It is the process of the source code compilation – from extracting
individual lexical symbols, grammatical control by the construction of indirect
representation to generate code.
1. Wstęp
1.1. Rozwój języków programowania, pierwsze kompilatory
Pierwsze komputery, które powstały w latach 40-tych XX wieku, były
programowane za pomocą języka maszynowego – ciągów binarnych. Ten sposób
programowania był bardzo żmudny oraz powodował wiele błędów. We wczesnych
latach 50-tych ubiegłego stulecia wprowadzono języki asemblerowe. Był to
pierwszy krok w konstrukcji języków programowania, które byłyby przyjazne
człowiekowi. Instrukcje w assemblerze były zapisane jako mnemoniki – czytelne
dla człowieka nazwy rozkazów procesora.
Dużym krokiem w rozwoju języków programowania było opracowanie,
w drugiej połowie lat 50-tych XX wieku, języka Fortran dla obliczeń
numerycznych oraz inżynierskich. Opracowany dla niego kompilator był
pierwszym w historii kompilatorem języka wysokiego poziomu. Kompilator to
program, który czyta kod napisany w jednym języku (języku źródłowym)
i tłumaczy go na równoważny program w drugim języku (języku wynikowym) [1].
Za języki wysokiego poziomu uznaje się takie, których składnia i słowa kluczowe
są niezależne od maszyny docelowej oraz mają umożliwić człowiekowi łatwiejsze
zrozumienie kodu, jednocześnie zwiększając poziom abstrakcji.
Na przestrzeni lat, od czasu powstania języka Fortran, powstało wiele języków
programowania wysokiego poziomu wprowadzających nowe możliwości,
ułatwiających programowanie oraz bardziej wydajnych. Są to m.in.: C/C++,
Pascal, C#, Java, SQL, Lisp, Prolog.
Z opracowaniem języka programowania wysokiego poziomu nieodłącznie
wiąże się opracowanie kompilatora lub interpretera, który spełni wymagania
48
nowego języka. Ze względu na typ generowanego języka wynikowego
kompilatory można podzielić na następujące grupy:
• tłumaczące do przenośnego kodu pośredniego maszyn wirtualnych, np.:
Java, .NET,
• tłumaczące do kodu maszynowego komputera.
2.2. Kompilator a interpreter
Dla niektórych języków programowania zamiast kompilatorów zostały
opracowane interpretery – programy, które tłumaczą fragmenty kodu źródłowego,
a następnie je wykonują. Zatem wynikiem pracy interpretera nie będzie
bezpośrednio język docelowy, a rezultat działania uruchomionego kodu
źródłowego. Niestety uruchomienie programu przy pomocy interpretera jest
wolniejsze niż programu otrzymanego podczas kompilacji.
2. Działanie kompilatora
Proces kompilacji jest zadaniem wieloetapowym – kod źródłowy jest
analizowany, zamieniany na reprezentacje pośrednią, optymalizowany, a następnie
generowany jest kod wynikowy ( Błąd! Nie można odnaleźć źródła odsyłacza.).
Wyróżnia się jednak dwie główne fazy procesu kompilacji: analizę i generowanie
kodu (często też nazywane wstępną i końcową).
Rys. 1. Etapy kompilacji
49
2.1. Faza analizy
Pierwszym etapem działania kompilatora jest analiza leksykalna. Polega ona na
wyodrębnieniu z kodu wejściowego tzw. leksemów (tokenów), czyli symboli bądź
ciągów symboli, które spełniają ściśle określone reguły np. liczby, identyfikatory.
W kompilatorach analizatory leksykalne zbudowane są w oparciu
o deterministyczne automaty skończone, które generowane są często na podstawie
wyrażeń regularnych [2].
Przykład 1. Rysunek 2 przedstawia deterministyczny automat skończony dla
wyrażenia regularnego określającego liczby rzeczywiste:
d (d) . d (d) | d (d) E (+|−) d (d)
gdzie:
d - dowolna cyfra
*
- oznacza dowolną liczbę powtórzeń wyrażenia w nawiasie
| - oznacza alternatywę wyrażeń
Rys. 2. Deterministyczny automat skończony
Języki programowania posiadają ściśle określone reguły gramatyczne, które
definiują wszystkie możliwe i poprawne konstrukcje, jakie mogą być użyte przez
programistę. Reguły te służą do stworzenia analizatora składniowego. Jego
głównym zadaniem jest kontrola poprawności kodu z gramatyką języka
źródłowego i budowa drzewa składniowego (uproszczonej postaci drzewa
wywodu) z otrzymanych tokenów od analizatora leksykalnego.
Przykład 2. Fragment programu napisanego w języku Pascal i odpowiadająca mu
reprezentacja za pomocą drzewa składniowego zwanego też abstrakcyjnym
drzewem składni (AST).
Rys. 3. Instrukcja w Pascalu i odpowiadające jej drzewo składniowe
50
Drzewo składni wygenerowane przez analizę składniową jest niewystarczające
do rozpoczęcia procesu generowania kodu. Etapem, który uzupełnia drzewo
składni o dodatkowe atrybuty jest analiza semantyczna. Główne zadania analizy
semantycznej:
• kontrola typów – sprawdzenie czy typy danych w instrukcjach są zgodne,
uzupełnienie drzewa o operacje konwersji typów,
• kontrola nazw – sprawdzenie czy użyte identyfikatory zostały
zadeklarowane,
• kontrola instrukcji – sprawdzenie czy instrukcje są poprawne
w kontekście, w którym zostały użyte, np. kontrola zakresu skoku
instrukcji goto.
Faza analizy kodu źródłowego oprócz budowy atrybutowanego drzewa składni
tworzy tablicę symboli – strukturę w której przechowywane są informacje
o identyfikatorach: stałych, zmiennych, funkcjach, klasach zadeklarowanych
w kodzie źródłowym. Tablica symboli zawiera dane, które zostaną wykorzystane
w dalszych etapach kompilacji. Niezbędnym elementem dobrego kompilatora jest
wykrywanie i zgłaszanie, w sposób czytelny, błędów wykrytych podczas analizy
kodu źródłowego. Możliwe są różne podejścia w przypadku znalezienia błędu
w programie źródłowym:
•
•
przerwanie analizy programu po pierwszym wystąpieniu błędu. Tę
własność miały kompilatory Pascala opracowane przez firmę Borland.
Rozwiązanie to niestety prowadzi do żmudnego wznawiania kompilacji
w przypadku występowania kilku bądź kilkunastu drobnych błędów.
podjęcie próby dalszej analizy tekstu źródłowego. Rozwiązanie to często
stosowane w kompilatorach języków C, C++ C# i innych, pozwala
w jednym uruchomieniu kompilatora wykryć wiele popełnionych błędów.
Niestety często występuje w takim przypadku lawinowe narastanie liczby
znalezionych błędów, a nawet wskazywanie jako złych prawidłowych
instrukcji.
2.2. Generowanie kodu
Faza generowania kodu docelowego wymaga uwzględnienia specyfiki
maszyny oraz środowiska, w którym zostanie uruchomiony program
wygenerowany przez kompilator. W celu uniezależnienia procesu optymalizacji
kodu źródłowego od własności maszyny docelowej oraz uproszczenia budowy
kompilatorów, jednego języka dla różnych maszyn, wprowadzono reprezentację
pośrednią. Innym jej zastosowaniem jest uzyskanie przenośności programów,
rozumianej jako uruchamianie jednego programu na wielu różnych architekturach
komputerów. Stosowane do tego celu reprezentacje to najczęściej kod jakiejś
maszyny wirtualnej np.: JVM dla Javy i maszyna .NET.
Reprezentacją pośrednią programu jest już atrybutowane drzewo składni,
jednak jego zastosowanie w kontekście optymalizacji nie jest wygodne, w tym
celu wprowadzono liniowe reprezentacje pośrednie:
• kod jednoadresowy – stosowany zazwyczaj dla maszyn stosowych.
Instrukcje ładują z pamięci co najwyżej jeden adres, a pozostałe
argumenty są pobierane ze stosu, również wynik operacji umieszczany
51
jest na stosie. Kodem jednoadresowym jest język pośredni CIL dla
maszyny .NET.
• kod dwuadresowy – wykorzystywany, gdy instrukcje zazwyczaj
wymagają dwóch argumentów i wynik zapisują w miejscu jednego
z argumentów. Za względu na specyfikę jest rzadko spotykany.
• kod trójadresowy, nazywany też ze względu na implementacje kodem
czwórkowym (operacja, argument_1, argument_2, wynik). Argumenty
oraz wynik są jawnie podane, stosowany jest w wielu kompilatorach.
Kompilatory w celu optymalizacji mogą wykorzystywać specjalne postaci
kodu pośredniego np. SSA (static single assignment), gdzie każda zmienna ma
przypisywaną wartość tylko jeden raz. Dodatkowo wykorzystywana jest również
reprezentacja za pomocą grafu bloków bazowych (DAG – Direct Acyclic Graph)9
nazywanego też grafem przepływu.
Przykład 3. Reprezentacje liniowe dla wyrażenia: z+3*y.
Rys. 4. Różne reprezentacje pośrednie
Reprezentacja pośrednia kodu źródłowego wykorzystywana jest przez
kompilator do przeprowadzenia optymalizacji. Najczęściej stosowane techniki to:
• eliminacja wspólnych podwyrażeń,
• propagacja kopii,
• eliminacja nieosiągalnego kodu,
• propagacja stałych,
• zwijanie stałych,
• optymalizacja pętli,
• redukcja mocy.
Proces optymalizacji kodu jest złożonym działaniem dzięki któremu aplikacja
będzie działać szybciej i może zająć mniej miejsca. Warto zaznaczyć, iż nawet
najlepszy kompilator nie spowoduje, że źle napisany program z wykorzystaniem
nieefektywnych algorytmów zacznie działać zdecydowanie szybciej.
Zastosowanie optymalizacji powoduje utratę jednoznacznej odpowiedniości
pomiędzy kodem źródłowym a docelowym.
Ostatnim modułem kompilatora jest generator kodu wynikowego, który na
podstawie pośredniej reprezentacji programu źródłowego wytwarza równoważny
9
Blok bazowy – to maksymalnej długości sekwencja operacji kodu pośredniego
nie zawierająca żadnego punktu przyłączenia (instrukcji z etykietą w kodzie
trójadresowym) i nie zawiera żadnego rozgałęzienia.
52
program docelowy. Generator kodu jest ściśle związany ze specyfiką kodu
wynikowego oraz maszyną docelową, której zasoby muszą być efektywnie
wykorzystane. Problem generacji optymalnego kodu jest z matematycznego
punktu widzenia nierozstrzygalny, a więc należy posługiwać się heurystykami,
które nie zawsze prowadzą do optymalnych rozwiązań. Najważniejszymi
problemami, z którymi musi poradzić sobie generator kodu to wybór
odpowiednich rozkazów kodu maszynowego oraz efektywny przydział rejestrów.
Równocześnie z procesem generowania kodu lub bezpośrednio po nim można
zastosować dodatkowe optymalizacje otrzymanego kodu wynikowego.
3. Kontekst kompilatora
Przetworzenie kodu źródłowego przez kompilator nie generuje jeszcze
gotowego do uruchomienia programu. Niektóre kompilatory generują kod
w asemblerze, który następnie jest tłumaczony na kod maszynowy. Kolejnym
krokiem jest połączenie otrzymanego kodu z dodatkowymi bibliotekami i dodanie
instrukcji umożliwiających uruchomienie programu.
4. Podsumowanie
Opracowanie i budowa kompilatorów przebiegała równolegle z procesem
tworzenia nowych języków programowania. Proces kompilacji jest
wieloetapowym zadaniem. Na przestrzeni lat opracowano efektywne algorytmy
i struktury danych, które znalazły zastosowanie nie tylko w procesie translacji
programów, lecz również w innych dziedzinach informatyki.
Literatura
[1]
A. Aho, R. Sethi, J. D.Ullman. Kompilatory. WNT, 2002.
[2]
J.E. Hopcroft, J.D. Ullman. Wprowadzenie do teorii automatów, języków
i obliczeń. PWN, 2003.
[3]
http://wazniak.mimuw.edu.pl/
53
Jerzy Słomczyński
Technologia bezprzewodowa Bluetooth
Wireless Bluetooth technology
Streszczenie
Artykuł przedstawia technologię bezprzewodową Bluetooth. Opisane są początki tej
technologii wprowadzonej przez firmę Ericsson. Podany jest cel i sposób w jaki firmy
tworzące Bluetooth Special Interest Group opracowały specyfikację definiującą
wymagania, jakie mają spełniać producenci urządzeń Bluetooth. Opisane są podstawowe
parametry techniczne tej technologii oraz sposób tworzenia sieci przez urządzenia
Bluetooth. Artykuł kończy się podaniem zastosowań tej technologii.
Abstract
The article describes the wireless Bluetooth technology. It describes the beginnings of this
technology, introduced by the Ericsson company. Goals and methods are shown in which
the firms, which were a part of Bluetooth Special Interest Group created the specification,
defining the requirements for producers of Bluetooth devices. The article lists the basic
technical parameters of this technology and the methods of creating networks, through the
Bluetooth devices. The article concludes with a list of Bluetooth applications.
1. Wstęp
Prawie każdy telefon komórkowy produkowany obecnie ma port Bluetooth.
Technologia bezprzewodowa Bluetooth bardzo się rozpowszechniła, umożliwiając
wymianę na małe odległości danych i plików audio między różnymi urządzeniami
stosowanymi w mieszkaniu, małej firmie czy samochodzie. Od strony realizacji
technicznej większość funkcji Bluetooth zrealizowana jest programowo
z wykorzystaniem doświadczeń zdobytych przy stosowaniu transmisji
w podczerwieni lub przez port szeregowy COMM. Warto zapoznać się z nowymi
możliwościami technicznymi jakie dostarcza ta technologia, mająca coraz więcej
zastosowań w urządzeniach używanych przez nas codziennie.
2. Początki Bluetooth
W 1994 r firma Ericsson rozpoczęła opracowanie taniego interfejsu radiowego
o niewielkiej mocy do połączenia telefonu komórkowego z akcesoriami w celu
wyeliminowania kabli. Interfejs ten miał służyć do bezprzewodowego przesyłania
głosu i danych. W przemyśle informatycznym i telekomunikacyjnym nowe,
niestandardowe technologie rzadko odnoszą sukces. Nabywcy wolą kupować
urządzenia zgodne ze standardami powszechnie stosowanymi w przemyśle, co
umożliwia wybór między urządzeniami od różnych producentów. Ericsson
postanowił, że aby odnieść sukces, technologia musi być opracowana przez dużą
grupę przedstawicieli przemysłu, którzy wspólnie opracują wspólną otwartą,
nieopatentowaną specyfikację. W 1998 roku powstała Bluetooth Special Interest
Group
złożona
z
największych
firm
przemysłu
komputerowego
i telekomunikacyjnego: Ericsson, Intel Corporation, IBM, Nokia i Toshiba. Statut
54
SIG, założonej w maju 1998 r., przewidywał opracowanie specyfikacji w zakresie
sprzętu i oprogramowania, która umożliwiałaby współpracę różnych urządzeń.
Bluetooth to angielskie tłumaczenie przydomku króla Danii Haralda Bluetooth,
który połączył Danię z Norwegią i wprowadził do Skandynawii Chrześcijaństwo
(Harald Bluetooth był królem Danii od roku 945 do roku 985).
Specyfikację w wersji 1.0 opublikowano w lipcu 1999 r. Po opublikowaniu
specyfikacji do SIG dołączyły firmy: 3Com, Lucent, Microsoft i Motorola. Te
dziewięć firm sponsoruje prace nad specyfikacją. Obecnie do SIG należą firmy:
Ericsson, Intel, Lenovo, Microsoft, Motorola, Nokia, Toshiba jako firmy wiodące
sponsorujące prace nad specyfikacją Bluetooth. Do SIG należy w roku 2008 ponad
10000 firm z całego świata adaptujących rozwiązania i reprezentujących różne
gałęzie przemysłu. SIG ma stronę http://www.bluetooth.com
3. Cechy Specyfikacji Bluetooth
Zadaniem Bluetooth Special Interest Group było opracowanie specyfikacji
określającej założenia na sprzęt i oprogramowanie nowej technologii połączeń
bezprzewodowych. Chodziło o opracowanie wytycznych po zrealizowaniu których
producenci urządzeń systemu Bluetooth wytwarzaliby urządzenia współpracujące
ze sobą. Specyfikacja Bluetooth jest powszechnie dostępna i wolna od opłat. Ma to
umożliwić szerokie rozpowszechnienie technologii. Założenia przewidywały
zapewnienie połączeń radiowych na małą odległość 10 m. Przy tak małych
odległościach możliwa jest łączność przy bardzo małym poborze mocy rzędu
1 mW. Dzięki temu Bluetooth można stosować w małych urządzeniach użytku
osobistego zasilanych bateriami. Bluetooth służy do przesyłania informacji audio
(nie tylko głos ludzki) oraz do przesyłania danych. Operuje na zakresie
częstotliwości, na które na całym świecie nie jest wymagana licencja.
Bluetooth Special Interest Group, zajmuje się nie tylko założeniami
technicznymi, w jej skład wchodzą następujących grupy robocze:
- Grupa interfejsu radiowego,
- Grupa oprogramowania opracowująca specyfikację stosu protokołów,
- Grupa zastosowań zajmująca się tworzeniem profili zastosowań,
- Grupa zgodności, która prowadzi testowanie, ujednolicanie i realizację
procesu certyfikacji,
- Grupa zagadnień prawnych, pracująca nad porozumieniami
członkowskimi i nad zagadnieniami własności intelektualnej,
- Grupa marketingowa, promująca technologię oraz określająca wymagania
marketingowe, które technologia ma spełniać.
4. Podstawy technologii Bluetooth
Bezprzewodowa technologia Bluetooth bazuje na częstotliwościach radiowych
RF (radio frequency). Pasmo 2,4 GHz w którym pracuje Bluetooth nie podlega
licencjonowaniu na całym świecie. W paśmie określanym jako ISM (industry,
scientific, medical) działają też inne systemy i kuchenki mikrofalowe. Dlatego
Bluetooth przewiduje przeciwdziałanie interferencji. Widmo częstotliwości
podzielone jest na 79 kanałów o szerokości 1 MHz. Zastosowano proces
rozproszenia widma ze skakaniem po częstotliwościach FHSS (frequency hopping
spread spectrum). W czasie sekundy 1600 razy zmieniany jest kanał (jeden z 79)
55
na którym prowadzona jest transmisja. Odbiornik i nadajnik muszą stosować ten
sam algorytm zmiany kanałów. Transmisje danych odbywają się z prędkością
1 Mbit/s (wg specyfikacji 1.0), obecnie nawet do 3 Mb/s (rok 2008).
5. Piconet – Pikosieć Bluetooth
Jeżeli dwa urządzenia Bluetooth nawiązują połączenie, to jedno jest nadrzędne
– Master, a drugie podrzędne – Slave. Każde z urządzeń może być Master albo
Slave zależnie od konfiguracji (urządzenia mogą zamienić się funkcjami Master
i Slave). Urządzenie Master określa reguły doboru częstotliwości i algorytm
skakania po kanałach – według systemu FHSS. Master może komunikować się
z siedmioma urządzeniami Slave, które są w stanie aktywnym i z 255
urządzeniami w stanie „zaparkowanym”. Bluetooth jest opracowany przy
założeniu niskiego poboru mocy przez pikosieć. W związku z tym, urządzenia
mogą być w różnych trybach pracy gwarantujących różny pobór mocy.
W trybie aktywnym Slave cały czas nasłuchuje oczekując transmisji
z urządzenia Master. W trybie przeszukiwania (sniff )urządzenie Slave nasłuchuje
komunikatów tylko okresowo. W trybie wstrzymania (hold) Slave może
w określonym przedziale czasu całkowicie przestać nasłuchiwania komunikatów.
Urządzenia w trybie zaparkowanym nie są aktywnymi elementami pikosieci, ale
utrzymują synchronizację z urządzeniem Master w trybie największej
oszczędności energii. Synchronizacja polega na jednoczesnej zmianie
częstotliwości pracy. Master może pracować jednocześnie z siedmioma
urządzeniami będącymi w którymś z trybów pracy : aktywny, przeszukiwanie,
wstrzymanie.
Oprócz wymienionych trybów pracy, oszczędności energii służy funkcja
adaptacyjnej mocy nadawczej. Dzięki tej funkcji kontrolowany jest poziom
sygnału podczas transmisji między Master i Slave.
Model pikosieci Bluetooth to model komunikacji równy z równym (peer to
peer), oparty na sieci zbliżeniowej. Możliwe jest spontaniczne utworzenie sieci
„Ad hoc” przez urządzenia Bluetooth, które znajdą się w swym obszarze działania
(10 m). Gdy dwa urządzenia znajdą się w swym obszarze działania (10 m), to są
w stanie automatycznie nawiązać połączenie. Takie połączenie nie musi być
nawiązane w każdym przypadku. Urządzenia mogą być tak zaprogramowane, aby
nawiązywały tylko pewne rodzaje połączeń (uwierzytelnionych), albo żeby
odrzucały wszystkie połączenia. Urządzenie Slave w jednej pikosieci może być
jednocześnie urządzeniem Slave w kilku innych pikosieciach . Urządzenie Slave
w jednej pikosieci może być jednocześnie urządzeniem Master w innej pikosieci.
Sieci Piconet mogą nakładać się na siebie (przez zawieranie wspólnych urządzeń
Slave). Tworzy się wtedy sieć rozproszona zwana Scatternet.
6. Stos protokołów Bluetooth
W celu zapewnienia bezproblemowej współpracy urządzeń Bluetooth
pochodzących od różnych producentów grupa SIG opracowała specyfikację 6
protokołów określających wymagania odnośnie sprzętu i oprogramowania.
1. Na poziomie najniższym umieszczono wytyczne do projektowania nadajników
i odbiorników Bluetooth, zapewniających stabilność częstotliwości, tłumienie
zakłóceń, dopuszczalne interferencje między kanałami i moc nadawczą.
56
2. Pasmo podstawowe – Baseband packet
Określone są tutaj zasady tworzenia połączeń i wybór sekwencji skakania po
częstotliwościach oraz zarządzanie trybami pracy – sterowanie mocą i funkcjami
związanymi z bezpieczeństwem. Określono strukturę przesyłanych pakietów
przenoszących dane i strukturę do trzech pakietów zawierających pliki audio .
3. Warstwa menadżera połączeń – LMP (link manager protocol). Warstwa ta
odpowiedzialna jest za zawarcie połączenia z drugim urządzeniem Bluetooth.
Przeprowadzane jest uwierzytelnianie połączenia.
4. Warstwa interfejsu między modułem Bluetooth a urządzeniem macierzystym
(host) – HCI (host controller interface).
Warstwy określone jako 1, 2, 3 realizowane są przez moduł Bluetooth
produkowany przez różne firmy jako układ scalony. Natomiast producent całego
urządzenia może dalsze warstwy umieścić we własnym kontrolerze, połączonym
z modułem Bluetooth zgodnie z opisem warstwy HCI.
5.Warstwa protokołu kontroli połączenia logicznego i adaptacji L2CAP (logical
link control and adaptation protocol). Warstwa ta, między innymi, umożliwia
podział danych wysyłanych do modułu Bluetooth na segmenty o odpowiedniej
długości oraz umożliwia połączenie pakietów danych otrzymywanych z modułu
Bluetooth w jeden duży pakiet. Zasadnicza rola L2CAP to dostosowanie wielu
istniejących już aplikacji i protokołów transportowych do wymagań interfejsu
Bluetooth.
6.Grupa protokołów pośredniczących. Protokoły te umożliwiają warstwie aplikacji
korzystanie z komunikacji z modułem Bluetooth poprzez znane już od dawna
protokoły:
RFCOMM – wirtualny port szeregowy.
SDP (Service Discovery Protocol) – protokół wyszukiwania usług. W związku
z tym, że tworzone są sieci Ad hoc, poprzez zbliżenie się urządzenia Bluetooth do
połączonych już w sieć urządzeń, konieczne jest rozpoznanie jakie usługi
reprezentuje nowo wprowadzony element. Nowa konfiguracja musi być stworzona
automatycznie.
OBEX (infrared object exchange). Protokół wymiany obiektów w podczerwieni.
Umożliwiona jest współpraca z aplikacjami napisanymi dla transmisji
w podczerwieni, zdefiniowanymi poprzednio przez IrDA – Infrared Data
Association.
Protokoły TCP/IP oraz PPP służą do połączenia urządzenia Bluetooth z WAP
Wireless Access Protocol , oraz z siecią LAN poprzez punkty dostępowe.
Protokoły komend AT są komendami modemu, które były często wykorzystywane
przez stare aplikacje, komunikujące się z modemem przez port szeregowy.
TCS (Telephony Control Protocol) stosowane są do sterowania połączeniami
telefonicznymi. TCS wykorzystywane są do sterowania połączeniami głosowymi,
jak i połączeniami transmisji danych.
7. Grupa aplikacji. Grupa aplikacji odnosi się do oprogramowania, które znajduje
się powyżej stosu protokołów wymienionych w punktach 1 do 6. Jest to
57
oprogramowanie dostarczane przez producentów urządzeń, dostawców
oprogramowania, czy przez inne osoby korzystające ze stosu protokołów w celu
opracowania zestawu funkcji , służących użytkownikowi urządzenia Bluetooth.
7. Zastosowania Bluetooth
Łączność bezprzewodowa Bluetooth pozwala na zestawianie połączeń między
kilkoma urządzeniami położonymi w bliskiej odległości od siebie. Mogą to być
zastosowania w mieszkaniu, małej firmie lub samochodzie. Bluetooth pozwala
wyeliminować kable między komputerem a drukarką, myszką, i innymi
akcesoriami. Drukarka może współpracować bez kabli z kilkoma komputerami
położonymi nawet w innym pomieszczeniu.
Bluetooth, który jest stosowany w prawie każdym typie telefonu
komórkowego, umożliwia bezprzewodowe podłączenie słuchawki do prowadzenia
rozmów czy słuchania muzyki. Stosowane są połączenia Bluetooth do
przekazywania zdjęć z aparatu fotograficznego do komputera. W nowych
modelach telewizorów zawierających Bluetooth można wyświetlać zdjęcia
zrobione telefonem komórkowym na ekranie telewizora. Również możliwe jest
słuchanie dźwięku w słuchawce bezprzewodowej.
Możliwe jest wykonanie punktów do pobierania opłat za rożne usługi przez
połączenie Bluetooth z telefonem komórkowym nabywcy. Możliwa jest wymiana
wizytówek między użytkownikami telefonów komórkowych przez Bluetooth, co
jest darmowe i nie wymaga połączenia GSM. Inny przykład zastosowania to
Ericsson Blipnet – sieć połączonych ze sobą wielu nadajników Bluetooth
umieszczonych wzdłuż jakiejś trasy. Nadajniki te przez połączenie przewodowe
podłączone są do Blip Servera. Sieć taka umożliwia śledzenie ruchu ruchomych
stacji Bluetooth, na przykład telefonów komórkowych noszonych przez klientów
sklepu, albo osobę odwiedzającą jakieś biuro. Zależnie od aplikacji, możliwe jest
prowadzenie różnych transmisji danych i głosu przez użytkownika niosącego
telefon z Bluetooth wzdłuż trasy sieci Blipnet.
8. Zakończenie
Specyfikacja Bluetooth daje duże możliwości wprowadzania nowych
zastosowań poprzez konstruktorów i programistów korzystających z modułów
Bluetooth produkowanych przez producentów układów scalonych. Dzięki
zdefiniowaniu interfejsu możliwe jest zastosowanie tej technologii
w konstrukcjach wielu użytkowników z różnych firm. Specyfikacja opisująca
również wymagania na oprogramowanie zapewnia współpracę różnych urządzeń
z firm z całego świata.
Literatura
Brent A.Miller, Chatschik Bisdikian, Ph.D. Uwolnij się od kabli
[1]
Bluetooth Wyd. Helion ISBN 83-7197-968-1
[2]
Kim Topley J2ME Almanach , Wyd. Helion ISBN 83 –7361-118-5
[3]
Bruce Hopkins, Ranjith Antony, Bluetooth for Java , Apress ISBN 159059-078-3
[4]
On – The new world of communication, Ericsson 4- 2000
[5]
www.bluetooth.com
58
W NUMERZE:
Nauczanie baz danych - doœwiadczenia szkoleniowe Instytutu Maszyn
Matematycznych, Tadeusz Kuroczycki
INSTYTUT MASZYN MATEMATYCZNYCH
Przetwarzanie tekstu - analiza potrzeb s³uchaczy na podstawie doœwiadczeñ
szkoleniowych Instytutu Maszyn Matematycznych, Andrzej Abramowicz
Arkusze kalkulacyjne - doœwiadczenia szkoleniowe Instytutu Maszyn
Matematycznych, Krzysztof £ysoñ
Metodyka treningu wielopoziomowego operatorów robotów, Andrzej
Kaczmarczyk, Marek Kacprzak, Andrzej Mas³owski
Tworzenie oprogramowania trena¿erów operatorów robotów mobilnych,
Marek Kacprzak, Andrzej Kaczmarczyk, Andrzej Mas³owski
Przetwarzanie kodu - czyli jak dzia³a kompilator, Piotr Zduñczyk
TECHNIKI
KOMPUTEROWE
BIULETYN INFORMACYJNY
Technologia bezprzewodowa Bluetooth, Jerzy S³omczyñski
1
2008
ISSN 0239-8044
Warszawa 2008

Podobne dokumenty