karta przedmiotu - Karkonoska Państwowa Szkoła Wyższa w

Transkrypt

karta przedmiotu - Karkonoska Państwowa Szkoła Wyższa w
I. KARTA PRZEDMIOTU
Kod przedmiotu
PPR
Nazwa przedmiotu/modułu:
Podstawy programowania
Nazwa angielska:
Fundamentals of programming
Kierunek studiów:
Edukacja techniczno-informatyczna
Tryb/Poziom studiów:
Stacjonarne /I-go stopnia – inżynierskie
Profil studiów
ogólnoakademicki
Jednostka prowadząca:
Karkonoska Państwowa Szkoła Wyższa w Jeleniej Górze, Wydział
Przyrodniczo-Techniczny, Zakład Edukacji Techniczno-Informatycznej
Prowadzący przedmiot:
dr Beata Laszkiewicz
Formy zajęć, liczba godzin
Ćwiczenie
Wykład
II
Forma
zaliczenia
Liczba punktów
ECTS
30
Zaliczenie
na ocenę
30
Zaliczenie
na ocenę
60
3
5
5
C1
C2
C3
C4
C5
C6
Laboratorium
Projekt
Seminarium
Łącznie
Semestr
Cel przedmiotu:
Uzyskanie wiedzy z zakresu podstaw programowania zorientowanego strukturalnie w języku wysokiego
poziomu
Uzyskanie wiedzy z zakresu zaawansowanych technik programowania.
Zapoznanie z zasadami konstruowania, zapisu i analizy algorytmów oraz podstawami programowania
w języku strukturalnym (struktura programu, typy danych, współpraca z systemem plików, biblioteki
funkcji).
Nabycie umiejętności samodzielnego pisania prostych programów w języku wysokiego poziomu
Nabycie umiejętności stosowania w praktyce podstawowych algorytmów i struktur danych.
Poznanie i stosowanie zasad eleganckiego pisania programów.
Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji:
Zaliczenie przedmiotu „Algorytmy i struktury danych”.
Oczekiwane efekty kształcenia:
Efekty z wykładu
EK1
Potrafi wymienić podstawowe pojęcia związane z programowaniem i zasady programowania
strukturalnego oraz je scharakteryzować i zastosować w praktyce, przestrzegając zasad etyki.
EK2
Posiada umiejętność czytania i analizowania kodu programów w języku wysokiego poziomu.
EK5
Rozumie potrzebę samodzielnego uzupełniania i doskonalenia wiedzy oraz umiejętności związanych z
programowaniem strukturalnym.
Ma uporządkowaną wiedzę ogólną na temat podstawowych pojęć związanych z programowaniem oraz
zasad i technik programowania strukturalnego w języku wysokiego poziomu, w tym: struktury
EK6 programu, operatorów, typów danych, wyrażeń i instrukcji sterujących programem, operacji
wejścia/wyjścia oraz obsługi systemu plików i bibliotek standardowych i potrafi zastosować ją w
praktyce przestrzegając zasad etyki.
Efekty z laboratorium:
EK2
Posiada umiejętność czytania i analizowania kodu programów w języku wysokiego poziomu.
1
EK3
Ma niezbędne umiejętności implementacji prostych zadań w języku wysokiego poziomu z zachowaniem
zasad programowania strukturalnego oraz zasad eleganckiego pisania programów poprzez
zastosowanie komentarzy, wcięć i optymalizacji, postępując zgodnie z zasadami etyki podczas
implementacji tych zadań.
EK4
Posiada umiejętności weryfikacji wykonanych rozwiązań oraz radzenia sobie z typowymi błędami
programistycznymi, wykazując aktywną postawę i chęć współpracy z innymi podczas rozwiązywania
trudniejszych zadań.
EK5
Rozumie potrzebę samodzielnego uzupełniania i doskonalenia wiedzy oraz umiejętności związanych z
programowaniem strukturalnym.
EK7
Zna zasady programowania strukturalnego oraz potrafi zastosować je w praktyce, stosując zasady
etyki.
EK8
Potrafi zastosować w praktyce uporządkowaną wiedzę ogólną na temat zasad i technik
programowania strukturalnego w języku wysokiego poziomu, wykazując chęć współpracy z innymi
podczas rozwiązywania trudnych zadań, przestrzegając jednocześnie zasad etyki.
Treści programowe:
Forma zajęć: wykład
Wyk1
Wyk2
Wyk3
Wyk4
Wyk5
Wyk6
Wyk7
Wyk8
Wyk9
Wyk10
Lab1
Lab2
Wstęp: Alfabet, składnia, semantyka. Języki formalne. Języki bezkontekstowe
jako narzędzie definiowania składni. Notacja BNF i EBNF. Przegląd
wybranych języków programowania. Kod maszynowy, kod źródłowy i kod
wykonywalny.
Translacja: kompilacja i interpretacja. Wstęp do
programowania strukturalnego. Język programowania jako sposób zapisu
algorytmu.
Typy danych: Pojęcie typu danych. Konwersja typów (niejawna i jawna).
Typy proste (całkowite, rzeczywiste, logiczny, znakowy) – omówienie.
Program i jego elementy: stałe, zmienne (lokalne i globalne), zakres
ważności nazw, instrukcje proste, instrukcje strukturalne (warunkowe,
iteracyjne). Wyrażenia. Priorytety i łączność operatorów. Operatory:
przypisania, arytmetyczne, logiczne, relacyjne, połączenia. Przykłady
zastosowań.
Funkcje i podprogramy: Przekazywanie parametrów w funkcjach.
Przeciążanie. Funkcje rekurencyjne. Przykładowe programy.
Struktury danych: Tablice, struktury, unie. Przykłady zastosowań.
Wskaźniki: Wskaźniki. Operacje na wskaźnikach. Operatory referencji
i dereferencji. Zastosowanie wskaźników. Przykłady.
Struktury danych: Pliki. Schemat przetwarzania plików. Operacje na plikach.
Przegląd bibliotek: Przegląd klasycznych bibliotek w języku wysokiego
poziomu.
Realizacja
zaawansowanych
konstrukcji
algorytmicznych
w programach: Dynamiczne struktury danych: listy, stos, kolejki, kolejki
priorytetowe, drzewa i ich reprezentacje, implementacje struktur
dynamicznych przy pomocy tablic.
Kolokwium zaliczeniowe. Powtórzenie wiadomości.
Liczba
godzin
2
2
8
4
4
2
2
2
2
2
Suma godzin
30
Forma zajęć: laboratorium
Liczba
godzin
Zajęcia organizacyjne: Zapoznanie ze środowiskiem odpowiednim dla
języka wysokiego poziomu. Instalacja środowiska. Pierwszy program.
Kompilacja i uruchomienie programu. Struktura programu (deklaracje stałych,
zmiennych i funkcji). Proste typy danych (logiczny, znakowy, całkowity,
rzeczywisty).
Pierwsze programy: Instrukcje proste: instrukcja pusta i instrukcja
przypisania.
Operacje
wejścia/wyjścia.
Proste
programy.
Błędy
2
2
2
w programach.
Lab6
Instrukcje warunkowe i operatory: Instrukcje IF, IF-ELSE. Operatory
arytmetyczne. Operatory logiczne. Priorytety operatorów. Wyrażenia logiczne.
Funkcje w języku wysokiego poziomu: Argumenty funkcji, wartość funkcji.
Przekazywanie argumentów funkcji przez wartość i przez referencję (lub:
przez wartość i przez zmienną). Komunikacja między funkcjami. Zmienne
lokalne i zmienne globalne.
Instrukcje iteracyjne: Instrukcja iteracyjna FOR. Instrukcje iteracyjne WHILE
i DO-WHILE.
Rekurencja: Sprawne tworzenie funkcji. Funkcje rekurencyjne.
Lab7
Struktury danych: Tablice. Przetwarzanie tablic.
4
Lab8
Napisy: Przetwarzanie napisów. Biblioteka funkcji opartych na napisach.
4
Lab9
Wskaźniki: Operacje na wskaźnikach. Przeciążanie operatorów i funkcji.
2
Lab3
Lab4
Lab5
1.
Struktury danych: Struktury (rekordy, opcjonalnie – unie). Tworzenie
(nazywanie) własnych typów danych.
Struktury danych: pliki. Model logiczny pliku. Typy plików. Rodzaje dostępu
do plików. Schemat przetwarzania plików.
Suma godzin - laboratorium
Narzędzia dydaktyczne:
Wykład z elementami dyskusji.
2.
Prezentacje multimedialne z wykładu.
3.
Ćwiczenia symulacyjne.
4.
Demonstracje.
5.
Pokazy przykładowych rozwiązań.
6.
Komputer z odpowiednim oprogramowaniem.
7.
Zadania testowe.
Lab10
Lab11
2
2
4
2
2
4
30
Sposoby oceny (F – formująca, P – podsumowująca)
F1.
F2.
F3.
P1.
P2.
Ocena rozwiązań ćwiczeń laboratoryjnych.
Aktywność podczas zajęć laboratoryjnych.
Aktywność podczas wykładu.
Test wielokrotnego wyboru sprawdzający wiedzę z wykładu.
Ustalenie oceny zaliczeniowej na podstawie cząstkowych ocen z list laboratoryjnych.
Obciążenie pracą studenta
Forma aktywności
Łączna i średnia liczba godzin
na zrealizowanie aktywności
Godziny kontaktowe z nauczycielem (w trakcie zajęć)
60
Przygotowanie do zajęć laboratoryjnych (średnio na
studenta)
45
Przygotowanie się do zaliczenia
20
Konsultacje
15
SUMA
SUMARYCZNA LICZBA PUNKTÓW ECTS DLA
PRZEDMIOTU
Literatura podstawowa i uzupełniająca
140
5
Literatura podstawowa:
1. Grębosz J,. Symfonia C++ standard, Editions 2000, Kraków 2008.
3
2. Kernighan B, Ritche D., Język ANSI C, WNT, Warszawa 2001.
3. Stroustrup B., Język C++. WNT, Warszawa 1998.
Literatura uzupełniająca:
1. Adamiec-Wójcik I., Guerreiro P., Elementy programowania obiektowego w C++. Wydawnictwo Politechniki.
Łódzkiej Filii w Bielsku-Białej, Bielsko Biała 1998.
2. Hansen T.L., C++: zadania i odpowiedzi. WNT, Warszawa 1994.
3. Liberty J., C++ dla każdego. Helion, Gliwice 2002.
4. Liberty J., C++: księga eksperta, Helion, Gliwice 1999.
5. Meyers S., Język C++ bardziej efektywny – 35 praktycznych sposobów ulepszenia programów. WNT,
Warszawa 1998.
6. Struzińska-Walczak A., Walczak K., Nauka programowania dla początkujących C++. Wydawnictwo W&W,
Warszawa 1999.
7. Vandevoorde D., Język C++: ćwiczenia i rozwiązania. WNT, Warszawa 2001.
4