Nazwa przedmiotu:
Programowanie 1 - strukturalne
Koordynator przedmiotu:
Prof. dr hab. inż. Władysław Homenda
Status przedmiotu:
Obowiązkowy
Poziom kształcenia:
Studia I stopnia
Program:
Informatyka i Systemy Informacyjne
Grupa przedmiotów:
Wspólne
Kod przedmiotu:
1120-IN000-ISP-0116
Semestr nominalny:
1 / rok ak. 2023/2024
Liczba punktów ECTS:
6
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
1. godziny kontaktowe – 80 h; w tym a) obecność na wykładach – 30 h b) obecność na ćwiczeniach – 30 h c) obecność na laboratoriach – 15 h d) konsultacje – 5 h 2. praca własna studenta – 75 h; w tym a) przygotowanie do wykładów – 15 h b) przygotowanie do ćwiczeń – 15 h c) przygotowanie do sprawdzianów pisemnych (kolokwiów) – 15 h d) przygotowanie do zajęć laboratoryjnych – 30 h Razem 155 h, co odpowiada 6 pkt. ECTS
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
1. obecność na wykładach – 30 h 2. obecność na ćwiczeniach – 30 h 3. obecność na laboratoriach – 15 h 4. konsultacje z prowadzącymi zajęcia – 5 h Razem 80 h, co odpowiada 3 pkt. ECTS
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
1. obecność na ćwiczeniach – 30 h 2. obecność na laboratoriach – 15 h 3. przygotowanie do ćwiczeń – 15 h 4. przygotowanie do sprawdzianów pisemnych (kolokwiów) – 15 h 5. przygotowanie do zajęć laboratoryjnych – 30 h Razem 105 h, co odpowiada 4 pkt. ECTS
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia30h
  • Laboratorium15h
  • Projekt0h
  • Lekcje komputerowe0h
Wymagania wstępne:
brak
Limit liczby studentów:
.
Cel przedmiotu:
Celem przedmiotu jest nauka podstaw programowania strukturalnego. Przedmiot jest skierowany do osób, które wcześniej nie uczyły się programować. Po ukończeniu kursu studenci powinni mieć wiedzę i umiejętności sformułowane w tabeli efektów uczenia się.
Treści kształcenia:
Informacje wstępne: problem, algorytm. Systemy pozycyjne: dziesiętny, dwójkowy, szesnastkowy, jedynkowy (liczba n jest zapisana jako ciąg n zer), minus dwójkowy. Reprezentacja liczb całkowitych w pamięci komputera – system stałopozycyjny uzupełnieniowy. Reprezentacja liczb zmiennoprzecinkowych, formaty IBM, IEEE, Microsoft, zakresy liczb zmiennoprzecinkowych. Wyrażenia arytmetyczne – priorytety operatorów, notacje przedrostkowa i przyrostkowa. Prosty model maszyny cyfrowej. Prosty pseudoassembler, algorytm Euklidesa wyznaczania NWD, sito Eratostenesa. Języki wysokiego poziomu, C – informacje ogólne. Struktura programu, funkcje. Podstawowe typy danych – int, float; modyfikatory: long, short, unsigned. Typy i rozmiary danych. Stałe, zmienne, typy zmiennych. Funkcje konwersji typów danych. Tablice. Struktury. Typy złożone (np. tablice struktur). Operatory, Priorytety, konwersje typów. Wyrażenia – arytmetyczne, logiczne, binarne, rzutowania. Instrukcje proste - pusta, podstawienia, skoku. Instrukcje złożone - strukturalne, warunkowe, wyboru, iteracyjne. Instrukcje – uzupełnienia. Prosty program w C – szybkie obliczanie potęg (przykład na zastosowanie operatorów, wyrażeń, instrukcji warunkowych i iteracyjnych). Prosty program w C – wyszukiwanie wzorca w tekście (przykład na zastosowanie tablic i instrukcji warunkowych, wyboru i iteracyjnych). Podstawowe instrukcje wejścia-wyjścia: getch, putc, scanf, printf, elementy formatowania. Przykłady programów: modyfikacja sita Eratostenesa na tablicach – znajdowanie liczb słabo złożonych. Wskaźniki. Zmienne wskaźnikowe, zmienne wskazywane, dynamiczne zarządzanie pamięcią. Przykłady - sito Eratostenesa w wersji listy jednokierunkowej – tworzenie listy jednokierunkowej, usuwanie elementów z listy i nawigacja po liście jednokierunkowej. Wskaźniki – cd. Tworzenie uporządkowanej listy dwukierunkowej, Wskaźniki i tablice, wskaźniki do wskaźników – omówienie. Funkcje i programy – wprowadzenie. Funkcje – sposoby przekazywania parametrów: przez wartość, przez adres, przez funkcję. Funkcje i programy – przykłady: (i) Program obliczania exp(A), gdzie A – macierz nxn, (ii) Program wyznaczania całki. Funkcje i programy – przykłady, cd. Budowa drzewa binarnego, Przeglądanie drzewa binarnego: prefiksowe, postfiksowe, infiksowe. Funkcje i programy – przykłady, cd. Rekurencja, omówienie, przykład: wieże Hanoi, gdzie nie należy stosować rekurencji – obliczanie silni, przesłanianie, efekty uboczne. Zaliczenie.
Metody oceny:
Zaliczenie ćwiczeń - dwa kolokwia w semestrze. Zaliczenie laboratoriów - na podstawie programów pisanych w laboratorium. Zaliczenie przedmiotu: wymagane zaliczenie ćwiczeń i laboratoriów. Łączną ocenę punktową studentów przelicza się na stopnie według poniższych zasad: a) 3.0 jeżeli uzyskali od 51 do 60 pkt. b) 3.5 jeżeli uzyskali od 61 do 70 pkt. c) 4.0 jeżeli uzyskali od 71 do 80 pkt. d) 4.5 jeżeli uzyskali od 81 do 90 pkt. e) 5.0 jeżeli uzyskali powyżej 90 pkt.
Egzamin:
nie
Literatura:
1. Kerningham, Ritchie, Język C 2. Wirth, Algorytmy + struktury danych = programy
Witryna www przedmiotu:
.
Uwagi:
.

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Charakterystyka W01
Zna podstawy działania komputera (procesor, rejestry pamięć, język maszynowy i asembler), zna metody reprezentacji danych numerycznych (zapis stałopozycyjny, kod uzupełnieniowy do 2, zapis zmiennopozycyjny) i tekstowych w pamięci komputera
Weryfikacja: aktywny udział w ćwiczeniach, sprawdzian pisemny
Powiązane charakterystyki kierunkowe: K_W03
Powiązane charakterystyki obszarowe:
Charakterystyka W02
Zna pojęcie problemu i algorytmu i metody formułowania algorytmów (schematy blokowe, opisy słowne), zna podstawowe konstrukcje programistyczne (wyrażenia, operacja przypisania, konstrukcje iteracyjne i warunkowe)
Weryfikacja: aktywny udział w ćwiczeniach, sprawdzian pisemny
Powiązane charakterystyki kierunkowe: K_W10, K_W04, K_W06
Powiązane charakterystyki obszarowe:

