- Nazwa przedmiotu:
- Podstawy oprogramowania
- Koordynator przedmiotu:
- Robert KURJATA
- Status przedmiotu:
- Obowiązkowy
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Inżynieria Biomedyczna
- Grupa przedmiotów:
- Przedmioty techniczne
- Kod przedmiotu:
- PPR
- Semestr nominalny:
- 1 / rok ak. 2018/2019
- Liczba punktów ECTS:
- 2
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- obecność na wykładach 30 godz.,
obecność na laboratorium 30 godz,
konsultacje przed kolokwiami i sprawdzianem praktycznym 5 godz.
praca własna studenta – 25 godz., w tym
przygotowanie do laboratoriów 15 godz.,
przygotowanie do sprawdzianów 10 godz.
Łączny nakład pracy studenta wynosi 90 godz., co odpowiada 3 pkt. ECTS.
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli
akademickich: 2,6 pkt. ECTS, co odpowiada 65 godz. kontaktowym.
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- 1,8 pkt. ECTS, co odpowiada 45 godz. (laboratorium 30h, przygotowanie do laboratorium 15h)
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład30h
- Ćwiczenia0h
- Laboratorium30h
- Projekt0h
- Lekcje komputerowe0h
- Wymagania wstępne:
- brak
- Limit liczby studentów:
- 90
- Cel przedmiotu:
- Celem przedmiotu jest zapoznanie studentów z podstawami programowania strukturalnego i algorytmiki. Dodatkowo w ramach przedmiotu przedstawiane są podstawy systemu operacyjnego UNIX (na przykładzie systemu GNU/Linux) niezbędne do pracy w tym systemie w ramach laboratoriów. W zakresie podstaw programowania oczekuje się opanowania przez studentów procesu przejścia z opisu rzeczywistego zadania przez abstrakcyjny opis algorytmu na jego zapis formalny w języku C. Student posiądzie wiedzę i umiejętności w zakresie podstaw tworzenia algorytmów oraz praktycznego wykorzystania języka programowania na wybranych, elementarnych przykładach. Wybór języka C podyktowany jest tym, że stanowi on podstawę wielu języków wyższego poziomu, a także jest szeroko wykorzystywany w technice mikroprocesorowej. Bazowym standardem dla wykładu jest wersja C99.
- Treści kształcenia:
- Treść wykładu:
1. Wprowadzenie do systemu UNIX (4h)
a. Zapoznanie się ze środowiskiem UNIX - procesy, uruchamianie i zatrzymywanie
programów, separacja użytkowników, organizacja systemu plików.
b. Podstawowe polecenia konsoli w zakresie obsługi plików, obsługi potoków i
komunikacji sieciowej.
2. Programowanie strukturalne w języku C (24h)
a. Podstawowe pojęcia: algorytm, program. Przekładanie opisu rzeczywistości na
algorytm komputerowy. Określenie złożoności obliczeniowej algorytmów na
wybranych przykładach. Algorytmy iteracyjne i rekurencyjne.
b. Proces przetwarzania tekstu programu na postać zrozumiałą dla maszyny -
preprocessing, kompilacja i konsolidacja. Zarządzanie kodem programu.
c. Podstawy leksyki i gramatyki języka C. Stałe: typ i wartość. Zmienne: typ, wartość,
nazwa. Typy podstawowe języka C. Niejawne rzutowanie typów. Pojęcie deklaracji i
definicji zmiennej (klasa extern). Wyrażenia i instrukcje. Priorytety i łączność
operatorów. Operatory arytmetyczne i przyrównania. Operator podstawienia. Lwartości.
Operatory post- i pre-inkrementacji, dekrementacji. Operatory bitowe i logiczne.
d. Blok kodu, funkcja. Zmienna lokalna i globalna. Zasięg i "żywotność" zmiennych.
Klasy zmiennych: static, auto, register. Instrukcja języka C - warunkowa if/else,
switch. Instrukcja break. Instrukcje iteracyjne: for, while, do/while. Instrukcja
continue.
e. Tablica. Struktura, unia. Instrukcja typedef. Pojęcie wskaźnika. Tablice i 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. Dynamiczna alokacja pamięci. Funkcje malloc i
free. Wejście i wyjście w C. Obsługa plików. Synchronizacja zawartości strumienia i
zawartości pliku.
f. Algorytmy i struktury danych: lista dowiązaniowa, sortowanie, drzewo, algorytmy
matematyczne.
3. Sprawdziany (2h)
Laboratorium
1. Wprowadzenie do systemu UNIX. (4h)
2. System plików, procesy, sposób uruchamiania programów. Edycja tekstu. (2h)
3. Pierwszy program. Środowisko uruchomieniowe. Podział kodu na fragmenty. Zarządzanie
kompilacją i konsolidacją. Narzędzie make. (2h)
4. Implementacja prostych zadań programistycznych. (2h)
5. Debugger - uruchamianie, wyszukiwanie błędów i analiza działania programów. (4h)
6. Implementacja prostych zadań programistycznych (4h)
7. Struktury, implementacja listy dowiązaniowej, dynamiczne zarządzanie pamięcią. (4h)
8. Implementacja wybranego algorytmu (np. sortowania, drzewa poszukiwań, struktury
słownikowej). (4h)
9. Sprawdzian praktyczny (2h)
- Metody oceny:
- kolokwia, laboratoria , sprawdzian praktyczny
- Egzamin:
- nie
- Literatura:
- ● B.W. Kernighan, D.M. Ritchie, Język ANSI C Wydanie 2, Helion, Warszawa, 2010.
● Clovis L. Tondo, Scott E. Gimpel, Język ANSI C. Programowanie. Ćwiczenia. Wydanie II,
Helion, 2010
● Stephen Prata, Język C. Szkoła programowania. Wydanie VI, Helion, 2016,
● Richard Reese, Wskaźniki w języku C. Przewodnik, Helion, 2014,
● Robert Sedgewick, Kevin Wayne, Algorytmy. Wydanie IV, Helion, 2012
- Witryna www przedmiotu:
- nie ma
- Uwagi:
- brak
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka w01
- Posiada podstawową wiedzę w zakresie użytkowania systemu operacyjnego UNIX i podstaw informatyki
Weryfikacja: ..
Powiązane charakterystyki kierunkowe:
K_W01, K_W04
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka W02
- Posiada podstawową wiedzę w zakresie programowania strukturalnego
Weryfikacja: ..
Powiązane charakterystyki kierunkowe:
K_W04
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka w03
- Posiada podstawową wiedzę w zakresie konstruowania algorytmów komputerowych i ich złożoności
Weryfikacja: ..
Powiązane charakterystyki kierunkowe:
K_W04
Powiązane charakterystyki obszarowe:
I.P6S_WG
Profil ogólnoakademicki - umiejętności
- Charakterystyka U01
- Potrafi formułować zagadnienia w postaci algorytmicznej i zapisywać algorytmy w językach
programowania
Weryfikacja: ..
Powiązane charakterystyki kierunkowe:
K_U01, K_U05
Powiązane charakterystyki obszarowe:
I.P6S_UW, I.P6S_UU
- Charakterystyka U02
- Potrafi samodzielnie zdobywać informacje z dostępnych źródeł, ma umiejętność samokształcenia
Weryfikacja: ..
Powiązane charakterystyki kierunkowe:
K_U05
Powiązane charakterystyki obszarowe:
I.P6S_UU
Profil ogólnoakademicki - kompetencje społeczne
- Charakterystyka K01
- Potrafi organizować własną pracę i pracować w małej grupie
Weryfikacja: ..
Powiązane charakterystyki kierunkowe:
K_K07
Powiązane charakterystyki obszarowe:
I.P6S_KR
- Charakterystyka k02
- Rozumie potrzebę dokształcania się przez całe życie
Weryfikacja: ..
Powiązane charakterystyki kierunkowe:
Powiązane charakterystyki obszarowe: