Z pamiętnika młodego programisty
-
Upload
marsden-reese -
Category
Documents
-
view
38 -
download
1
description
Transcript of Z pamiętnika młodego programisty
Z pamiętnika młodego programisty
IX Dolnośląski Festiwal Nauki 14-21 IX 2006
Gdzie jesteśmy?Politechnika Wrocławska
Rektor
Prof. dr hab. inż. Tadeusz Luty
Wydział Elektroniki
Dziekan
Prof. dr hab. inż. Andrzej Kasprzak
Kierunek Elektronika i Telekomunikacja
Opiekun Kierunku
Prof. dr hab. inż. Tadeusz Więckowski
Instytut Informatyki, Automatyki i Robotyki
Dyrektor Instytutu
Prof. dr hab. inż. Czesław Smutnicki
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
Zakład Sterowania i Optymalizacji
Kierownik Zakładu
Prof. dr hab. inż. Włodzimierz Greblicki
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 – EZI
Przykł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
Wyniki XX Ogólnopolskiego Konkursu na najlepsze prace magisterskie z informatyki, zorganizowanego w 2003 roku przez Polskie Towarzystwo
InformatyczneRozstrzygnię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)
Zastosowania Inżynierii Komputerowej w Technice – EZI
Przykładowy sukces
• 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– [email protected]
Kontakt
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ęzykach pierwszej 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
IntensjaDefinicjaPomysł
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