190 likes | 313 Views
Z pamiętnika młodego programisty. IX Dolnośląski Festiwal Nauki 14-21 IX 2006. Politechnika Wrocławska Rektor Prof. dr hab. inż. Tadeusz Luty. Gdzie jesteśmy?. Wydział Elektroniki Dziekan Prof. dr hab. inż. Andrzej Kasprzak. Instytut Informatyki, Automatyki i Robotyki
E N D
Z pamiętnika młodego programisty IX Dolnośląski Festiwal Nauki 14-21 IX 2006
Politechnika Wrocławska Rektor Prof. dr hab. inż. Tadeusz Luty Gdzie jesteśmy? Wydział Elektroniki Dziekan Prof. dr hab. inż. Andrzej Kasprzak Instytut Informatyki, Automatyki i Robotyki DyrektorInstytutu Prof. dr hab. inż. Czesław Smutnicki Kierunek Elektronika i Telekomunikacja Opiekun Kierunku Prof. dr hab. inż. Tadeusz Więckowski Zakład Sterowania i Optymalizacji Kierownik Zakładu Prof. dr hab. inż. Włodzimierz Greblicki Zastosowanie Komputerów w Technice EZI Opiekun Specjalności Prof. dr hab. inż. Włodzimierz Greblicki Doradca Dziekana ds. Toku Studiów Dr inż. Jerzy Kotowski
Koła Naukowe Studentów • KNS EZI • Opiekun: dr inż. Jerzy Kotowski • Członkowie Koła: • Błażej Józefiak, V rok EZI • Radosław Kaczyński, V rok EZI • KNS Horyzont • Opiekunowie Koła: • Prof. dr hab. inż. Czesław Smutnicki • dr inż. Jerzy Kotowski • Członkowie Koła: • Sławomir Kluczewski, V rok Informatyka, ISI • Bartłomiej Stefanek, V rok, ISI (Inżynieria Systemów Informatycznych)
Charakterystyka specjalności Zastosowania Inżynierii Komputerowej w Technice - EZI • Absolwenci specjalności EZI uzyskują szeroką wiedzę z zakresu wykorzystania metod i środków informatyki, w tym techniki mikroprocesorowej. Nabywają umiejętności • Posługiwania się technikami informatycznymi w pracach inżynierskich, • Tworzenia i wykorzystywania oprogramowania dla komputerów i systemów komputerowych, • Wykorzystywania technik komputerowych dla analizy, projektowania, sterowania, optymalizacji i symulacji systemów (produkcji, sterowania, zarządzania), • Projektowania i eksploatacji urządzeń wykorzystujących technikę mikroprocesorową.
Charakterystyka specjalności Zastosowania Inżynierii Komputerowej w Technice – EZIc.d. • Program kształcenia obejmuje analizę inżynierską, w tym • metody i techniki analizy oraz modelowanie złożonych procesów produkcji, zarządzania, sterowania, • zastosowania badań operacyjnych, • tworzenie modeli na podstawie danych empirycznych, • akwizycję i analizę danych, • bazy danych, • metody numeryczne, • technikę przesyłania informacji w sieciach komputerowych, • projektowanie i uruchamianie specjalizowanych urządzeń mikroprocesorowych.
Charakterystyka specjalności Zastosowania Inżynierii Komputerowej w Technice – EZIc.d. • Dzięki szerokiej wiedzy praktycznej i teoretycznej absolwenci są przygotowani do pracy w zakresie wykorzystywania systemów sieci komputerowych w przedsiębiorstwach, w tym w działach produkcyjnych, zarządzania, zbierania i przetwarzania informacji. • Są również przygotowani do pracy w mniejszych firmach, w tym także usługowych, o szerokim zakresie działalności, np. udzielania konsultacji, opracowywania jednostkowych systemów komputerowych wraz z oprogramowaniem, projektowania, konstrukcji i eksploatacji specjalizowanych urządzeń mikroprocesorowych.
Zastosowania Inżynierii Komputerowej w Technice – EZIPrzykładowe tematy prac dyplomowych • Przetwarzanie sygnałów EKG na stanowisku komputerowym lekarza specjalisty • Modelowanie kształtu i ruchu animowanych postaci • Algorytm sterowania pracą sieci wodociągowej z zanieczyszczeniami • Funkcjonowanie i konfiguracja warstwy sieciowej w systemach Unix – system symulacji sieci komputerowej • Sieci neuronowe w modelowaniu fraktalnych obiektów • Metody redukcji wymiaru w rozpoznawaniu obrazów • Optymalizacja rozmieszczenia elementów elektronicznych w pakiecie • Kompresja falkowa filmów • Instytutowa baza danych pracowników wyższej uczelni • Heurystyczne metody poprawiania rozwiązań konstrukcyjnych w zadaniach optymalizacji rozkroju surowca
Zastosowania Inżynierii Komputerowej w Technice – EZIPrzykładowy sukces Wyniki XX Ogólnopolskiego Konkursu na najlepsze prace magisterskie z informatyki, zorganizowanego w 2003 roku przez Polskie Towarzystwo Informatyczne Rozstrzygnięto XX Ogólnopolski Konkurs PTI (…). Do konkursu zgłoszono 37 prac, wykonanych w roku akademickim 2002/2003 w czternastu krajowych wyższych uczelniach: w AGH (5), w Politechnice Gdańskiej (2), (…) w Politechnice Wrocławskiej (9) (…). Na posiedzeniu w dniu 22 grudnia 2003 we Wrocławiu Komisja Konkursowa w składzie: (…) uwzględniając opinie recenzentów prac konkursowych, po dyskusji ustaliła następujące rozstrzygnięcie konkursu: …………………………… Drugą nagrodę, w wysokości 1,600 zł otrzymał mgr inż. Bartosz Jabłoński, za pracę pt. Metody porównywania generatorów animowanych postaci ludzkich,wykonaną w Politechnice Wrocławskiej (Wydział Elektroniki, Instytut Cybernetyki Technicznej, promotor: dr inż. Ryszard Klempous)
Kontakt • diuna.ict.pwr.wroc.pl • www.eka.pwr.wroc.pl • www.pwr.wroc.pl • www.festiwal.wroc.pl • dr inż. Jerzy Kotowski • Janiszewskiego 11/17, 219 C-3 • +48 71 320 3852 • jerzy.kotowski@pwr.wroc.pl
Co jeszcze mógłby wymyślić Einstein gdyby znał Applety Javy Plan spotkania • Dr inż. Jerzy Kotowski • Wprowadzenie, Idea podejścia obiektowego • Radosław Kaczyński • Programowanie od wczoraj do dzisiaj • Błażej Józefiak • Socrates. System studiów w Wielkiej Brytanii. • Dr inż. Jerzy W. Greblicki • 2+2=11 • Sławomir Kluczewski, Bartłomiej Stefanek • Grupa .net na Wydziale Elektroniki • Jan Górski • PIC • Power Media
Generacje języków programowania • W ciągu ponad 50 lat rozwoju języków programowania powstały ich cztery generacje. • Dla programów napisanych w językachpierwszej generacji(FORTRAN 1, COBOL) charakterystyczny jest wspólny obszar danych globalnych, do którego odwołują się podprogramy. • W językach pierwszej generacji podczas tworzenia oprogramowania możliwe było oddzielenie od siebie różnych danych, ale było to oddzielenie logiczne, a nie programowe. • Cała struktura danych była widoczna dla wszystkich podprogramów, dlatego błąd w jednym z nich mógł mieć katastrofalny wpływ na cały program. • Przy modyfikacji dużego systemu zasadniczą trudnością było utrzymanie spójności oprogramowania, które cechowało się wieloma powiązaniami pomiędzy podprogramami i skomplikowanym przekazywaniem sterowania.
Języki drugiej generacji • Podstawami rozwoju drugiej generacji języków byłą taka modyfikacja podprogramów, by mogły one przekazywać między sobą parametry, być zagnieżdżane i mieć zróżnicowany zakres widoczności deklaracji stałych i zmiennych. • Dzięki mechanizmowi przekazywania parametrów podprogramy stały się procedurami. • Wymienione własności języków drugiej generacji spowodowały powstanie strukturalnych metod projektowania oprogramowania.
Języki trzeciej generacji • Charakterystyczną cechą języków trzeciej generacji była modułowość. • Moduł grupował dane i podprogramy mające ze sobą związek logiczny. • Wyodrębnienie modułów w procesie dekompozycji funkcjonalnej pozwalało na rozdzielenie pracy pomiędzy samodzielnych programistów. • Technologia ta umożliwiła utworzenie większych zespołów projektowych i powstanie bardziej złożonego oprogramowania.
Języki czwartej generacji 4GL • Języki czwartej generacji, zwane językami obiektowymi (np. C++), zmieniają podejście do zagadnienia struktur danych. • Języki obiektowe rozszerzają pojęcie struktury danych o nowy element zwany obiektem (dokładniej typem obiektowym). • Typ obiektowy zawiera zarówno dane, jak i algorytmy posługujące się tymi danymi. • Algorytmy te są często zapisywane w postaci funkcji i procedur, które łącznie określane są jako metody obiektu (funkcje składowe). • Obiekt, jako pojedynczy element programu, może być przypisywany i stosowany jak każdy inny typ danych. • W językach obiektowych moduły zawierają kolekcje obiektów, a nie podprogramów jak to miało miejsce w językach starszych generacji. • Struktura programów napisanych przy wykorzystaniu języków obiektowych jest podobna do grafu. • Fakt ten zmienia w sposób zasadniczy reguły analizy i projektowania oprogramowania.
Programowanie obiektowe • Programowanie obiektowe jest metodą tworzenia oprogramowania, w której programy są organizowane jako kolekcje obiektów. • Java jest językiem programowania obiektowego.
Podejście obiektoweObject Oriented Approach - OOA • Podejście obiektowe modeluje sposób w jaki ludzie rozumieją i przetwarzają rzeczywistość. Przy pomocy tego podejścia ludzie tworzą coś dla ludzi. • Zasadnicza część podstaw teoretycznych podejścia obiektowego składa się z idei dotyczących podstaw ludzkiego myślenia. Korzeni podejścia obiektowego należy szukać w psychologii i w naukach do niej pokrewnych. • Modelowanie sposobu w jaki ludzie rozumieją i przetwarzają rzeczywistość wymaga zrozumienia: • czym są przyswajane przez ludzi pojęcia • dlaczego są istotne • jak ich używamy i jak je przekazujemy.
Dokumentowanie pojęć • Jeżeli posiedliśmy jakieś pojęcie, to oznacza, że możemy się im posługiwać . • Formalizacja dowolnego pojęcia wymaga utworzenia testu do jego identyfikacji. • Intensja - pełna definicja pojęcia i testu, czy pojęcie odnosi się do badanego obiektu czy nie. • Ekstensja - zbiór wszystkich obiektów do których stosuje się dane pojęcie. • Trójka pojęciowa: symboliczna reprezentacja + intensja + ekstensja.
Trójka pojęciowa • Obiekt jest to egzemplarz pojęcia. • Instrument muzyczny jest to dowolne urządzenie zdolne do wydawania melodyjnych i harmonijnych dźwięków. • Fortepian jest instrumentem muzycznym. Symbol pojęcia Intensja Definicja Pomysł Wytłumaczenie pojęcia Ekstensja Zbiór egzemplarzy
Zastosowania podejścia obiektowego • Zarządzanie projektami • Metoda Martina • PRINCE • LFA • Prezentacja zamierzeń – składanie wniosków • Relacyjne bazy danych • OMG, UML • Projektowanie oprogramowania • Praca zespołowa • CASE Computer Aided Software Engineering