Programowanie niskopoziomowe
Transkrypt
Programowanie niskopoziomowe
Nazwa przedmiotu: PROGRAMOWANIE NISKOPOZIOMOWE Low-level programming Kierunek: Forma studiów: Kod przedmiotu: Informatyka Stacjonarne Rodzaj przedmiotu: Poziom kwalifikacji: obowiązkowy w ramach treści kierunkowych, moduł kierunkowy ogólny I stopnia C4_11 Rok: II Semestr: IV Rodzaj zajęć: Liczba godzin/tydzień: Liczba punktów: wykład, laboratorium 1W, 2L 4 ECTS PRZEWODNIK PO PRZEDMIOCIE I KARTA PRZEDMIOTU CEL PRZEDMIOTU C1. Zapoznanie studentów z historią procesorów, z ich podstawowymi właściwościami, architekturą i mechanizmami w nich stosowanymi. C2. Poznanie instrukcji wybranego procesora oraz dyrektyw asemblera. C3. Zaznajomienie się studentów z mechanizmami i metodologią programowania niskopoziomowego z wykorzystaniem wybranych przykładów. C4. Nabycie przez studentów praktycznych umiejętności w zakresie posługiwania się systemami programowania niskopoziomowego, stosowania instrukcji procesora oraz zdobycie umiejętności pisania programów w języku niskiego poziomu. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI 1. Wiedza z zakresu techniki cyfrowej, architektury komputerów i podstaw programowania. 2. Znajomość zasad bezpieczeństwa pracy przy użytkowaniu systemów komputerowych. 3. Umiejętność korzystania z różnych źródeł informacji w tym z instrukcji i dokumentacji technicznej. 4. Umiejętności pracy samodzielnej i w grupie. 5. Umiejętności prawidłowej interpretacji i prezentacji własnych działań. EFEKTY KSZTAŁCENIA EK 1 – posiada podstawową wiedzę teoretyczną z zakresu programowania niskopoziomowego, EK 2 – zna historię i właściwości procesorów, EK 3 – posiada wiedzę nt. architektury procesorów, EK 4 – zna instrukcje stałoprzecinkowe procesorów oraz dyrektywy i operatory asemblera, EK 5 – posiada wiedzę umożliwiającą pisanie programów w asemblerze EK 6 – zna możliwości procesorów w zakresie obliczeń rzeczywistych, EK 7 – posiada wiedzę na temat instrukcji tupu SIMD EK 8 – potrafi posługiwać się pakietami umożliwiającymi pisanie programów lub wstawek w języku asemblera, EK 9 – potrafi korzystać z instrukcji wybranego procesora, EK 10 – potrafi zrealizować konstrukcje znane z języków wysokiego poziomu przy użyciu asemblera, EK 11– posiada umiejętność wykonywania obliczeń matematycznych w asemblerze; EK 12 – potrafi przygotować programy z wykorzystaniem instrukcji SIMD. TREŚCI PROGRAMOWE Forma zajęć – WYKŁADY W 1 – Historia i właściwości procesorów. W 2 – Architektura procesora. W 3 – Tryby adresowania. Instrukcje przesyłania. W 4 – Instrukcje arytmetyczne. W 5 – Budowa programu. Dyrektywy i operatory. W 6 – Instrukcje warunkowe i skoku. W 7 – Instrukcje logiczne, przesunięć i rotacji. W 8 – Operacje na znacznikach, bitach i bajtach. W 9 – Operacje na łańcuchach i segmentach. W 10 – Typy rzeczywiste. Podstawowe operacje zmiennoprzecinkowe. W 11 – Operacje funkcji przestępnych. Ładowanie stałych. W 12 – Operacje porównania i sterowania. W 13 – Instrukcje typu SIMD - MMX. W 14 – Instrukcje typu SIMD - SSE. W 15 – Instrukcje typu SIMD - AVX. Forma zajęć – LABORATORIUM L 1 – Pakiety do pisania w asemblerze. L 2 – Proste podprogramy. Uruchamianie krokowe. L 3 – Konstrukcje pętli i instrukcji warunkowych. L 4 – Operacje na wektorach. L 5 – Działania z użyciem macierzy. L 6 – Podprogramy i wykorzystanie stosu. L 7 – Operacje na liczbach BCD. L 8 – Operacje na łańcuchach. L 9 – Podstawowe operacje na liczbach rzeczywistych. L 10 – Funkcje przestępne. L 11 – Obliczenia z wykorzystaniem macierzy rzeczywistych. L 12 – Zastosowanie porównania liczb rzeczywistych. L 13 – Program z zastosowaniem instrukcji typu SIMD - MMX. L 14 – Program z zastosowaniem instrukcji typu SIMD - SSE. L 15 – Program z zastosowaniem instrukcji typu SIMD - AVX. Liczba godzin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Liczba godzin 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 NARZĘDZIA DYDAKTYCZNE 1. – Wykład z wykorzystaniem prezentacji multimedialnych 2. – Ćwiczenia laboratoryjne, opracowanie sprawozdań z realizacji przebiegu ćwiczeń 3. – Przykładowe programy w asemblerze 4. – Instrukcje do wykonania ćwiczeń laboratoryjnych 5. – Strona internetowa z materiałami do przedmiotu 2 SPOSOBY OCENY ( F – FORMUJĄCA, P – PODSUMOWUJĄCA) F1. – ocena przygotowania do ćwiczeń laboratoryjnych F2. – ocena umiejętności stosowania zdobytej wiedzy podczas wykonywania ćwiczeń F3. – ocena sprawozdań z realizacji ćwiczeń objętych programem nauczania F4. – ocena aktywności podczas zajęć P1. – ocena umiejętności rozwiązywania postawionych problemów stało- i zmiennoprzecinkowych zużyciem asemblera – zaliczenie na ocenę* P2. – ocena opanowania materiału nauczania będącego przedmiotem wykładu – zaliczenie wykładu (lub egzamin) * warunkiem uzyskania zaliczenia jest otrzymanie pozytywnych ocen ze wszystkich kolokwiów, OBCIĄŻENIE PRACĄ STUDENTA Forma aktywności Godziny kontaktowe z prowadzącym Średnia liczba godzin na zrealizowanie aktywności 15W 30L 45 h Godziny konsultacji z prowadzącym 5h Zapoznanie się ze wskazaną literaturą 10 h Przygotowanie do ćwiczeń laboratoryjnych 15 h Wykonanie sprawozdań z realizacji ćwiczeń laboratoryjnych i 10 h utrwalenie materiału (czas poza zajęciami laboratoryjnymi) Przygotowanie do zaliczenia Suma SUMARYCZNA LICZBA PUNKTÓW ECTS DLA PRZEDMIOTU Liczba punktów ECTS, którą student uzyskuje na zajęciach wymagających bezpośredniego udziału prowadzącego Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym, w tym zajęć laboratoryjnych i projektowych 15 h 100 h 4 ECTS 2.0 ECTS 2.2 ECTS LITERATURA PODSTAWOWA I UZUPEŁNIAJĄCA 1. Adam Błaszczyk: Win32ASM. Asembler w Windows, Helion 2004, 2. Randall Hyde: Asembler. Sztuka programowania, Helion 2004, 3. Stanisław Kruk: Asembler w koprocesorze, Mikom 2003, 4. Ryszard Goczyński, Michał Tuszyński: Mikroprocesory 80286, 80386 i i486, Komputerowa Oficyna Wydawnicza „HELP” 1991, 5. Michał Tuszyński, Ryszard Goczyński: Koprocesory arytmetyczne 80287 i 80387 oraz jednostka arytmetyki zmiennoprzecinkowej mikroprocesora i486, Komputerowa Oficyna Wydawnicza „HELP” 1992, 6. Intel® 64 and IA-32 Architectures Software Developer’s Manual, 7. G.Syck, Turbo Assembler - Biblia użytkownika, LTP Oficyna Wydawnicza, 2002, 8. A.Rydzewski, Mikrokomputery jednoukładowe rodziny MCS-51, 3 PROWADZĄCY PRZEDMIOT ( IMIĘ, NAZWISKO, ADRES E-MAIL) 1. dr inż. Jarosław Bilski [email protected] MACIERZ REALIZACJI EFEKTÓW KSZTAŁCENIA Efekt kształcenia EK1 EK2 EK3 EK4 EK5 EK6 EK7 EK8 EK9 EK10 EK11 EK12 Odniesienie danego efektu do efektów zdefiniowanych dla całego programu (PEK) K_W06 K_W04 K_W08 K_K01 K_W06 K_W08 K_W06 K_W04 K_W08 K_W04 K_W08 K_W04 K_W08 K_W04 K_W08 K_W04 K_W08 K_W08 K_U09 K_U12 K_W08 K_U09 K_U12 K_W08 K_U09 K_U12 K_W08 K_U09 K_U12 K_W08 K_U09 K_U12 Cele przedmiotu Treści programowe Narzędzia dydaktyczne Sposób oceny C1-3 W1-15 L1-15 1,5 F1-4 P1-2 C1 W1 1,5 P2 C1 W2 1,5 P2 C2,C3 W3-9 1,2,4,5 P1-2 C2,C3 W3-15 1,3-5 P1-2 C2,C3 W10-12 1,3-5 P1-2 C2,C3 W13-15 1,3-5 P1-2 C4 L1,L2 2,4,5 F1-4 C4 W3-15 L2-15 1-5 F1-4 P1 C2-4 W5-7 L3-8 1-5 F1-4 P1 C4 W10-12 L9-12 1-5 F1-4 P1 C4 W13-15 L13-15 1-5 F1-4 P1 II. FORMY OCENY - SZCZEGÓŁY Na ocenę 2 Efekt 1-7 Student opanował wiedzę z zakresu programowania Na ocenę 3 Student nie Student częściowo opanował opanował wiedzę z podstawowej wiedzy zakresu Na ocenę 4 Student opanował wiedzę z zakresu programowania Na ocenę 5 Student bardzo dobrze opanował wiedzę z zakresu 4 niskopoziomowego, stosowanych mechanizmów oraz zasad tworzenia oprogramowania. Efekt 8-12 Student posiada umiejętności stosowania wiedzy w praktycznym rozwiązywaniu problemów związanych z programowaniem niskopoziomowym. Zna architekturę procesora i instrukcje oraz potrafi przygotowywać oprogramowanie w języku asemblera. z zakresu programowania niskopoziomowego. programowania niskopoziomowego. niskopoziomowego, potrafi wyjaśnić budowę procesora i działanie jego instrukcji. materiału objętego programem nauczania, samodzielnie zdobywa i poszerza wiedzę przy użyciu różnych źródeł. Student nie potrafi posługiwać się instrukcjami i nie potrafi przygotować oprogramowania nawet z pomocą podanych instrukcji oraz prowadzącego. Student nie potrafi wykorzystać zdobytej wiedzy, zadania wynikające z realizacji ćwiczeń wykonuje z pomocą prowadzącego. Student poprawnie wykorzystuje wiedzę oraz samodzielnie rozwiązuje problemy wynikające w trakcie realizacji ćwiczeń. Student potrafi przedstawić alternatywne rozwiązania przedstawionych problemów oraz potrafi dokonać ich analizy i optymalizacji kodu. Dopuszcza się wystawienie oceny połówkowej o ile student spełniający wszystkie efekty kształcenia wymagane do oceny pełnej spełnia niektóre efekty kształcenia odpowiadające ocenie wyższej III. INNE PRZYDATNE INFORMACJE O PRZEDMIOCIE 1. Wszelkie informacje dla studentów (prezentacje do zajęć, instrukcje do ćwiczeń laboratoryjnych, przykładowe aplikacje) dostępne są na stronie internetowej http://kik.pcz.pl/, w zakładce Dydaktyka. 2. Informacja na temat konsultacji, programu i zasad uzyskania zaliczenia oraz egzaminu przekazywana jest studentom podczas pierwszych zajęć z danego przedmiotu. 5