Podoski Péter és Zabb László. Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök.

Slides:



Advertisements
Hasonló előadás
Szerver oldali programozás
Advertisements

Keresés a számítógépes katalógusokban
Készítette: Kun Béla.  Operációs rendszernek nevezzük a számítástechnikában a számítógépeknek azt az alapprogramját, mely közvetlenül kezeli a hardvert,
Hatékonyságvizsgálat, dokumentálás
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Piacképes programozói tudás a középiskolában
Iratkezelő rendszer fejlesztése WPF alapokon
Podoski Péter és Zabb László Témavezetők: Dr. Fekete István, Veszprémi Anna ELTE IK.
3. A programozás eszközei, programozás-technikai alapismeretek
A webes tesztelés jövője
Microsoft fejlesztőeszközök a szakképzésben Farkas Bálint Visual Studio 2008.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke A programozás alapjai 1. (VIEEA100) 9. előadás.
Adatbányászati technikák (VISZM185)
Erősen összefüggő komponensek meghatározása
JavaScript.
Programozási alapismeretek
Fejlett Programozási Technológiák II. Világos Zsolt 12. gyakorlat.
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév.
Persa György Témavezető: Szabó Csanád Pázmány Péter Katolikus Egyetem Információs Technológiai Kar 1.
Célkeresztben az érettségi! A legjobb és leghatékonyabb eszközt akarjuk Kevesebb hibalehetőség, barátságos hibaüzenetek Kiváló fejlesztőeszköz Gyorsan.
PIC processzor és környezete
Szombathely Dinamikus WEB programozás: PHP és JSP.
Vizuális és web programozás II.
Bevezetés a C++ programozási nyelvbe
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
A programozás alapjai A számítógép számára a feladat meghatá- rozását programozásnak nevezzük. Ha a processzor utasításait használjuk a feladat meghatározásához,
A PHP (PHP: Hypertext Preprocessor) nyílt forráskódú, számítógépes szkriptnyelv, legfőbb felhasználási területe a dinamikus weboldalak készítése. Emiatt.
Számítógépes üzemmódok
Web Application for Resource Planning
Podoski Péter és Zabb László
1.3. Pascal program felépítése Az els ő program. Program ; … Begin … End. Program fej Deklarációs rész Végrehajtó rész.
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
Programozási nyelvek.
PHP oktatási tapasztalatok
Bevezetés a PRADO keretrendszerbe Kardos Gergely.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Two countries, one goal, joint success!
Műszer vezérlő - kezelő program GPI-745A teszterhez.
Programozás. Programozási nyelvek: Gépi nyelv A számítástechnika őskorában egyedüli lehetőség volt a gép bitsorozattal való programozása. Minden processzor.
A szoftver, szoftvertípusok
1 Szélességi Bejárás Györgyi Tamás – GYTNAAI.ELTE 2007 Március 22 Algoritmusok És Adatszerkezetek 2 Gráfalgoritmus S b a d e f h g c.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Podoski Péter és Zabb László. Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök.
Objektumvezérelt rendszerek tervezése 7. óra – Iterator, State, Interpreter © Szőke Gábor.
A StoreWizard webáruház bemutatása
ProgramozásProgramozás célja hosszabb számítások elvégzése ill. kiíratása akkor érdemes programot írni, ha sok számolni való van illetve ha ugyanazt az.
Algoritmus és adatszerkezet Tavaszi félév Tóth Norbert1 Floyd-Warshall-algoritmus Legrövidebb utak keresése.
Programozás, programtervezés
Függvények a C nyelvben 1 Függvényeket a következő esetekben szokás írni: Ha ugyanazt a tevékenységet többször is el kell végeznünk ugyanolyan típusú,
Grafikus programozás Készítette: Csernok László
DLL használata és készítése Feladat
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Vizuális programozás Előadó: Csapó Gábor.
Informatikai gyakorlatok 11. évfolyam
Alapok Gyakorlat 2015/16 őszi szemeszter Automatizálási tanszék.
A jövő HR megoldása Fejér Tamás. perbit.insight Munkavállaló kezelő Munkakör kezelő Toborzás kezelő Továbbképzés kezelő.
kialakulása, fejlődése, generációk
Programok készítése és futtatása. Integrált fejlesztői környezet (IDE) tartalmaz:  szövegszerkesztőt a program forráskódjának szerkesztésére,  fordítóprogramot.
Programstruktúrák. Program A program utasítások olyan sorozata, amely a számítógépen önállóan képes megoldani egy feladatot. A program háttértáron futtatható.
Alkalmazásfejlesztés F#-ban Dunaújvárosi Főiskola Kiss Gyula mérnökinformatikus hallgató Nemzeti Tehetség Program Tehetségútlevél Program „NTP-TÚP ”
Adatstruktúrák Algoritmusok Objektumok
Programozási nyelvek Programozási alapismeretek
Programozási alapok.
Programozási nyelvek típusossága.
Compiler illetve interpreter nyelvek
Beépített függvények használata programozáskor
1. Bevezetés A programozásba
Előadás másolata:

