Nazwa modułu: Programowanie obiektowe Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3 Wydział: Zarządzania Kierunek: Informatyka i Ekonometria Specjalność: - Poziom studiów: Studia I stopnia Forma i tryb studiów: - Język wykładowy: Polski Profil kształcenia: Ogólnoakademicki (A) Semestr: 3 Strona www: Osoba odpowiedzialna: dr inż. Duda Jerzy (jduda@zarz.agh.edu.pl) Osoby prowadzące: dr Skalna Iwona (skalna@agh.edu.pl) dr inż. Duda Jerzy (jduda@zarz.agh.edu.pl) dr Basiura Beata (bbasiura@zarz.agh.edu.pl) Opis efektów kształcenia dla modułu zajęć Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń) Wiedza M_W001 zna podstawowe zasady obiektowego paradygmatu programowania oraz tworzenia kodu dla środowiska zarządzanego (maszyna wirtualna) IE1A_W21, IE1A_W24 Egzamin,, M_W002 zna i rozumie podstawowe mechanizmy programowania obiektowego: abstrakcję, hermetyzację, dziedziczenie i polimorfizm IE1A_W21, IE1A_W24 Egzamin,, Wynik testu zaliczeniowego M_W003 zna podstawowe zasady tworzenia graficznego interfejsu użytkownika (GUI), programowania sterowanego zdarzeniami oraz podstawowe elementy dla formatek ekranowych IE1A_W11, IE1A_W24 Projekt,, M_W004 zna podstawowe klasy pozwalające na łatwą agregację obiektów (kolekcje oraz kolekcje generyczne) IE1A_W11, IE1A_W21 Egzamin, Umiejętności 1 / 6
M_U001 potrafi utworzyć obiektowy model problemu, określić klasy, ich odpowiedzialność oraz związki pomiędzy klasami IE1A_U06, IE1A_U17, IE1A_U19 M_U002 potrafi odpowiednio zdefiniować klasy (oraz interfejsy) i zapisać ich kod w języku C# (lub Java), wykorzystując specyfikę języka IE1A_U06 M_U003 potrafi wykorzystać środowisko programistyczne (Visual Studio) w celu edycji kodu, jego kompilacji i usuwania błędów oraz projektowania GUI IE1A_U06, IE1A_U10 M_U004 potrafi wraz z zespołem zaprojektować, a następnie utworzyć aplikację zgodną z określonymi wymaganiami funkcjonalnymi IE1A_U10, IE1A_U12, IE1A_U17 Aktywność na zajęciach, Udział w dyskusji, Wykonanie projektu Kompetencje społeczne M_K001 potrafi pracować w zespole i rozwiązywać problemy związane z realizacją projektu oraz prezentować wyniki zespołu IE1A_K02, IE1A_K03, IE1A_K05 Prezentacja, Udział w dyskusji, Zaangażowanie w pracę zespołu M_K002 Potrafi samodzielnie nauczyć się innego języka programowania opartego o paradygmat obiektowy IE1A_U06, IE1A_K06 Egzamin, Udział w dyskusji M_K003 ma świadomość ciągłej potrzeby dostosowywania swojej wiedzy do zmieniających się języków i środowisk programistycznych IE1A_K01, IE1A_K06 Egzamin, Udział w dyskusji Matryca efektów kształcenia w odniesieniu do form zajęć Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć Wykład Ćwiczenia audytoryjne Ćwiczenia laboratoryjne Ćwiczenia projektowe Konwersatori um seminaryjne praktyczne terenowe warsztatowe Inne E-learning Wiedza M_W001 M_W002 zna podstawowe zasady obiektowego paradygmatu programowania oraz tworzenia kodu dla środowiska zarządzanego (maszyna wirtualna) zna i rozumie podstawowe mechanizmy programowania obiektowego: abstrakcję, hermetyzację, dziedziczenie i polimorfizm 2 / 6
M_W003 M_W004 Umiejętności M_U001 M_U002 M_U003 M_U004 zna podstawowe zasady tworzenia graficznego interfejsu użytkownika (GUI), programowania sterowanego zdarzeniami oraz podstawowe elementy dla formatek ekranowych zna podstawowe klasy pozwalające na łatwą agregację obiektów (kolekcje oraz kolekcje generyczne) potrafi utworzyć obiektowy model problemu, określić klasy, ich odpowiedzialność oraz związki pomiędzy klasami potrafi odpowiednio zdefiniować klasy (oraz interfejsy) i zapisać ich kod w języku C# (lub Java), wykorzystując specyfikę języka potrafi wykorzystać środowisko programistyczne (Visual Studio) w celu edycji kodu, jego kompilacji i usuwania błędów oraz projektowania GUI potrafi wraz z zespołem zaprojektować, a następnie utworzyć aplikację zgodną z określonymi wymaganiami funkcjonalnymi Kompetencje społeczne M_K001 M_K002 M_K003 potrafi pracować w zespole i rozwiązywać problemy związane z realizacją projektu oraz prezentować wyniki zespołu Potrafi samodzielnie nauczyć się innego języka programowania opartego o paradygmat obiektowy ma świadomość ciągłej potrzeby dostosowywania swojej wiedzy do zmieniających się języków i środowisk programistycznych - - - - - - - - - - + - - - - - - - - - - + Treść modułu zajęć (program wykładów i pozostałych zajęć) Wykład Języki i paradygmaty programowania Pojęcie paradygmatu. Paradygmat imperatywny, funkcyjny, logiczny (deklaratywny) 3 / 6
oraz obiektowy. Środowisko programistyczne. Środowisko uruchomieniowe (maszyna wirtualna). Podstawy obiektowego projektowania aplikacji Pojęcie abstrakcji, klasy i obiektu. Odpowiedzialność klasy. Metodyka Class- Responsibility-Collaboration (CRC). Podstawowe mechanizmy paradygmatu obiektowego Hermetyzacja, polimorfizm, związki pomiędzy klasami, dziedziczenie i interfejsy. Dynamiczne struktury danych Kolekcje i kolekcje generyczne. Iteratory i pętla foreach. Serializacja obiektów. Programowanie oparte o zdarzenia i tworzenie GUI Pojęcie zdarzenia. Mechanizm delegatów w C1.. Komponenty Windows Forms. Język XML do opisu GUI. Przetwarzanie języka XML. Wprowadzenie do języka XML. Windows Presentation Foundation (WPF). Sposoby przetwarzania języka XML LinqToXML. Testowanie i dokumentacja kodu Testy funkcjonalne i testy jednostkowe. Rodzaje dokumentacji. Wspomaganie dokumentacji kodu w środowiskach programistycznych. Ćwiczenia laboratoryjne Wprowadzenie do języka C# i środowiska VisualStudio Składnia języka C1.. Edycja kodu i jego uruchamianie. Tworzenie aplikacji konsolowych. Praca w środowisku Visual Studio.NET. Projektowanie klas Projekt klasy dla wybranego problemu. Modelowanie związków pomiędzy klasami (karty CRC). Implementacja w języku C1.. Testowanie klasy i poprawianie błędów. Podstawowe typy danych w języku C# i ich konwersja Typy proste i referencyjne. Automatyczne rzutowanie. Parsowanie ciągów tekstowych. Obsługa wyjątków. Tworzenie klas i obiektów w języku C# Hermetyzacja danych, modyfikatory widoczności, getters i setters. Konstruktory. Operator new. Implementacja mechanizmów obiektowych w C# Dziedziczenie i polimorfizm w C1.. Klasy abstrakcyjne oraz interfejsy. Wykorzystanie standardowych interfejsów C2.. Dynamiczne struktury danych Wykorzystanie kolekcji i kolekcji generycznych do agregacji obiektów. Serializacja obiektów: binarna oraz XML. Projekt aplikacji Rozdanie i omówienie tematów projektów. Utworzenie 3-osobowych zespołów i omówienie ról członków zespołu. Projektowanie GUI Tworzenie GUI w technologii Windows Forms. Wykorzystanie podstawowych kontrolek, obsługa zdarzeń. Prezentacja wykonanych projektów 4 / 6
Sprawozdanie zespołów z realizacji projektu w formie krótkiej prezentacji wykonanej aplikacji. E-learning Windows Presentation Foundation (WPF) Opis interfejsu graficznego w XML. Bindowanie danych. Tworzenie prostej aplikacji WPF. Przetwarzanie języka XML w.net. Wprowadzenie do LINQ TO XML Sposoby przetwarzania języka XML w.net. Wprowadzenie do LINQtoXML. Ćwiczenia do samodzielnego wykonania. Język Java a język C# Budowa klas w języku Java. JVM. Podobieństwa i różnice w stosunku do języka C1.. Wykonanie i uruchomienie prostej aplikacji w języku Java. Sposób obliczania oceny końcowej Ocena końcowa wystawiana jest przez prowadzącego wykład jest jako średnia z oceny z egzaminu (waga 0,6) oraz oceny z laboratoriów (waga 0,4). Ocena z laboratoriów wystawiana jest na podstawie ocen uzyskanych z kolokwiów (waga 0,6) oraz oceny z projektu (waga 0,4). Wymagania wstępne i dodatkowe Wymagana znajomość podstaw programowania strukturalnego. Zalecana literatura i pomoce naukowe Literatura podstawowa: 1. B. Meyer: Programowanie zorientowane obiektowo, Helion, Gliwice 2005 2. J. Liberty: C1.. Programowanie, Helion, Gliwice 2006 3. J. Albahari, B. Albahari: C2. 3.0. Leksykon kieszonkowy, Helion, Gliwice 2008 4. MSDN Library: http://msdn.microsoft.com/en-us/library Literatura dodatkowa: 1. A. Boduch: Wstęp do programowania w języku C3., Helion, Gliwice 2006 2. M. Lis: C4.. Ćwiczenia. Wydanie II, Helion, Gliwice 2006 3. K. Rychlicki-Kicior: C5.. Tworzenie aplikacji graficznych w.net 3.0, Helion, Gliwice 2007 4. M. Lis: Praktyczny kurs Java, Wydanie III, Helion, Gliwice 2011 Oprogramowanie 1. Microsoft Visual Studio 2008 lub wyższe z zainstalowanym językiem C6. (lub Mono) 2. Środowisko Java SDK (zalecane z Eclipse lub NetBeans) Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu Nie podano dodatkowych publikacji Informacje dodatkowe Brak 5 / 6
Nakład pracy studenta (bilans punktów ECTS) Forma aktywności studenta Udział w wykładach Udział w ćwiczeniach Przygotowanie do zajęć Samodzielne studiowanie tematyki zajęć Wykonanie projektu Przygotowanie sprawozdania, pracy pisemnej, prezentacji, itp. Udział w zajęciach praktycznych Egzamin lub kolokwium zaliczeniowe Sumaryczne obciążenie pracą studenta Punkty ECTS za moduł Obciążenie studenta 15 godz 15 godz 7 godz 17 godz 10 godz 1 godz 9 godz 1 godz 75 godz 3 ECTS 6 / 6