Z pamiętnika młodego programisty

19
Z pamiętnika młodego programisty IX Dolnośląski Festiwal Nauki 14-21 IX 2006

description

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 - PowerPoint PPT Presentation

Transcript of Z pamiętnika młodego programisty

Page 1: Z pamiętnika młodego programisty

Z pamiętnika młodego programisty

IX Dolnośląski Festiwal Nauki 14-21 IX 2006

Page 2: Z pamiętnika młodego programisty

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

Page 3: Z pamiętnika młodego programisty

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)

Page 4: Z pamiętnika młodego programisty

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ą.

Page 5: Z pamiętnika młodego programisty

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.

Page 6: Z pamiętnika młodego programisty

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.

Page 7: Z pamiętnika młodego programisty

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

Page 8: Z pamiętnika młodego programisty

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

Page 9: Z pamiętnika młodego programisty

• 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

Page 10: Z pamiętnika młodego programisty

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

Page 11: Z pamiętnika młodego programisty

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.

Page 12: Z pamiętnika młodego programisty

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.

Page 13: Z pamiętnika młodego programisty

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.

Page 14: Z pamiętnika młodego programisty

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.

Page 15: Z pamiętnika młodego programisty

Programowanie obiektowe

• Programowanie obiektowe jest metodą tworzenia oprogramowania, w której programy są organizowane jako kolekcje obiektów.

• Java jest językiem programowania obiektowego.

Page 16: Z pamiętnika młodego programisty

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.

Page 17: Z pamiętnika młodego programisty

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.

Page 18: Z pamiętnika młodego programisty

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

Page 19: Z pamiętnika młodego programisty

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