Uniwersytet im. Adama Mickiewicza w Poznaniu - Centralny System Uwierzytelniania
Strona główna

Programowanie strukturalne

Informacje ogólne

Kod przedmiotu: 17-DPPR-IP0
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Programowanie strukturalne
Jednostka: Nadnotecki Instytut UAM w Pile
Grupy: Moodle - przedmioty Innych jednostek
Punkty ECTS i inne: 0 LUB 6.00 (w zależności od programu) Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

zobacz reguły punktacji
Język prowadzenia: (brak danych)
Kierunek studiów:

Technologie informatyczne - studia inżynierskie

Poziom przedmiotu:

I stopień

Cele kształcenia:

Przedmiot poświęcony jest prezentacji podstaw programowania proceduralnego z elementarnych wstępem do zagadnień wykorzystywania funkcji bibliotecznych i gotowych klas. Omawiany jest proces tworzenia programu, znaczenie algorytmu, języka, kompilatora i interpretera. Przedstawia się metody sterowanie przebiegiem programu, znaczenie pojęcia typu danych, podstawowe typy i ich reprezentację w pamięci. Omawiane są

złożone typy danych, wyrażenia, zmienne statyczne, wskaźniki, zmienne dynamiczne oraz zagadnienia dynamicznego zarządzania pamięcią. Analizuje się zagadnienia strukturalizacji programu, procedury i funkcje

oraz metody przekazywania parametrów. Rozważa się zagadnienia rekursji. Studenci zapoznają się ze stosowaniem standardowych bibliotek, w szczególności bibliotek sterowania strumieniami wejścia-wyjścia i

zarządzania plikami. Przedstawiana jest idea tworzenia programów sterowanych zdarzeniami. Jako przykład aplikacji sterowanych zdarzeniami podaje się w szczególności proste aplikacje "okienkowych" sterowane

komunikatami Windows. Integralną częścią przedmiotu są zajęcia laboratoryjne i projekt implementujący omawiane zagadnienia w języku C/C++.

Rok studiów (jeśli obowiązuje):

I rok

Wymagania wstępne w zakresie wiedzy, umiejętności oraz kompetencji:

brak

Informacja o tym, gdzie można zapoznać się z materiałami do zajęć:

Platforma MS Teams.

Metody prowadzenia zajęć umożliwiające osiągnięcie założonych EK:

wykłady, laboratoria

Nakład pracy studenta (punkty ECTS):

6

Pełny opis:

Tworzenie oprogramowania. Algorytm Procesor, program, język programowania. Alfabet, składnia i semantyka. Język maszynowy oraz języki

wyższego rzędu. Kompilacja, interpretacja i konsolidacja programu. Zmienne, typy, pierwszy program.

Sterowanie przebiegiem programu. Prawda – fałsz – wstępne uwagi o

wyrażeniach logicznych.Instrukcje złożone w instrukcjach sterujących.

Zakresy ważności nazw, czas życia obiektów, przesłanianie nazw.

Instrukcja warunkowa if ... else.Pętle while i for. Przerwa i kontynuacja wykonywania pętli. Instrukcja skoku. Instrukcja wyboru (switch).

Typ danych, typy podstawowe, reprezentacja danych liczbowych i

znakowych. Pojęcie typu. Rola typu w procesie tworzenia programu, stałe i zmienne.Znaczenie typu w procesie kompilacji. Typy całkowite – reprezentacja liczb. Typ znakowy – kodowanie znaków. Typy zmiennoprzecinkowe - reprezentacja. Arytmetyka (całkowita a

zmiennoprzecinkowa).Definiowanie stałych różnych typów. Konwersje typów, rzutowania.

Zmienne i wyrażenia. Operatory. Operatory matematyczne. Operatory relacyjne. Operatory logiczne. Operatory bitowe. Operator przypisania. Operator rzutowania. Priorytety operatorów. Łączność operatorów.

Złożone typy danych. Tablice i tablice wielowymiarowe. Elementy tablic.

Inicjalizacja tablic. Łańcuchy znaków (tablice znakowe). Formatowanie wejścia/wyjścia. Struktury (rekordy).

Procedury i funkcje. Pojęcie funkcji; zwracanie wyniku; wartość void.

Stos. Przekazywanie parametrów. Prototyp funkcji (typ funkcyjny).

Czas życia i zakres ważności nazwy. Zakres lokalny. Zakres pliku. Zmienne statyczne. Zmienne globalne. Ukrywanie informacji. Funkcje biblioteczne.

