Uniwersytet Marii Curie-Skłodowskiej w Lublinie - Centralny System Uwierzytelniania
Strona główna

Podstawy programowania

Informacje ogólne

Kod przedmiotu: MFI-I.1Z.063
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Podstawy programowania
Jednostka: Instytut Informatyki
Grupy:
Strona przedmiotu: https://kampus.umcs.pl/course/view.php?id=32520
Punkty ECTS i inne: 7.00 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.
Język prowadzenia: polski
Wymagania wstępne:

Podstawy obsługi komputera

Godzinowe ekwiwalenty punktów ECTS:

Na przyznaną liczbę 7 punktów ECTS składają się :


1. Godziny kontaktowe (z udziałem nauczyciela akademickiego)

- wykład: 30,

- laboratorium: 60.


Łączna liczba godzin z udziałem nauczyciela akademickiego: 90.

Liczba punktów ECTS z udziałem nauczyciela akademickiego: 3,60.


2. Godziny nie kontaktowe (praca własna studenta)

- samodzielne rozwiązywanie zadań projektowych: 50,

- przygotowanie się do laboratorium: 10,

- przygotowanie się do kolokwiów: 10,

- przygotowanie się do egzaminu: 10,

- studiowanie literatury: 5.


Łączna liczba godzin niekontaktowych: 85.

Liczba punktów ECTS za godziny niekontaktowe: 3,40.


Sumaryczna liczba punktów ECTS dla modułu: 7.


Sposób weryfikacji efektów kształcenia:

Warunkiem zaliczenia przedmiotu jest udział studenta w przewidzianych planem studiów zajęciach dydaktycznych oraz uzyskanie pozytywnych ocen z prac objętych tymi zajęciami.


1. Wykład:

- obecność na zajęciach (w minimum 85% wymiaru godzinowego), (K01, K02, K03).


2. Laboratorium:

- frekwencja na poziomie ponad 85% (K01, K03),

- dwa śródsemestralne kolokwia, (W01-W07, U01, U02, U03, U04, K03, U06),

- kartkówki na laboratoriach, (W01-W07, U01, U03, U04, K03, U06),

- aktywność na laboratoriach, (U01, U03, U04, U05).


Warunkiem uzyskania zaliczenia z laboratorium będzie uzyskanie łącznie ponad 50 punktów (na 100 możliwych) z kolokwiów oraz od prowadzących laboratoria.


3. Egzamin:

- egzamin pisemny/ustny (próg zaliczenia >50% punktów)

(W01-W07, U01, U02, U03, U04, K03, U06)


Nieobecności mogą być usprawiedliwione wyłącznie w przypadku przedstawienia:

- zwolnienia lekarskiego,

- zaświadczenia o innej ważnej okoliczności, udokumentowane i zaakceptowane przez prowadzącego (np. udział w zawodach sportowych, konferencji, wydarzeniu uczelnianym, ważnym wydarzeniu rodzinnym, itp) ,

- w przypadku działania siły wyższej.

Pełny opis:

Elementarne wprowadzenie do podstaw programowania. W trakcie kursu przedstawione zostaną podstawowe zagadnienia programowania, takie jak algorytm, kod źródłowy, program oraz podstawowe umiejętności pisania i debugowania programu.

Podczas kursu wprowadzony zostanie język C/C++, który będzie podstawowym narzędziem do implementacji poruszanych zagadnień.

Omawiane w czasie wykładu i laboratoriów tematy będą ilustrowane rzeczywistymi problemami programistycznymi, takimi jak: algorytmy wyszukiwania i sortowania, operacje na macierzach, całkowanie numeryczne, geometria wektorowa, symulacje fizyczne, analiza tekstu czy metody statystyczne.

Podczas zajęć będzie wykorzystywany system linux i pakiet kompilatorów GCC.

Zakres treści:

1. Wstęp i omówienie języka, przegląd.

2. Pojęcie zmiennej i typu, sposoby reprezentacji liczb całkowitych i zmiennoprzecinkowych, rzutowanie zmiennych, idea wyrażenia w języku C/C++.

3. Instrukcje sterujące (warunkowe, wyboru, iteracji, skoku).

4. Funkcje - definiowanie i użycie.

5. Tablice - automatyczne tablice jedno- i wielo-wymiarowe.

