Szybko, łatwo i efektywnie z KUKA.Sim
Dzięki intuicyjnemu interfejsowi oraz licznym funkcjom i modułom KUKA.Sim stanowi optymalne rozwiązanie, zapewniające maksymalną wydajność podczas programowania offline. Prosty i wydajny edytor KRL (KUKA Robot Language) oferuje dwa widoki: dla ekspertów i dla początkujących. Dzięki temu wizualne drzewo programu umożliwia programowanie nawet bez znajomości KRL. Stwórz optymalne schematy dla instalacji produkcyjnych już we wczesnej fazie projektowej. Przesuń inteligentne komponenty metodą „przeciągnij i upuść” z obszernej biblioteki w żądane miejsce. Sprawdź alternatywy i zweryfikuj koncepcje wymagające minimalnego nakładu środków. A ponieważ ruch jest wykonywany w czasie rzeczywistym, można dokładnie obliczyć czasy cyklów. Na końcu można udostępnić symulacje w różnych formatach dla niemal każdego urządzenia: od aplikacji mobilnych po pulpitowe, od 2D do 3D.
Wprowadzenie
Języki C i C++ od wielu lat są jednymi z najczęściej stosowanych zarówno w przemyśle IT, jak i w instytucjach naukowo-badawczych. Szczególną rolę spełniają od dawna m.in. w telekomunikacji, przemyśle motoryzacyjnym i w produkcji gier, a ostatnio również w systemach "Internetu rzeczy" (IoT). Dlatego zapotrzebowanie na programistów znających C++ jest ciągle ogromne.
Kurs jest wprowadzeniem do programowania w C++. Obejmuje elementy programowania proceduralnego, obiektowego, generycznego i funkcyjnego istotne z punktu widzenia współczesnych zastosowań języka. Jego nauka odbywa się w kontekście zagadnień kluczowych dla każdego programisty, a dotyczących m.in. architektury komputera, zarządzania pamięcią, projektowania i analizy algorytmów oraz struktur danych, a także wzorców projektowych i testowania oprogramowania.
Adresaci kursu
Osoby bez kierunkowego wykształcenia zarówno już związane z branżą IT, jak również poszukujące takiej pracy. Kurs umożliwi uczestnikom uzupełnienie i uporządkowanie posiadanej wiedzy z zakresu nie tylko języka C++, ale także podstaw programowania ułatwiających dalszą naukę (także innych języków).
Wymagania wobec kandydatów
Kandydaci na kurs powinni znać podstawy programowania w dowolnym języku.
Atuty kursu
zakres materiału odpowiadający kursom przygotowawczym prowadzonym przez firmy z branży IT dla kandydatów do pracy,
nastawienie na zrozumienie kluczowych zagadnień dla każdego programisty, ułatwiających dalszą naukę (także innych języków),
kadra z wieloletnim doświadczeniem zarówno dydaktycznym (prowadzenie zajęć na studiach, w tym podyplomowych, i kursach realizowanych na zamówienie dla firm z branży IT), jak również w przemyśle IT (role programisty i architekta oprogramowania, prowadzenie rozmów rekrutacyjnych),
świadectwo ukończenia.
Zakres tematyczny kursu
Pojęcia podstawowe:
pliki vs. .h (nagłówkowe); proces kompilacji: kompilacja vs. interpretacja, kod źródłowy, kod maszynowy/asembler, narzędzia qmake i cmake; preprocesor/makra/kompilacja warunkowa,
Programowanie proceduralne:
deklaracja/definicja/inicjalizacja, zasięg nazw, typedef vs. deklaracja "using", wnioskowanie typu (auto/decltype), typy i rozmiary danych, konwersje typów/rzutowanie, wejście/wyjście (C vs. C++), funkcje, struktury sterujące, operatory bitowe, organizacja pamięci programu, zarządzanie pamięcią, stałe/zmienne lokalne/globalne, statyczne, dynamiczne; tablice, wskaźniki (w tym do funkcji) i referencje, struktury, unie, pola bitowe; const vs. constexpr; moduły, przestrzenie nazw, dyrektywa "using",
Programowanie obiektowe:
klasy (konkretne i abstrakcyjne), obiekty, metody, kontrola dostępu (w tym funkcje/klasy zaprzyjaźnione), konstruktory, destruktory; dziedziczenie vs. agregacja/kompozycja, inicjalizacja, polimorfizm inkluzyjny/"podtypowanie" i funkcje wirtualne, operatory definiowane przez użytkownika; wyjątki, noexcept, poziomy "exception safety",
Elementy programowania uogólnionego:
programowanie generyczne vs. generatywne, polimorfizm parametryczny, szablony funkcji i klas, elementy biblioteki standardowej (kolekcje i algorytmy),
Elementy programowania funkcyjnego:
cechy stylu (paradygmatu) funkcyjnego; funkcje wyższego rzędu, anonimowe obiekty funkcyjne/wyrażenia lambda,
Zarządzanie zasobami:
idiom RAII, "rule of three" vs. "rule of five", wskaźniki "unique_ptr" i "shared_ptr", semantyka przenoszenia ("move semantics"), idiom "copy-and-swap", typy "move-only",
Podstawy programowania aplikacji w Qt, testy jednostkowe,
Architektura komputera (podstawy, perspektywa programisty):
struktura procesu, zarządzanie pamięcią, reprezentacja liczb,
Elementy algorytmiki i wybrane struktury danych:
rekursja (w tym strukturalna), złożoność obliczeniowa (czasowa, pamięciowa); wybrane struktury danych - tablice, zbiory, mapy, stosy, kolejki, listy; drzewa (poszukiwań binarnych), grafy; wybrane algorytmy - wyszukiwanie, sortowanie, najkrótsze ścieżki w grafie.
Organizacja kursu
Czas trwania: 20 spotkań 4-godzinnych (od 17.45 do 21.00)
Forma zajęć: mini wykłady, ćwiczenia laboratoryjne/warsztaty
Liczba uczestników: min. 12, maks. 16
Język wykładowy: polski
Forma i warunek zaliczenia: uzyskanie pozytywniej oceny z testu końcowego
Polecane materiały pomocnicze:
Bjarne Stroustrup: Język C++ Kompendium Wiedzy, Helion 2014
Stephen Prata: Język C++. Szkoła programowania, Helion 2012
Jerzy Grębosz: Opus Magnum C++11, Helion 2017
Kierownik kursu: dr inż. Roman Dębski
Szczegółowe informacje o procesie rekrutacji otrzymają Państwo na adres e-mail podany w zgłoszeniu uczenictwa
Podczas programowania warto ułatwić sobie życie korzystając z zintegrowanego środowiska programistycznego ( ang. IDE )
IDE jest zestawem wszystkich programów, których potrzebuje programista, najczęściej z interfejsem graficznym. IDE zawiera :
kompilator,
linker
edytor
debugger ( zwykle )
Dzięki niemu otrzymujemy :
Kolorowanie składni
Automatyczne formatowanie kodu
Inteligentne uzupełnianie kodu
Wsparcie dla debuggera
Przeglądanie kodu
Możliwość rozszerzenia IDE (własne snippety, generację kodu)[1]
Jest wiele programów tego typu: [2]
wieloplatformowe : VSCode Oracle Studio Code::Blocks dla Windows jak i Linux, Eclipse oparte na Javie, (współpracuje z MinGW i GCC), Emacs Geany dla systemów Windows i Linux; współpracuje z MinGW i GCC, NetBeans multiplatformowy, darmowy do ściągnięcia na stronie, Vim
tylko dla Windows: Microsoft Visual C++ (MS VC++), w wersji komercyjnej lub darmowej; Borland C++ Builder dostępny za darmo do użytku prywatnego, Dev-C++ dla Windows, ma dwie wersje: zawierającą kompilator GCC i druga bez niego. wxDev-C++ dla Windows, nowsza wersja Dev-C++ Pelles C,
tylko dla Linuksa: KDevelop (Linux) dla KDE, Anjuta dla Gnome
tylko dla Mac: Xcode dla Mac OS X 10.2.8 i nowszy kompatybilny z procesorami PowerPC i Intel (możliwość stworzenia Universal Binary),
Istnieją również specjlistyczne programy do analizy kodu, np. Frama C
Leave a Comment