Profil ogólnoakademicki - umiejętności

Charakterystyka U01
Potrafi sformułować proste algorytmy w postaci schematów blokowych i opisów słownych
Weryfikacja: aktywny udział w ćwiczeniach, sprawdzian pisemny
Powiązane charakterystyki kierunkowe: K_U01, K_U09, K_U14
Powiązane charakterystyki obszarowe:
Charakterystyka U02
Potrafi zastosować podstawowe typy i struktury danych (skalarne, tablicowe, strukturalne) oraz podstawowe konstrukcje programistyczne (operatory, wyrażenia, instrukcje proste i złożone, instrukcje iteracyjne, instrukcje warunkowe, instrukcje wej/wyj) do konstrukcji prostych programów w języku programowania C
Weryfikacja: aktywny udział w ćwiczeniach, sprawdzian pisemny, program w języku C
Powiązane charakterystyki kierunkowe: K_U09, K_U14
Powiązane charakterystyki obszarowe:
Charakterystyka U03
Potrafi wydzielić logiczne i funkcjonalne fragmenty programu w postaci procedur (funkcji) języka C, potrafi stosować metody komunikacji między procedurami języka C (parametry formalne, zmienne globalne)
Weryfikacja: aktywny udział w ćwiczeniach, sprawdzian pisemny, program w języku C
Powiązane charakterystyki kierunkowe: K_U09, K_U14
Powiązane charakterystyki obszarowe:
Charakterystyka U04
Potrafi korzystać z zaawansowanych technik programistycznych: dynamiczne zarządzanie pamięcią, dynamiczne struktury danych (tablice o zmiennych rozmiarach, listy), rekurencja
Weryfikacja: aktywny udział w ćwiczeniach, sprawdzian pisemny, program w języku C
Powiązane charakterystyki kierunkowe: K_U09, K_U11, K_U14
Powiązane charakterystyki obszarowe:

Profil ogólnoakademicki - kompetencje społeczne

Charakterystyka K01
Rozróżnia między wiedzą uniwersalną w dziedzinie programowania a umiejętnościami technicznymi zależnymi od stosowanych rozwiązań technologicznych; rozumie potrzebę doskonalenia w zakresie wiedzy uniwersalnej i konieczność ciągłego uzupełniania umiejętności technicznych
Weryfikacja: udział w dyskusji
Powiązane charakterystyki kierunkowe: K_K02, K_K04
Powiązane charakterystyki obszarowe: