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