Podoski Péter és Zabb László

Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök előnyeit és hiányosságait Kidolgoztunk egy saját megjelenítő rendszert, amiben az algoritmusok vizualizációjához szükséges eszközök széles palettája elérhető

Algoritmus-vizualizáció ma Célja: főleg oktatási területre (könnyebb ismertetés és megértés), olykor algoritmusok fejlesztésekor is segíthet a hibakeresésben Nehézségek: egy vizualizáció elkészítéséhez könnyebb egy új, testreszabott megjelenítő programot írni, mint találni egyet, ami megfelel az igényeinknek Jellemző, hogy egyszerű, böngészőben futtatható Java appletekkel valósítják meg a demonstrációt Néhány példa következik…

Dijkstra algoritmusa

Legrövidebb út keresése Ausztráliában

Jeliot – program-vizualizáció

MatrixPro – az egyik legáltalánosabb

Az igény megfogalmazása Elvárások egy jó vizualizátorral kapcsolatban: Célközönség számára megfelelő megjelenítés Könnyedén lehessen a vizualizációkat módosítani, bővíteni (pl. Hanoi tornyai) Egyszerű telepítés Épüljön be a tanítási folyamatba Ne igényeljen magas szintű programozói tudást

Psimulex - lehetőségek.NET-ben írt nyílt forráskódú keretrendszer Algoritmusok megfogalmazása C-szerű nyelv Beépített fordítóprogram Algoritmusok futtatása Saját virtuális platform Többprocesszoros, akár hálózati emuláció Algoritmusok megjelenítése a virtuális gép változóit megjelenítő általános grafikai könyvtár (WPF) Algoritmusok elemzése Műveletigény, memóriaigény

Saját nyelv Az algoritmusok szempontjából alapvető típusok (skalárisok, konténerek és fák, gráfok) Gyengén típusos imperatív nyelv, C-szerű szintaxissal Típuskonstrukció: rekord Fontosabb vezérlési szerkezetek Felhasználói függvények Több forrásfájl használata Globális változók

Saját virtuális platform Virtuális hálózat, virtuális gép („mini” OS ütemezővel), folyamatok, szálak A virtuális gép processzora futtatja az ún. „Microlex” utasításokat (gépi kódnak megfelelő parancsobjektumokat) Az egyes szálaknak futási és hívási vermük van Az ütemező cserélhető

Fordítás gépi kódra Négy lépésben fordítunk az alacsony szintű utasításkészletre, visitor (látogató) tervminta alkalmazásával

Parancsobjektumok A „parancs” tervminta alapján készültek Mindegyik gépi utasítás egy-egy parancsobjektum Az aktuális futási környezeten dolgoznak Három fő csoportjuk van: Vezérlés-átadó parancsobjektumok (pl. Jump) Konkrét (főleg aritmetikai) műveleteket végrehajtó parancsobjektumok Változókat, adatszerkezeteket kezelő parancsobjektumok

Saját típusrendszer Aránylag gazdag típuskészlet Java-hoz hasonlóan közös őstípus BaseType == Object Primitív típusok + gyűjtemények + fák + gráfok Reflection-re épül, emiatt könnyen elérhető az egész.NET osztályhierarchia Felhasználói típus a rekord, mezőinek kezdőértéket lehet megadni Gyengén típusosság miatt a konténerekbe tetszőleges típusú elem tehető (pl. listába bináris fák) Automatikus típuskonverziók

Típushierarchia

Saját IDE Funkciók LexLighter (aktuális utasítás színezése) Syntax highlight Léptetési módszerek (hasonlóan a VS-hez + step back) Korszerű IDE, tabok, több forrásfájl kezelése, testre szabható, ergonómikus Nézetek váltása

Saját vizualizáció Dinamikus, változást követő, interaktív adatszerkezetek megjelenítése „Montázs” – tetszőleges elrendezhetőség: Hívási verem megjelenítése Egy-egy lényeges adatszerkezet kiemelése Egymásba ágyazhatóság (fa elemei gráfok) Adatszerkezetek szerkeszthetőek futás közben is

Bináris fák egy sorban

Egy irányítás nélküli gráf szerkesztése

Egy bináris fa szintfolytonos bejárása a Psimulex-ben

Felhasználási területek Oktatás Algoritmusok Programozás Fordító programok (assembly-szerű nyelvek filozófiája) Kutatás Algoritmusok „megalkotása” Elméletek tesztelése és bemutatása Fejlesztés Algoritmikus problémák megoldása itt és aztán implementálása Demonstráció Automatikusan létrejön a megjelenítés, testre szabható, exportálható a program futása, eredménye, csak a programot kell megírni, az inputot megszerkeszteni.

Távlati tervek Párhuzamos programozási eszközök (lock, monitor, erőforrások) teljeskörű bevezetése.NET interopabilitás növelése (a megírt Psimulex nyelvű programból C# vagy IL kódot generálhassunk) Integráció a Visual Studio debuggerébe: intelligens.NET adatszerkezet reflekció + grafikus modul Internetes portál nyitás, ahol pl. algoritmikus problémamegoldó versenyeket lehet indítani, gyorsaság, egyszerűség stb. szempontok szerint pontozva