Úvod do C# ERIK KUČERA INTELIGENTNÉ MECHATRONICKÉ SYSTÉMY| PREDNÁŠKA 1 Vyššie programovacie jazyky vo výpočtovej inteligencii – C#
Programovací jazyk C#
5 týždňov
Moderný objektovo orientovaný jazyk
Použiteľný v prostredí Windows, ako aj Mac OS X
Rýchly rozvoj jazyka, čím ďalej viac žiadaný zamestnávateľmi
V rámci Universal Windows Platform je vyvinutá aplikácia spustiteľná ako na počítači, tak aj mobilnom zariadení alebo Microsoft HoloLens
Možnosť pomocou neho programovať aj natívne aplikácie pre Android a iOS - https://www.xamarin.com/ C# na Fakulte elektrotechniky informatiky (možno neaktuálny pohľad)
Cca v akademickom roku 2010/2011 – Modelovanie v softvérovom inžinierstve
Bol to predmet pre doménu MASUS, ktorý vyučoval Ján Hanák z Ekonomickej univerzity
Väčšina študentov výkladu nerozumela pre vysokú náročnosť predmetu, nakoľko základy OOP nemali študenti vžité Prečo sa učiť jazyk C# v spojení s výpočtovou inteligenciou?
• C# sa stáva čím ďalej používanejší Všeobecný • Upevnenie si princípov objektovo orientovaného programovania rozhľad • Microsoft ponúka veľa cloudových služieb pre výpočtovú inteligencie
• Podľa pracovníka Accenture patrí C# a Azure medzi najžiadanejšie skilly v pracovných Použitie ponukách v praxi • C# je podľa Xamarinu najvhodnejší jazyk pre tvorbu mobilných aplikácií Výučbové materiály
Na web stránke predmetu v sekcii Materiály
Momentálne jedna z najmodernejších kníh o C# je Head First C#, 3rd Edition - O'Reilly Media
Tretie vydanie je doplnené o tvorbu GUI pomocou XAML (Windows Presentation Foundation)
Druhé vydanie namiesto XAML obsahuje použitie staršieho spôsobu tvorby GUI – Windows Forms
Existuje mnoho slovenských a českých pdf materiálov priamo od Microsoftu zadarmo Obsah predmetu
Čomu sa budeme venovať a čo sa pravdepodobne naučíte:
Základy jazyka C#
Zopakovanie princípov OOP
Menej známe pojmy v rámci OOP – partial class/method, generické triedy, anonymné triedy, lambda výrazy, await, async...
Prehľad najmodernejších cloudových funkcionalít Microsoftu v oblasti výpočtovej inteligencie
Komunikační boti, využitie Azure cloudových služieb pre Internet of Things
Čomu sa nebudeme venovať:
Návrhové vzory
Zásady správneho programovania
Minulý rok sa predmet volal Metódy výpočtovej inteligencie Čo je mechatronika?
Mechatronika spája 4 oblasti: Mechaniku Informatiku (IKT) Automatické riadenie Elektronické systémy Čo je C#? ERIK KUČERA INTELIGENTNÉ MECHATRONICKÉ SYSTÉMY | PREDNÁŠKA 1 Programovací jazyk C#
C# (vyslovované anglicky ako C Sharp, /siː šaːp/, doslova to označuje notu cis) je vysokoúrovňový objektovo orientovaný programovací jazyk vyvinutý firmou Microsoft zároveň s platformou .NET Framework, neskôr schválený štandardizačnými komisiami ECMA (ECMA-334) a ISO (ISO/IEC 23270)
Microsoft si za základ pre nový jazyk C# zobral C++ a jazyk Java
C# bol vytváraný tak, aby bol jednoduchým, moderným, objektovo orientovaným jazykom pre všeobecné použitie Programovací jazyk C#
Jazyk a jeho implementácie by mali poskytovať podporu pre nasledovné princípy softvérového inžinierstva ako silná typová kontrola, kontrola ohraničenia polí, detekciu pokusov na využitie neinicializovaných premenných a automatickú správu pamäte
C# je jazyk zameraný na tvorbu aplikácií pre hostované, ako aj embedded systémy s ohľadom na veľkú škálovateľnosť od veľmi veľkých systémov používajúcich sofistikované operačné systémy po veľmi malé zariadenia pre špecializované úlohy História C#
Viac o vývoji jazyka na stránke https://cs.wikipedia.org/wiki/C_Sharp C#7
https://blog.xamarin. com/getting-started- c-7/ .NET Framework
.NET Framework (číta sa ako dot net) je softvérový framework vyvinutý Microsoftom
Zahŕňa veľkú knižnicu tried zvanú Framework Class Library (FCL) a zabezpečuje jazykovú interoperabilitu (každý jazyk vie použiť kód napísaný v inom jazyku)
Programy napísané pre .NET Framework sa spúšťajú v softvérovom prostredí nazvanom Common Language Runtime (CLR) – aplikačnom virtuálnom stroji, ktorý zabezpečuje služby ako bezpečnosť, správu pamäte a výnimiek (exceptions)
V rámci projektu .NET Core sú funkcionality .NET Frameworku dostupné aj pre MacOS a Linux Vývoj aplikácií v C# na/pre Windows ERIK KUČERA INTELIGENTNÉ MECHATRONICKÉ SYSTÉMY | PREDNÁŠKA 1 Visual Studio 2017
Visual Studio 2017 Community Edition – ZADARMO (prihlásenie cez Microsoft konto pomocou údajov z AIS) Konzolové aplikácie
Klasické C# konzolové aplikácie pre Windows
Konzolové aplikácie využívajúce .NET Core (pravdepodobne prenositeľné na Linux a MacOS) Windows Forms
Windows Forms (WinForms) je knižnica tried pre tvorbu grafického rozhrania, ktorý je súčasťou .NET frameworku
Poskytuje platformu pre vytváranie aplikácií pre počítače a tablet PC
Významnejšie sa používala do roku cca 2012
Nedbá na obrazovky s vysokým rozlíšením Windows Presentation Foundation (WPF)
Nástupca Windows Forms, má oproti nim mnoho výhod
Windows Presentation Foundation (WPF, predtým Avalon) je knižnicia tried v .NET Frameworku od verzie 3.0 pre tvorbu GUI
Bol súčasťou už Windows Vista, napriek tomu sa stále hojne používalo Windows Forms
Pre tvorbu „užívateľsky bohatého rozhrania“ (RUI) využíva značkovací jazyk XAML, ktorý umožňuje oddeliť funkčnosť a vzhľad aplikácie
Všetka grafika (vrátane samotných WPF okien) funguje pomocou knižníc Direct3D Windows Presentation Foundation (WPF) Universal Windows Platform (UWP) Windows Store applications
Universal Windows Platform (UWP) je „platform-homogeneous“ architektúra pre aplikácie vytvorená Microsoftom a prvýkrát predstavená vo Windows 10
Cieľom tejto softvérovej platformy je pomôcť vývojárom vytvárať univerzálne aplikácie pre počítač, mobilné zariadenia a ďalšie
Pre dizajn aplikácii sa využíva XAML Universal Windows Platform - video Xamarin
Možnosť vyvíjania Xamarin aplikácií aj pod Windows
Viac info v sekcii MacOS SharpDevelop
Open-source alternatíva k Microsoft Visual Studio
Nainštalované v učebniach
Podpora jazykov C#, Visual Basic .NET, Boo, F#, IronPython a IronRuby
Podpora Windows Forms, Windows Presentation Foundation (WPF), Entity Framework
Posledná verzia: 5.1.0 / 14 April 2016 Vývoj aplikácií v C# na/pre MacOS a iOS ERIK KUČERA INTELIGENTNÉ MECHATRONICKÉ SYSTÉMY | PREDNÁŠKA 1 Vývojárske prostredia pre Mac
Visual Studio for Mac – odporúčané, rebrandované Xamarin Studio
Visual Studio Code – ide v podstate len o editor kódu, podobné ako napr. Sublime
Xamarin Studio - deprecated
MonoDevelop Konzolové aplikácie
Konzolové aplikácie využívajúce .NET Core
Možné spustiť cez príkazový riadok alebo IDE Visual Studio for Mac Xamarin
Xamarin je softvérová spoločnosť vlastnená Microsoftom (ku kúpe došlo relatívne nedávno – február 2016), založená v máji 2011 inžiniermi, ktorí vytvorili Mono, Mono for Android a MonoTouch, čo sú cross-platformové implementácie Common Language Infrastructure (CLI) a Common Language Specifications (zvané tiež Microsoft .NET)
Vývojári môžu použiť nástroje Xamarinu na vývoj natívnych Android, iOS a Windows aplikácií s natívnym používateľským prostredím a zdieľať zdrojový kód naprieč týmito platformami Xamarin Xamarin.iOS Xamarin.Android Xamarin.Mac Xamarin.Forms Xamarin.Forms Xamarin.Forms Xamarin.Forms vs Xamarin.iOS/Android Xamarin.Forms Xamarin.Forms Xamarin.Forms - video MonoDevelop a GTK#
Inou možnosťou ako vyvíjať C# aplikácie s GUI pre MacOS je využitie IDE MonoDevelop
Mono je open source implementácia .NET Frameworku
GUI sa vyvíja pomocou GTK#
http://www.monodevelop.com/
http://www.mono-project.com/ Vývoj aplikácií v C# na/pre Linux ERIK KUČERA INTELIGENTNÉ MECHATRONICKÉ SYSTÉMY | PREDNÁŠKA 1 Konzolové aplikácie
Konzolové aplikácie využívajúce .NET Core
Možné spustiť cez príkazový riadok alebo Visual Studio Code MonoDevelop a GTK#
Pravdepodobne jedinou možnosťou ako vyvíjať C# aplikácie s GUI pre Linux je využitie IDE MonoDevelop
Mono je open source implementácia .NET Frameworku
GUI sa vyvíja pomocou GTK#
http://www.monodevelop.com/
http://www.mono-project.com/ MonoDevelop na Linuxe - video Xamarin.Forms ERIK KUČERA INTELIGENTNÉ MECHATRONICKÉ SYSTÉMY | PREDNÁŠKA 1 Skrátené video – link na celé / skrátené Použité zdroje
http://wikipedia.org
https://www.xamarin.com
https://www.microsoft.com/ Jazyk Python ERIK KUČERA INTELIGENTNÉ MECHATRONICKÉ SYSTÉMY| PREDNÁŠKA 1 Programovací jazyk Python
Vysokoúrovňový interpretovaný programovací jazyk pre všeobecné použitie
Tvorca – Guido van Rossun – v roku 1991
Založený na jednoduchej čitateľnosti kódu – namiesto zátvoriek { } povinné odsadzovanie kódu – zvyšuje sa prehľadnosť kódu
Bloky v programe sa určujú odsadením (Tab alebo 4 medzery)
Podporuje dynamické typovanie, automatickú správu pamäte, rôzne programovacie paradigmy (objektovo-orientované, imperatívne, funkcionálne a procedurálne programovanie)
Poskytuje rozsiahlu a zrozumiteľnú štandardnú knižnicu Python ako jazyk pre výučbu
Python búra zažitú predstavu, že jazyk vhodný pre výučbu programovania pre začiatočníkov je zároveň nevhodný pre prax (Pascal)
Mnoho stredných škôl experimentuje s výučbou Pythonu Rýchlosť Pythonu
Python je z hľadiska výkonu pomalý jazyk, avšak vývoj v ňom je vďaka jednoduchej syntaxi a mnoho knižniciam veľmi rýchly
Nižšie vidíme príklad, koľko hodín trvalo napísanie programu pre spracovanie textových reťazcov v jednotlivých jazykoch Na čo je dobrý Python? – link Flexibilita
Python omnoho viac odpúšťa chyby, takže budete môcť zostaviť a spustiť program, kým nedosiahnete problémovú časť
Možnosť spúšťať kód „po riadkoch“ (keďže je interpretovaný) napr. ako v Matlabe
Ako dynamicky napísaný jazyk je Python pomalý, pretože je príliš flexibilný a stroj by musel robiť veľa odkazov, aby sa uistil, čo je definícia niečoho, čo spomaľuje výkon Pythonu
Existujú alternatívy, ako napríklad PyPy, ktoré sú rýchlejšie implementácie Pythonu Využitie a komunita
Python má na StackOverflow viac ako 86K sledovatelov a cez 500K otázok týkajúcich sa Pythonu
Štatisticky sú Pythonové otázky 3. najodpovedanejšie
Na Angelovom výpise je Python 2. najžiadanejšou zručnosťou a tiež zručnosť s najvyšším priemerným platom
S nárastom Big Data sú vývojári spoločnosti Python v úlohe data scientist, a to najmä preto, že Python je ľahko integrovaný do webových aplikácií na vykonávanie úloh, ktoré vyžadujú strojové učenie Budúcnosť Pythonu
Podľa indexu TIOBE je Python štvrtým najpopulárnejším programovacím jazykom zo 100
So vzostupom Ruby on Rails a nedávno Node.js, používanie Pythonu ako hlavného prototypového jazyka pre backendový vývoj webových stránok sa trochu zmenšilo, hlavne preto, že má fragmentovaný ekosystém MVC
S nástupom Big Data, ktoré sa stávajú čoraz dôležitejšími, sa Python stal zručnosťou, ktorá je viac žiadaná ako kedykoľvek predtým, najmä preto, že sa dá integrovať do webových aplikácií
Zen Pythonu – základná filozofia jazyka Inštalácia a IDE ERIK KUČERA INTELIGENTNÉ MECHATRONICKÉ SYSTÉMY| PREDNÁŠKA 1 Inštalácia Pythonu
V Linuxe by mal mať zväčša súčasťou systému
Windows – 1. variant
Inštalácia Pythonu z oficiálnej web stránky
Použitie IDE podľa vlastného výberu
Inštalácia balíčkov pomocou príkazu pip cez príkazový riadok
Windows – 2. variant
Inštalácia distribúcie Anaconda, ktorá zjednodušuje manažment Pythonu
Použitie IDE podľa vlastného výberu alebo poskytnuté Anacondou
Inštalácia balíčkov pomocou príkazu conda cez príkazový riadok Anacondy
Pri Anaconde sa môžu objaviť problémy so spustením => reinštalácia Windowsu alebo variant 1
Python IDLE
Python IDLE je základným IDE pre Python
Nainštaluje sa rovno so základným balíčkom Python
Obsahuje podobný command line ako v Matlabe a tiež editor skriptov PyCharm
Je vývojové prostredie od spoločnosti Jet Brains, ktorá poskytuje vývojové prostredia aj pre mnohé ďalšie programovacie jazyky
Je platené, ale existuje EDU verzia
Obsahuje automatické doplňovanie kódu
Má zabudovanú konzolu ako aj množstvo príkladov pre začiatočníkov v jazyku Python
Obľúbené u softvérových inžinierov Jupyter Notebook
Funguje v internetovom prehliadači
Dodáva sa priamo s distribúciou Anaconda Spyder
Dodáva sa priamo s distribúciou Anaconda
Obľúbený vo vedeckej komunite => niekomu môže pripomínať prostredie Matlabu Programovanie v Pythone ERIK KUČERA INTELIGENTNÉ MECHATRONICKÉ SYSTÉMY| PREDNÁŠKA 1 Hello World Konzolová kalkulačka Porovnávacie operátory, true/false Podmienky Cyklus While Cyklus for Cyklus for a funkcia range() Zoznamy - list
Zoznam sa vytvára pomocou hranatých zátvoriek a jednotlivé prvky v ňom oddelíme čiarkou
Zoznam (list) môžeme vytvoriť aj funkciou range() z predošlého slajdu
V Pythone funguje aj záporné indexovanie – posledný prvok má index -1 Orezávanie zoznamov
Jednotlivé argumenty určujúce, čo chceme vybrať, môžeme aj vynechať
Môžeme teda napísať [::2] , čo nám vyberie každý druhý prvok zoznamu
K zoznamom existuje mnoho užitočných funkcií Reťazce Dvojrozmerné pole Knižnice
Knižnice pred použitím treba nainštalovať pomocou príkazového riadku pomocou príkazu pip alebo conda Tvorba GUI
V jazyku Python máme k dispozícii viaceré knižnice, pričom najpoužívanejšie sú Tk (Tkinter), Gtk, Qt a wxWidgets
Tkiner je základný grafický modul jazyka Python, ktorý je dodávaný pri inštalácii
Je dostupný všade, kde je Python nainštalovaný a funguje rovnako na všetkých operačných systémoch
Tento modul je súčasťou všetkých verzií Pythonu
Medzi jednu z nevýhod tohto modulu patrí nedostatočná dokumentácia (?) Vizualizácia údajov v Pythone ERIK KUČERA INTELIGENTNÉ MECHATRONICKÉ SYSTÉMY| PREDNÁŠKA 1 Matplotlib
Matplotlib je Python balíček, zameraný na vytváranie kvalitných grafov v rôznych formátoch
Dokáže generovať grafy, histogramy, stĺpcové grafy, chybové grafy, rozptylové grafy - to všetko len s pár riadkami zdrojového kódu
Okrem vytvárania grafov, matplotlib prichádza so súborom základných nastavení, umožňujú upravovať rôzne parametre
Vďaka tomu môžeme meniť základ skoro každej vlastnosti grafu ako hrúbka čiary, farba, štýl, atď. Matplotlib Porovnanie Matlabu a Pythonu Porovnanie Matlabu a Pythonu Použité zdroje
Wikipedia
Oficiálna web stránky Python
Jakub Huňady, František Rajnič, Michal Slezák - Výpočtová inteligencia v Pythone
Juraj Pap
http://udemy.com
http://www.gymzv.sk/~rolik.jakob/moja/languages/python.html
https://www.itnetwork.cz/