Wydział Informatyki
Kierunek studiów Informatyka Poziom i forma studiów pierwszego stopnia inżynierskie stacjonarne
Specjalność / Ścieżka dyplomowania --- Profil kształcenia ogólnoakademicki
Nazwa przedmiotu Podstawy programowania Kod przedmiotu INF1PPR
Rodzaj przedmiotu obowiązkowy
Forma zajęć i liczba godzin W Ć L P Ps T S Semestr 1
30 45 Punkty ECTS 6
Przedmioty wprowadzające
Cele przedmiotu

Zapoznanie studentów z podstawowymi technikami programowania strukturalnego i realizacja tych technik w języku C. Nauczenie praktycznego stosowanie tych technik w prostych programach w języku programowania C. Nauczenie projektowania, implementowania, śledzenia wykonywania się, testowania programów i dokumentowania większych programów z wykorzystaniem programowania strukturalnego. Wykształcenie praktyki korzystania z literatury i dokumentacji języka programowania. Wykształcenie nawyku systematycznego przyswajania wiedzy z zakresu wykładu.

Odniesienia do standardu SFIA:
Programming/software development PROG - poziom 3
Software design SWDN - poziom 2
Testing TEST - poziom 1
Systems integration and build SINT - poziom 2
Release and deployment RELM - poziom 3

Treści programowe

Wykład:
Podstawy programowania w języku C: składnia języka, budowa programu, biblioteka standardowa, techniki projektowania programu w języku proceduralnym. Proces kompilacji i wykonanie programu w C. Zmienne, typy danych i operatory w C. Podstawowe operacje wejścia/wyjścia. Instrukcje sterujące. Tablice. Funkcje. Wskaźniki, zarządzanie pamięcią. Debugowanie i rozwiązywanie problemów. Typ napisowy. Pliki tekstowe i binarne. Struktury i unie. Dynamiczne struktury danych: listy, stosy, kolejki, drzewa. Rekurencja. Styl programowania. Zarządzanie kodem źródłowym: podział kodu na wiele plików, make. Narzędzia wspomagające zarządzanie wersjami (git). Testowanie oprogramowania.

Pracownia specjalistyczna:
Struktura programu w języku C. Przykładowy program. Instrukcja wyjścia-wyjścia. Instrukcje sterujące. Tablice. Funkcje - sposoby przekazywania parametrów i zwracane wartości. Implementacja algorytmów sortowania. Wskaźniki, zarządzanie pamięcią. Debugowanie i rozwiązywanie problemów. Typ napisowy. Przetwarzanie plików. Stosowanie typów złożonych. Stosowanie typów dynamicznych. Styl programowania. Zarządzanie kodem źródłowym: podział kodu na wiele plików, make. Narzędzia wspomagające zarządzanie wersjami(git). Proces tworzenia oprogramowania (w małej skali): analiza zadania, specyfikacja wymagań, projekt programu, implementacja, uruchamianie i testowanie, wdrożenie, konserwacja. Zaprojektowanie, implementacja i wdrożenie większego programu przy użyciu języka programowania C.

Metody dydaktyczne

wykład problemowy,   programowanie z użyciem komputera,   wykład informacyjny,  

Forma zaliczenia

Wykład: egzamin pisemny.
Pracownia specjalistyczna: sprawdziany, ocena wybranych programów realizowanych na zajęciach, większy program/projekt realizowany poza zajęciami.

Symbol efektu uczenia się Zakładane efekty uczenia się Odniesienie do kierunkowych efektów uczenia się
EU1 metodyki, techniki i narzędzia programowania strukturalnego wraz z przykładami oraz odpowiada na pytania z tego zakresu INF1_W04
INF1_W05
INF1_W11
INF1_W12
EU2 stosować zasady projektowania i programowania strukturalnego w tworzonych programach i ich fragmentach INF1_U04
INF1_U05
INF1_U11
EU3 przetestować program strukturalny, w przypadku wykrycia błędów potrafi przeprowadzić ich diagnozę. INF1_U06
EU4 sformułować algorytm posługując się językiem programowania strukturalnego do opracowania programu komputerowego INF1_U04
INF1_U05
INF1_U07
INF1_U11
EU5 uwzględniania polityki zrównoważonego rozwoju podczas doboru wydajnych algorytmów H1_K03
Symbol efektu uczenia się Sposób weryfikacji efektu uczenia się Forma zajęć na której zachodzi weryfikacja
EU1 egzamin pisemny W
EU2 sprawdziany na Ps, zadania realizowane na zajęciach, projekt Ps
EU3 zadania realizowane na zajęciach, projekt Ps
EU4 zadania realizowane na zajęciach, projekt Ps
EU5 zadania realizowane na zajęciach, projekt Ps
Bilans nakładu pracy studenta (w godzinach) Liczba godz.
Wyliczenie
1 - Udział w wykładach 30
2 - Udział w pracowni specjalistycznej 45
3 - Realizacja zadań projektowych 53
4 - Udział w konsultacjach 4
5 - Przygotowanie do egzaminu 16
6 - Obecność na egzaminie 2
RAZEM: 150
Wskaźniki ilościowe GODZINY ECTS
Nakład pracy studenta związany z zajęciami wymagającymi bezpośredniego udziału nauczyciela 81
(1)+(4)+(2)+(6)
3.2
Nakład pracy studenta związany z zajęciami o charakterze praktycznym 98
(3)+(2)
3.9
Literatura podstawowa

1. B. W. Kernighan, Język ANSI C: programowanie, Helion, 2020
2. S. Prata, Język C. Szkoła programowania. Wydanie VI, Helion, 2020
3. R. Reese, Wskaźniki w języku C. Przewodnik, Helion, 2014
4. R. C. Seacord, Efektywny C. Wprowadzenie do profesjonalnego programowania, Helion, 2022
5. https://en.cppreference.com/w/c

Literatura uzupełniająca

1. https://www.iso-9899.info/wiki/The_Standard
2. P. J. Deitel, H.M. Deitel, Język C : solidna wiedza w praktyce. Wydanie VIII, Helion, 2021
3. Z. A. Shaw, Programowanie w C. Sprytne podejście do trudnych zagadnień, których wolałbyś unikać (takich jak język C), Helion, 2016
4. K. Amini, Ekstremalny kod w języku C. Współbieżność i programowanie zorientowane obiektowo, Helion, 2019
5. B. W. Kernighan R. Pike, Lekcja programowania : najlepsze praktyki, Helion, 2011
6. A. Łupińska-Dubicka, M. Tabędzki, Podstawy programowania w języku C. Zadania z rozwiązaniami, Oficyna Wydawnicza Politechniki Białostockiej, 2022
7. G. Perry, D. Miller, Język C. Programowanie dla początkujących, Helion, 2020
8. https://www.w3schools.com/c

Jednostka realizująca Katedra Oprogramowania Data opracowania programu
Program opracował(a) dr hab. Zenon A. Sosnowski,dr inż. Anna Łupińska-Dubicka 2023.04.04