- Nazwa przedmiotu:
- Podstawy programowania
- Koordynator przedmiotu:
- Marek Niewiński
- Status przedmiotu:
- Obowiązkowy
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Elektronika
- Grupa przedmiotów:
- Przedmioty techniczne
- Kod przedmiotu:
- PRM
- Semestr nominalny:
- 1 / rok ak. 2019/2020
- Liczba punktów ECTS:
- 4
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład30h
- Ćwiczenia0h
- Laboratorium30h
- Projekt0h
- Lekcje komputerowe0h
- Wymagania wstępne:
- Podstawowe umiejętności w zakresie obsługi komputera. Umiejętność abstrakcyjnego myślenia. Umiejętność dostosowania się do regulaminu przedmiotu.
- Limit liczby studentów:
- 120
- Cel przedmiotu:
- Celem przedmiotu jest zapoznanie studentów z paradygmatem programowania strukturalnego. W ramach przedmiotu przekazywana będzie dobra praktyka programowania strukturalnego oraz umiejętność abstrakcji problemów i ich zapisu w języku programowania. W ramach laboratorium studenci nabywać będą sprawności w posługiwaniu się narzędziami wspomagającymi pracę programisty, a także ze środowiskiem systemu operacyjnego. Kontynuacją przedmiotu jest programowanie obiektowe.
- Treści kształcenia:
- Treść wykładu
Podstawowe pojęcia: algorytm, program, informatyka, programowanie. Narzędzia wspomagające programowanie. Pojęcie typu i wartości. Pierwszy program w języku C.
System operacyjny. System plików. Zasoby i ich ochrona. Procesy. Praca zdalna. Narzędzia ftp, telnet. Poczta elektroniczna.
Stałe: typ i wartość. Zmienne: typ, wartość, nazwa. Typy podstawowe języka C. Niejawne rzutowanie typów. Pojecie deklaracji i definicji zmiennej. Wyrażenia i instrukcje. Operatory arytmetyczne i przyrównania. Operator podstawienia. L-wartości.
Funkcja jako nazwany blok kodu. Pojęcie zmiennej lokalnej i globalnej. Przysłanianie zmiennych. Parametry formalne i aktualne: Instrukcja return. Niejawne rzutowania podczas uzgadniania parametrów formalnych i aktualnych oraz przy ustalaniu wartości zwracanej. Funkcje typu void.
Bloki kodu. Instrukcja if/else. Instrukcja switch - wielowejściowy blok kodu. Instrukcja break. Pojęcie iteracji. Instrukcje pętli: for, while, do/while. Instrukcja continue. Operatory post- i pre- inkrementacji/dekrementacji. Wyodrębnianie atomów leksykalnych. Priorytety i łączność operatorów. Operatory bitowe i ich relacja z opeatorami logicznymi.Tablica jako ponumerowany zbiór wartości tego samego typu. Pojęcie wskaźnika. Tablice a wskaźniki. "Typ" łańcuchowy. Operatory referencji i dereferencji.
Arytmetyka wskaźników. Rzutowanie wskaźników. Przekazywanie argumentu funkcji przez wskazanie. Przekazywanie tablicy do funkcji. Funkcja main z argumentami wywołania. Zasięg i "żywotność" zmiennych. Klasy zmiennych: static, auto, register, zmienne globalne. Deklaracja zmiennej jako extern.
Dynamiczna alokacja pamięci. Funkcje malloc i free. Patologie z użyciem dynamicznego przydziału pamięci: lokalna zmienna wskaźnikowa, podstawienie nowej wartości zmiennej wskaźnikowej Sterta. Stos (kolejka LIFO). Przykład alokacji tablicy wielowymiarowej. Struktura (struct) jako zbiór wartości z dostępem przez nazwę.
Wejście i wyjście w C. Pojęcie strumienia. Strumień jako kolejka FIFO. Demony. Strumienie plikowe. Tryby otwarcia: tekstowy i binarny. Synchronizacja zawartości strumienia i zawartości pliku. Preprocesor.
Elementy algorytmiki na podstawie metod sortowania.
Rekurencja: zastosowanie, sposób działania, ślad w pamięci operacyjnej.
Przekazywanie argumentów przez zmienną w innych językach programowania. Organizacja pamięci na stosie. Mechanizmy wywołań funkcji.
Zakres laboratorium
Laboratorium wprowadza umiejętność samodzielnego pisania, uruchamiania, testowania i dokumentacji oprogramowania..
System plików, procesy, sposób uruchomiania programów (2h).
Edycja tekstu (2h).
Praca w sieci: narzędzia ftp, telnet, mail (2h).
Pierwszy program (2h).
Środowisko uruchomieniowe (2h).
Rozdanie tematów zadań i ich analiza; zakres tematyczny: podstawowe instrukcje sterujące i dekompozycja na funkcje (2h).
Implementacja programów (2h).
Testowanie i odbiór programów (2h).
Rozdanie tematów zadań i ich analiza; zakres tematyczny: złożone algorytmy i struktury danych (2h).
Weryfikacja specyfikacji wstępnej programu (2h).
Dekompozycja na funkcje i struktury danych (2h).
Implementacja funkcji (2h).
Podział kodu źródłowego na pliki (2h).
Uruchamianie i testowanie programów (2h).
Odbiór programów i dokumentacji (2h).
- Metody oceny:
- kolokwia i laboratoria
- Egzamin:
- nie
- Literatura:
- Wirth, N.: Algorytmy + struktury danych = programy.
Kernighan, B., Ritche, D.: Język ANSI C.
Silvester, P.: System operacyjny unix.
- Witryna www przedmiotu:
- brak
- Uwagi:
- przedmiot prowadzony wspólnie przez IMiO, IRiTM oraz ISE
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka PRM_W01
- znajomość języka C
Weryfikacja: kolokwia i laboratoria
Powiązane charakterystyki kierunkowe:
K_W03, K_W04
Powiązane charakterystyki obszarowe:
Profil ogólnoakademicki - umiejętności
- Charakterystyka PRM_U01
- umiejętność pisania i uruchamiania programów
Weryfikacja: laboratoria
Powiązane charakterystyki kierunkowe:
K_U18
Powiązane charakterystyki obszarowe: