Bevezetés. Dr. Iványi Péter



Hasonló dokumentumok
Bevezetés. Dr. Iványi Péter

Programozás alapjai (ANSI C)

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Programozási nyelvek 6. előadás

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Adatbázis rendszerek. dr. Siki Zoltán

Programtervezés. Dr. Iványi Péter

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

A szoftverfejlesztés eszközei

4. Programozási nyelvek osztályozása. Amatőr és professzionális

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

Szoftver-technológia I.

Bevezetés az informatikába

Internet programozása. 1. előadás

Informatikai alapismeretek Földtudományi BSC számára

Számítógép architektúra

Programozás alapjai Bevezetés

IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata

Java I. A Java programozási nyelv

Programzás I gyakorlat

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba

A TANTÁRGY ADATLAPJA

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

Ismerkedjünk meg a Linuxszal!

Adatbázis és szoftverfejlesztés elmélet

Modellező eszközök, kódgenerálás

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

SZOFTVERFEJLESZTÉS. Földtudományi mérnöki mesterszak / Geoinformatikus-mérnöki szakirány. 2017/18 II. félév. A kurzus ebben a félévben nem indult

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Tájékoztató. Használható segédeszköz: számológép

INFORMATIKAI ALAPISMERETEK

Java Programozó képzés A&K AKADÉMIA 2019.

C programozás. 1 óra Bevezetés

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

A B rész az Informatikai szakmai angol nyelv modul témaköreit tartalmazza.

A SZÁMÍTÓGÉPRENDSZEREK SZOFTVERE

Verifikáció és validáció Általános bevezető

INFORMATIKA - VIZSGAKÖVETELMÉNYEK. - négy osztályos képzés. nyelvi és matematika speciális osztályok

Fordítóprogramok. Aszalós László szeptember 7.

Informatika tanítási módszerek

Trendek a nyílt forráskódú térinformatikai fejlesztésekben

ME Szoftverfejlesztés

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

TestLine - GINOP teszt Minta feladatsor

.NET (Dot-NET) #1 (Bevezetés)

Clang Static Analyzer belülről

Rekurzió. Dr. Iványi Péter

Nyilvántartási Rendszer

Szoftveripar és üzleti modellek

IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata

Fordító Optimalizálás

Történeti áttekintés

SZOFTVER = a számítógépet működtető és az azon futó programok összessége.

A TANTÁRGY ADATLAPJA

Programozási nyelvek (ADA)

A szoftverfejlesztés eszközei

Interaktív, grafikus környezet. Magasszintû alkalmazási nyelv (KAL) Integrált grafikus interface könyvtár. Intelligens kapcsolat más szoftverekkel

Tarantella Secure Global Desktop Enterprise Edition

GPU Lab. 5. fejezet. A C++ fordítási modellje. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Virtualizáció. egy hardveren több virtuális rendszer működik egyszerre, virtuális gépekben futó önálló vendég (guest) operációs rendszerek formájában

