Hol tart ma a programozás? Új programozási nyelvek, technológiák és alkalmazástípusok az oktatásban Kőnig Tibor
Amiről szó lesz Milyen nyelv(ek)en programozzunk? Milyen technológiákra figyeljünk? Milyen programokat készítsünk?
Milyen nyelv(ek)en programozzunk? Egy analógia „Manapság a latin nyelv egyre inkább visszakapja korábbi szerepét az oktatásban. Nem véletlenül, hiszen egy páratlanul gazdag kultúra értékeit közvetíti, másfelől pedig a latin nyelv ismerete jelentős mértékben megkönnyíti nemcsak az újlatin nyelvek (olasz, francia, spanyol, portugál, román), hanem más nyugati nyelvek, így például az angol elsajátítását is.” Betts Gavin: Latin nyelvkönyv „Pascal is a basic and easy to learn language. Using it teaches you important programming principles which can be applied to most other programming languages. It will also teach you skills to think through tasks and also other skills which can be applied to many areas (…)” Pascal – A Tutorial, http://library.thinkquest.org/27297
Milyen nyelv(ek)en programozzunk? A nyelv értékei Alkalmazhatóság Hány helyen, szakterületen „beszélik”, használják? Kifejezőerő Milyen gazdag és részletes a „szókincse”? Fejlődőképesség Képes-e új szavak, kifejezések, szerkezetek befogadására? Tanulhatóság Mennyi ideig tart az alapszintű elsajátítása? Megtanulható-e anyanyelvi szinten?
Milyen nyelv(ek)en programozzunk Milyen nyelv(ek)en programozzunk? Egy nyelv mind fölött, egy nyelv kegyetlen… A különböző feladatok és felkészültség más-más eszközt igényelnek korszerű objektum-orientált nyelvek szakterület-specifikus nyelvek dinamikus nyelvek vizuális nyelvek
Milyen nyelv(ek)en programozzunk? Korszerű objektum-orientált nyelvek Példák Microsoft Visual Basic C# Java Delphi Részletek a délutáni előadásokon
Milyen nyelv(ek)en programozzunk? Szakterület-specifikus nyelvek ‘ Kód az adatbázis-adatok gyűjteménybe olvasásához ‘ ... For Each oStudent In oStudents If oStudent.Class = "4a" And oStudent.ExamsCompleted = True Then oStudent.Class = "5a" End If Next Egy tipikus procedurális nyelv (Visual Basic) UPDATE Students SET Class = "5a" WHERE Class = "4a" AND ExamsCompleted = True Egy szakterület-specifikus nyelv (SQL) Dim 4aStudents = From Student in Students _ Where Student.Class = "4a" And Student.ExamsCompleted = True _ Select Student Language Integrated Query, LINQ (Visual Basic)
Milyen nyelv(ek)en programozzunk? Dinamikus nyelvek A hagyományos fejlesztés: munka programozó-fordító-telepítő-tesztelő ciklus komoly hardver/szoftver, szintaxis, folyamatok Ez gyakran az „ágyúval verébre” esete algoritmus-tesztelés, könnyűsúlyú webes alkalmazások Dinamikus nyelvek interpreter, rugalmas nyelvtan és típusok, egyszerű bővíthetőség Példák: Python, Ruby, a régiek közül JavaScript
Milyen nyelv(ek)en programozzunk? Vizuális nyelvek A folyamatok leírására használt vizuális jelek az általános programozásban is bevethetők Példa: Visual Programming Language
Milyen nyelv(ek)en programozzunk? Korszerű objektum-orientált és szakterület-specifikus nyelvek Language Integrated Query (LINQ) Dinamikus nyelvek IronPython Vizuális nyelvek Visual Programming Language DEMO
Amiről szó lesz Milyen nyelv(ek)en programozzunk? Milyen technológiákra figyeljünk? Milyen programokat készítsünk?
Milyen technológiákra figyeljünk? A kód önmagában kevés Programjaink nem légüres térben futnak majd szabványokra épülő integráció kell Nem minden szabvány sikeres CORBA, EDI Egyszerűség, újrafelhasználhatóság XML webszolgáltatások RIA-k mashup-ok
Milyen technológiákra figyeljünk? eXtensible Markup Language (XML) Az adatok leírásának és tárolásának új, szabványos módja rugalmasan bővíthető, hierarchikus adatszerkezet sokféle adattípus szöveges, jól olvasható formátum eszközök a szerkezet leírásához (XSD), az adatok eléréséhez (XPath, LINQ) és átalakításához (XSLT) Minden korszerű alkalmazás képes az előállítására és felhasználására példa: Microsoft Office 2007, SQL Server 2005
Milyen technológiákra figyeljünk? Rich Internet Application (RIA) Böngészőben futó, de az asztali környezettel összemérhető megjelenítést és szolgáltatásokat nyújtó alkalmazás Példák Microsoft Silverlight, Adobe Flash web-szolgáltatás XML dinamikus nyelv RIA
Milyen technológiákra figyeljünk? Mashup Létező internetes alkalmazások szolgáltatásait és adatait újszerűen kombináló megoldás az eredmény több, mint a részek összege Példa Microsoft Popfly
Milyen technológiákra figyeljünk? Adatleírás, -tárolás és -elérés XML RIA-k Expression Blend, Silverlight Mashup-ok Popfly DEMO
Amiről szó lesz Milyen nyelv(ek)en programozzunk? Milyen technológiákra figyeljünk? Milyen programokat készítsünk?
Milyen programokat készítsünk? A célközönség: diákok Fontos a (szinte) azonnali visszajelzés és sikerélmény erre a dinamikus nyelvek a legjobbak Előnyös az érdeklődési körhöz kapcsolódó felhasználási terület játékok (logikai, táblás, ügyességi) multimédia-alkalmazások (médialejátszók, interaktív osztályképek) robotok (mesterséges intelligencia)
Milyen programokat készítsünk? Multimédia-alkalmazások Digitális videók, zene, fényképek – már ma is számítógépen találhatók Weblapkészítés helyett webes multimédia-alkalmazás létrehozása a HTML továbbra is szükséges beavatás a multimédia-formátumokba és az új megjelenítési technológiákba (XAML) a jogtiszta tartalom fontosságának hangsúlyozása Példa: Microsoft Expression Media Encoder
Milyen programokat készítsünk? Robotok Lego MINDSTORMS NXT központi egység (kijelző, nyomógombok) 3 szervomotor távolság-, fényesség-, hangerősség-mérő és nyomásérzékelő egyszerű vizuális fejlesztői környezet Microsoft Robotics Studio professzionális vizuális és hagyományos fejlesztői környezet szimulált és valódi robotok (pl. az NXT) programozásához
Milyen programokat készítsünk? Médialejátszó Expression Encoder, Blend és Silverlight Robot Lego MINDSTORMS NXT Robotics Studio DEMO
Amiről szó volt A programozási nyelvek és a kapcsolódó technológiák fejlődése nem állt meg az informatika tantárgy sem maradhat le A világ változik, a programozási feladatokat a mából és a fiatalok életstílusából célszerű kiválasztani így jobban érzékelik majd a számítástechnika szerepét Érdemes minél hamarabb megismerkedni az új szoftverekkel!
További információk Programozási nyelvek Technológiák Játékok Egyebek LINQ: http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx IronPython: http://www.codeplex.com/IronPython Technológiák Expression Studio: http://www.microsoft.com/expression Silverlight: http://www.microsoft.com/silverlight Popfly: http://www.popfly.com Játékok Lego MINDSTORMS NXT: http://mindstorms.lego.com Robotics Studio: http://msdn2.microsoft.com/en-us/robotics Egyebek Az előadó blogja: http://blogs.msdn.com/tibork-on-ms A rendezvény honlapja: http://www.microsoft.com/hun/tantov2007
Kőnig Tibor http://blogs.msdn.com/tibork-on-ms Köszönöm a figyelmet! Kőnig Tibor http://blogs.msdn.com/tibork-on-ms