Przeciążanie operatorów i funkcji. Istota przeciążania. Zagadnienie identyczności typów argumentów. Dopasowanie argumentów do funkcji przeciążonych.

Dynamiczne zarządzanie pamięcią; wskaźniki. Wskaźniki, referencje i dereferencje. Dynamiczna alokacja pamięci, sterta. Operator sizeof().

Wskaźniki w zastosowaniu do tablic. Wskaźniki w zastosowaniu do

przekazywania parametrów. Wskaźniki do struktur. Wskaźniki do funkcji.

Wskaźniki bez typu (untyped pointers). Tablice wskaźników. Sortowanie tablic wskaźników.

Struktury i klasy. Struktura w C++ (składowe). Klasa:- Składowe klasy. - Modyfikatory dostępu.- Kilka słów o dziedziczeniu.

Operacje wejścia/wyjścia. Operacje wejścia/wyjścia w C (biblioteka studio).

Operacje wejścia/wyjścia w C++. Biblioteka iostream; strumień; strumienie predefiniowane. Sterowanie formatem. Operacje wejścia wyjścia na plikach.

Obsługa błędów.

Treści uzupełniające i rozszerzające. Czas zarezerwowany na prezentację

informacji dodatkowych, uzupełnienie treści, które sprawiły trudności audytorium. Zawartość uzależniona od potrzeb i percepcji studentów.

Projekt. Przedstawienie zasad, wymagań i tworzenie projektu indywidualnego

opartego o paradygmat programowania proceduralnego. Projekt wykorzystuje metody dynamicznego zarządzania pamięcią oraz operacje wejścia/wyjścia.

Literatura:

1. N. Wirth, Wprowadzenie do programowania systematycznego. Wydawnictwo Naukowo-Techniczne.

Warszawa 1978.

2. B. Eckel, Thinking in C, Beta 3 . 2006.

3. B. Eckel, Thinking in C++, Wydawnictwo Helion, 2002

4. J. Grębosz, Symfonia C++, Oficyna Kallimach, Kraków 1993.

Efekty uczenia się:

E01-umie wyrazić wybrane algorytmy w postaci sieci działań, potrafi

formułować odpowiednie warunki logiczne i zapisać je za pomocą

wyrażeń i operatorów zgodnie ze składnią języka programowania.

E02-zna podstawowe konstrukcje programistyczne (instrukcje sterujące,

wywoływanie procedur i funkcji oraz różne typy przekazywania

parametrów).

E03-zna podstawowe wbudowane typy danych, a w szczególności różne

sposoby reprezentacji danych liczbowych, zasady arytmetyki,

ograniczenia i błędy zaokrągleń; rozumie problemy związane z

implementacją arytmetyki abstrakcyjnej (matematycznej) w komputerach.

E04-zna zasady tworzenia złożonych typów danych (tablice, struktury,

rekordy/struktury) i potrafi je stosować w algorytmach i programach

opisujących sytuacje praktyczne.

E05-zna zasady dynamicznego zarządzania pamięcią (wskaźniki z typem

i bez typu - w tym wskaźniki do funkcji, przydział i zwalnianie

pamięci) oraz umie implementować podstawowe dynamiczne

struktury danych (kolejka, stos, lista, tablica wskaźników).

E06-potrafi czytać i analizować kod "proceduralny" napisany w języku

C/C++ i rozumie istotę i efekty wykonywanych operacji.

E07-potrafi pisać programy proceduralne w języku C, C++, uruchamiać

je i testować w środowisku Dev-C++ oraz sprawdzarkach

automatycznych; potrafi pisać programy wykonujące operacje na

plikach.

Metody i kryteria oceniania:

ocena zadań programistycznych, zadania domowe, zaangażowanie i praca na zajęciach

Zajęcia w cyklu "Semestr zimowy 2023/2024" (zakończony)

Okres: 2023-10-01 - 2024-02-25
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Wykład, 30 godzin więcej informacji
Zajęcia laboratoryjne, 30 godzin więcej informacji
Koordynatorzy: Karolina Skotarczak-Dobrzyńska, Jerzy Szymański
Prowadzący grup: Karolina Skotarczak-Dobrzyńska, Jerzy Szymański
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Wykład - Egzamin
Zajęcia laboratoryjne - Zaliczenie z notą
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet im. Adama Mickiewicza w Poznaniu.
ul. Wieniawskiego 1
61-712 Poznań
tel: +48 61 829 4000
kontakt deklaracja dostępności mapa serwisu USOSweb 7.1.2.0-5 (2025-06-04)