FELÜLVIZSGÁLATI JEGYZŐKÖNYV MELLÉKLETE (I-UNI16F1_ TANF) TANF.ME {.{W... Szoftver utolsó változtatás időpont ja: december 12.

Bevezetés, platformok. Léczfalvy Ádám

Orvosi készülékekben használható modern fejlesztési technológiák lehetőségeinek vizsgálata

A programozás alapjai

30 MB INFORMATIKAI PROJEKTELLENŐR

A Microsoft terminálszolgáltatás ügyfél oldali hardverigényének meghatározása

Logikai programozás ADMINISZTRATÍV KÉRDÉSEK KÖVETELMÉNYRENDSZER FŐBB PONTOK NÉHÁNY BIZTATÓ SZÓ

Programozási nyelvek JAVA EA+GY 1. gyakolat

Kiszolgálók üzemeltetése. Iványi Péter

A számítástechnika fejlődése

Fejlesztési tapasztalatok multifunkciós tananyagok előállításával kapcsolatban Nagy Sándor

Programozási technológia 1.

SZERZŐ: Kiss Róbert. Oldal1

Programozás elmélete

Az ekovut költségvetés követő alkalmazás web-es környezetben működik, adatait SQL adatbázisban tárolja.

Az IBM WebSphere Multichannel Bank Transformation Toolkit V7.1 felgyorsítja a többcsatornás alkalmazásfejlesztést

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

A szerzõrõl... xi Bevezetés... xiii

Operációs rendszerek

Iman 3.0 szoftverdokumentáció

UNIX operációs rendszer bemutatása. A UNIX története, fejlesztésének céljai.

Visual Studio 2012 és MSDN. Csomagok és licencelés

FELÜLVIZSGÁLATI JEGYZŐKÖNYV MELLÉKLETE (I-UNI15F1_ TANF) TANF.ME-01 I-UNI15F1 I ... ~~~?... MATRI tanúsítási igazgató

Internetes alkalmazásfejlesztő képzés tematika oktatott modulok

Párhuzamos programozási platformok

A számítógépes feladatok a várt megoldáshoz egyértelmű utalásokat tartalmazzanak.

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Napjainkban a korábbiaknál is nagyobb szükségünk van arra, hogy eszközeink rugalmasak legyenek és gyorsan igazodjanak a változó környezethez.

Bevezetés az informatikába

Gyakorlati vizsgatevékenység A

Internet-hőmérő alapkészlet

Bevezetés az informatikába

HAWK-3. Az OMSZ saját fejlesztésű időjárási megjelenítő rendszere

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

Párhuzamos programozási platformok

A Clipper evolúciója

UNIX / Linux rendszeradminisztráció

Átírás:

Bevezetés Dr. Iványi Péter

Programozási készség Számos munka igényel valamilyen szintű programozási készséget Grafikus a képfeldolgozót, Zenész a szintetizátort, Programozó a számítógépet programozza. Nem csak készség, hanem szórakozás, illetve lehetőség a kreativitásra

Mit tanulhatunk? Kritikus olvasás Analitikus gondolkodás Kreatív szintézis Részletekre való odafigyelés Szinte mindenkinek meg kell tanulnia programozni!!!

A programozás lépései 1. Probléma leírása és adat definíció 2. A program viselkedésének informális leírása 3. A viselkedés bemutatása példákkal 4. A program általános szerkezetének, elrendezésének megtervezése 5. A konkrét program elkészítése 6. Tesztelés, hibakeresés és a részletek javítása * Dokumentáció készítés (felhasználói, fejlesztői)

A programozás lépései

Példa: Probléma megfogalmazása A 35 Celziusz fok hány Fahreinheit fok? A számítógép nem ért magyarul, így nekünk kell megtanulni a számítógép nyelvét, hogy utasításokat tudjunk adni neki. A számítógép nyelve a programozási nyelv (Az USA-ban a programok jogilag elfogadott emberi kifejezési formák! A szólásszabadság részei.)

Programkészítés A programozási nyelvek nagyon primitívek, a nyelvtanuk nagyon korlátozott Ráadásul a számítógépek is primitívek, mert csak azt csinálják amit mondunk nekik A legkisebb hiba a programban fatális hibát okozhat és nem a kívánt számítást végzi el A programozást gyakorolni kell Ezt fogjuk csinálni a félév során!!!

Szintaktika Programozási nyelv A forma, a reprezentáció Szemantika Az értelme, a koncepciója annak amit reprezentál Szintaktika Programozás I. Szemantika Problémaosztályok és algoritmusok

Bábel tornya

Programozási nyelvek Alacsony szintű: Gépközeli,közvetlenüla processzor utasításkészletére épül Gépi kód: A memóriábanlévő utasításkódokat közvetlenül aprogramozó adjameg. Assembly: Aközvetlen kódok helyett rövid,könnyen megjegyezhető szavakat alkalmazunk akönnyebb megjegyzés, ajobb átláthatóság kedvéért.jobban áttekinthető címzési módok,megjegyzések lehetősége, külön fordíthatóegységek,teszik könnyebbéamég mindig agép közvetlen utasításkészletére épülő programozást.

Programozási nyelvek Magasszintű: Cél ajobban áttekinthető minél egyszerűbb,gyorsabb programozás, mely érdekében kompromisszumot kell kötnia futássebesség és atárfoglalás kárára.

Programozási nyelvek

Programozási nyelvek osztályozása Procedurális nyelvek Kifejezések sorozatát hajtjuk végre mely valamilyen eredményhez vezet Változókat, ciklusokat használunk Program állapotok Funkcionális nyelvek Nem igazán használunk tárolt állapotokat Nem ciklusokat hanem rekurziót használunk Függvényeket hívunk és a visszatérési értékeket használunk Változók módosítása mellékhatás!

Programozási nyelvek osztályozása Objektum-orientált nyelvek Minden egy objektum Script nyelvek Általában interpretált, egyszerű elkezdeni, de könnyű elrontani Lehet procedurális, objektum-orientált, stb. Logikai nyelvek Deklaratív kijelentéseket teszünk és a program meghatározza a konzekvenciákat

Programozási nyelvek osztályozása Nem igazán osztályok, inkább Programozási stílusok Programozási módszerek, technikák Például: C-ben is lehet objektum orientált módon programozni

Még egy osztályozás Statikus nyelvek (compiler-linker) A fordító program a forrásprogramot gépi kódra fordítja és így a program futtatásához se a forráskód se a fordító nem kell. C, C++, Fortran, Common LISP Dinamikus nyelvek (interpreter) Az értelmező program a forrásprogramot utasításként értelmezi és hajtja végre. LISP, Scheme Just-In-Time (JIT) fordító Java, Python, Scheme

Programozási nyelvek másként

Programozási nyelv generációk Generation Language (generáció) 1GL: gépi kód 2GL: assembly (mnemonic) 3GL: magasszintű procedurális FORTRAN, PASCAL, C 4GL: probléma orientált Funkcionális: LISP Logikai: PROLOG Adatbázis kezelés: SQL Objektum-orientált: C++, JAVA 5GL: természetes nyelvek?? (szándék leíró nyelvek)

Szoftver projektek

IBM 360 Első általános célú operációs rendszer 1964 Több módszer helyességét is bizonyította a project: Frederick Brooks: The Mythical Man-Month, Addison- Wesley Professional, 1995 370-es sorozat és zseries is innen származtatható Még mindig kompatibilisek visszafelé

Apolló irányító rendszere MIT Instrumentation Lab 1969 Apollo 11 holdra szállásánál használták Raytheon computer 8 Kbyte memória

Híres projektek Mosaic az első Web browser Deep Blue sakk automata VisiCalc első táblázatkezelő UNIX operációs rendszer Linux kernel...

Windows és Linux Web szerver Web serverek: Apache Internet Information Services Egy HTML oldal megjelenítése Minden függvényhívásnál lehet probléma és elvben támadható a gép

Linux Web szerver

Windows Web szerver

Windows és Linux Web szerver

Űrsikló

Űrsikló Space Shuttle Onboard System 2004, 2005, 2006 verziók Mindegyik 420 000 sornyi kód Csak 3 hiba Utolsó 11 verzióban csak 17 hiba!!! Más szoftverben általában 5000 hiba lenne 260 ember írta 8-5 -ig munka Nincs túlóra, csak kivételes esetben

Űrsikló A szoftver csak annyira jó mint a specifikációja GPS használata a kódban A kódnak csak 1.5%-át érinti (6366 sornyi kód) A változtatáshoz tartozó specifikáció: 2500 oldal A teljes program specifikációja 30 kötet 40 000 oldal

Flexibilis szoftver: Űrsikló 3000 követelmény változás 1970 óta 382000 sornyi kód hozzáadása, változtatása, törlése 900 szoftver build, 175 patch

Félresikerült projektek 1. BAE Automated Systems Denver International Airport Csomagok kezelésére fejlesztett szoftver 1993 október Annyit hibázott, hogy csak 16 hónappal később nyittot meg a reptér Veszteség: 1.1 millió dollár naponta

Félresikerült projektek 2. Federal Aviation Administration, USA Háromszor próbáltak készítettni egy repülőirányitási rendszert Háromszor több száz millió dollár