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