6. Operacje bitowe.

7. Wprowadzenie do algorytmów, sortowanie, wyszukiwanie, rekurencja, porównanie złożoności czasowej.

8. Obsługa napisów - podstawowe operacje przeprowadzane na łańcuchach znakowych.

9. Wskaźniki - operatory adresu i dereferencji, arytmetyka wskaźników, wskaźniki a funkcje.

10. Dynamiczna alokacja i zarządzanie pamięcią.

11. Dynamiczne tablice wielowymiarowe.

12. Biblioteka standardowa (funkcje matematyczne, liczby pseudolosowe, funkcje czasu i daty).

13. Struktury - implementacja podstawowych struktur danych.

14. Biblioteka wejścia/wyjścia (obsługa plików tekstowych i binarnych).

15. Sposoby projektowania i debugowania kodu, błędy kompilacji i wykonania.

Literatura:

1. Kernighan B., Ritchie D., „Język ANSI C”, Wydanie 2, Helion, 2010 (ebook, 2020).

- wersja orginalna: "The C Programming Language". Second Edition, Prentice Hall, 1988.

2. Grębosz J., „Opus magnum C++. Programowanie w języku C++", Wydanie III,, Helion, 2024.

3. Prata S., „Język C++. Szkoła programowania”, Wydanie VI, Helion, 2012.

- wersja orginalna: "C++ Primer Plus", Addison-Wesley Educational Publishers Inc; 6 Edition, 2011.

4. Krzaczkowski, J., „Zadania z programowania w jezyku C/C++”, cz. 1, Instytut Informatyki UMCS, Lublin, 2011.

5. Krzaczkowski, J., „Zadania z programowania w jezyku C/C++”, cz. 2, Instytut Informatyki UMCS, Lublin, 2012.

Efekty uczenia się:

Wiedza:

W01 - student zna pojęcie algorytmu i wie jak go zaprojektować [K_W05]

W02 - student zna podstawowe instrukcje sterujące [K_W03, K_W05]

W03 - student zna budowę i zastosowanie podstawowych i pochodnych typów danych [K_W01, K_W03]

W04 - student zna i rozumie ideę funkcji w języku programowania [K_W03, K_W05, K_W09]

W05 - student rozumie sposoby dynamicznego zarządzania pamięcią operacyjną [K_W04]

W06 - student wie jak realizować operacje wejścia/wyjścia i operować na plikach [K_W03, K_W04]

W07 - student rozumie paradygmat programowania proceduralnego i strukturalnego [K_W09]

Umiejętności:

U01 - student umie projektować i tworzyć kod w języku C++ [K_U01, K_U06]

U02 - student potrafi zaimplementować algorytm w języku C++ [K_U01]

U03 - student potrafi skutecznie wyszukiwać błędy w kodzie źródłowym [K_U01, K_U02]

U04 - student umie stworzyć praktyczną aplikację konsolową [K_U01]

U05 - student potrafi komunikować się z użyciem specjalistycznej terminologii programistycznej [K_U03]

U06 - student potrafi tworzyć algorytmy i programy komputerowe [K_U04]

Kompetencje społeczne:

K01 - student rozumie potrzebę samodoskonalenia i zna własne ograniczenia [K_K01]

K02 - student potrafi samodzielnie wyszukiwać informacje w literaturze [K_K02]

K03 - student rozumie pojęcia uczciwości intelektualnej i postępowania etycznego [K_K06]

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

Okres: 2024-10-01 - 2025-02-03
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 60 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Marcin Denkowski
Prowadzący grup: Emil Benedykciuk, Marcin Denkowski, Beata Dmitruk, Krzysztof Dmitruk, Bartłomiej Kotyra, Łukasz Kurant, Rafał Niedziółka-Domański
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin

Zajęcia w cyklu "Semestr zimowy 2025/2026" (w trakcie)

Okres: 2025-10-01 - 2026-02-24
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 60 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Marcin Denkowski
Prowadzący grup: Emil Benedykciuk, Marcin Denkowski, Krzysztof Dmitruk, Łukasz Kurant, Rafał Niedziółka-Domański, Joanna Potiopa
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Marii Curie-Skłodowskiej w Lublinie.
kontakt deklaracja dostępności mapa serwisu USOSweb 7.3.0.0