Politechnika Warszawska - Centralny System Uwierzytelniania
Strona główna

Podstawy programowania

Informacje ogólne

Kod przedmiotu: 103A-IRxxx-ISP-POPRO
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Podstawy programowania
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Informatyka techniczna )-Inżynieria internetu rzeczy-inż.-EITI
( Przedmioty techniczne )---EITI
Punkty ECTS i inne: 4.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
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

POPRO

Numer wersji:

1

Skrócony opis:

Przedmiot ma na celu nauczenie studentów podstaw programowania strukturalnego z użyciem języka C. W ramach podstaw nauki języka C, zostaną przedstawione struktury danych oraz wybrane algorytmy. Student po zakończeniu przedmiotu będzie mógł się wykazać wiedzą z zakresu zrozumienia złożoności obliczeniowej, zastosowania języka strukturalnego do konstruowania struktur danych oraz konstruowania prostych algorytmów obliczeniowych. Zdobędzie umiejętnościami w zakresie implementacji prostych struktur danych w postaci kodu programu, zastosowania odpowiedniego algorytmu do rozwiązania postawionego zadania i zaimplementowania go w postaci kodu programu, posługiwania się zintegrowanym środowiskiem programistycznym w tym aplikacją do wersjonowania kodu programu oraz sprawnego posługiwania się strukturalnym językiem programowania. Zapozna się również z podstawami konstruowania programu komputerowego w zakresie zastosowania zmiennych, wyrażeń, funkcji, konstrukcji programistycznych.

Pełny opis:

Treść wykładu

  1. Sprawy organizacyjne, regulamin przedmiotu, podstawowe pojęcia, biblioteka standardowa. (2 godz.)
  2. Pierwszy program, błędy, zintegrowane środowisko uruchomieniowe, system wersjonowania kodu Git, debugger. (2 godz.)
  3. Podstawowe typy języka C, podstawowe operatory, stałe, zmienne, komentarze, łańcuch znakowe i formatowane wejście/wyjście - wstęp. (2 godz.)
  4. Operatory logiczne: relacji, inkrementacji, dekrementacji. Tablice. Instrukcja if. Pętle for i while. Sterowanie przebiegiem pętli. (2 godz.)
  5. Instrukcja switch. Menu w trybie tekstowym. Funkcja jako nazwany blok kodu. Przekazywanie argumentów przez wartość. Wskaźniki, tablice - wstęp. Przekazywanie argumentów przez wskazanie. Pojęcie zmiennej lokalnej i globalnej. Programowanie strukturalne na przykładzie zadania sortowania - sortowanie bąbelkowe. (2 godz.)
  6. Tablice wielowymiarowe. Struktury, typedef. (2 godz.)
  7. Dynamiczna alokacja pamięci. Lista jednokierunkowa. Enum. Powtórzenie przed kolokwium I. (2 godz.)
  8. Sprawdzenie efektów uczenia się - kolokwium nr I. (2 godz.)
  9. Obsługa plików tekstowych. Łańcuchy znakowe i funkcje łańcuchowe. Arytmetyka na wskaźnikach. (2 godz.)
  10. Odczytywanie sformatowanego pliku tekstowego. Pliki binarne. Manipulowanie bitami. Priorytety operatorów w C. (2 godz.)
  11. Klasy pamięci. Podział kodu na moduły. Styl kodowania. Narzędzie make. (2 godz.)
  12. Lista jednokierunkowa z sortowaniem. Kolejka FIFO. (2 godz.)
  13. Rekurencja, przykłady zadań rekurencyjnych. Drzewo BST. Wskaźniki do funkcji. Sortowanie szybkie. Przeszukiwanie binarne. (2 godz.)
  14. Oprogramowanie urządzeń IoT. Powtórzenie przed kolokwium II. (2 godz.)
  15. Sprawdzenie efektów uczenia się - kolokwium nr II. (2 godz.)


Zakres laboratorium

  1. Konta. Konsola. Zintegrowane środowisko uruchomieniowe. Pierwszy program, standardowe wyjście i wejście. Podstawowe komendy systemu Linuks.
  2. Wersjonowanie oprogramowania, umieszczanie kodów programów w repozytorium, praca grupowa. Zapoznanie się z wybranymi bibliotekami. Dokumentacja i sprawozdania.
  3. Typy proste, "typ" łańcuchowy. Stałe i zmienne. Podstawowe operacje arytmetyczne.
  4. Pętle for, while, do-while. Instrukcje sterujące if-else, switch, break, continue.
  5. Funkcje, zmienne globalne i lokalne. Wskaźniki, przekazywanie argumentów do funkcji przez wartość i wskazanie.
  6. Wskaźniki, tablice, "typ" łańcuchowy.
  7. Proste algorytmy sortowania (sortowanie bąbelkowe, sortowanie przez wstawianie).
  8. Struktury, typ wyliczeniowy, dynamiczna alokacja pamięci.
  9. Złożone struktury danych - lista jednokierunkowa.
  10. Obsługa plików (zapis/odczyt, binarnie/tekstowo). Złożone projekty, pliki nagłówkowe, pliki makefile. Projekt - rozdanie tematów.
  11. Zadanie projektowe – prezentacja koncepcji rozwiązania zadania.
  12. Zadanie projektowe – praca nad zadaniem, ocena aktualnego stanu zadania.
  13. Zadanie projektowe – praca nad zadaniem, ocena aktualnego stanu zadania.
  14. Zadanie projektowe – prezentacja rozwiązania zadania projektowego.
Literatura:

  • Robert Sedgewick, Kevin Wayne (2012) - Algorithms.
  • K.N. King: Język C. Nowoczesne programowanie.
  • Stephen Prata: Język C. Szkoła programowania. Wydanie VI.
  • N. Wirth: Algorytmy + struktury danych = programy.
Metody i kryteria oceniania:

Sprawdzanie założonych efektów uczenia się realizowane jest przez:

  • ocenę wiedzy i umiejętności związanych z realizacją zadań laboratoryjnych – ocena z wybranych ćwiczeń laboratoryjnych oraz zadania projektowego;
  • ocenę wiedzy wykazanej na dwóch kolokwiach pisemnych.

Zajęcia w cyklu "rok akademicki 2023/2024 - sem. zimowy" (zakończony)

Okres: 2023-10-01 - 2024-02-18
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 25 miejsc więcej informacji
Wykład, 30 godzin, 25 miejsc więcej informacji
Koordynatorzy: Daniel Paczesny
Prowadzący grup: Krystian Ignasiak, Sebastian Kozłowski, Daniel Paczesny
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103600 - Instytut Telekomunikacji

Zajęcia w cyklu "rok akademicki 2022/2023 - sem. zimowy" (zakończony)

Okres: 2022-10-01 - 2023-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Daniel Paczesny
Prowadzący grup: Krystian Ignasiak, Sebastian Kozłowski, Daniel Paczesny
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103600 - Instytut Telekomunikacji

Zajęcia w cyklu "rok akademicki 2021/2022 - sem. zimowy" (zakończony)

Okres: 2021-10-01 - 2022-02-22
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Daniel Paczesny
Prowadzący grup: Krystian Ignasiak, Sebastian Kozłowski, Daniel Paczesny
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103600 - Instytut Telekomunikacji

Zajęcia w cyklu "rok akademicki 2020/2021 - sem. zimowy" (zakończony)

Okres: 2020-10-01 - 2021-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Daniel Paczesny
Prowadzący grup: Łukasz Dąbała, Krystian Ignasiak, Sebastian Kozłowski, Daniel Paczesny
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103600 - Instytut Telekomunikacji

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.
pl. Politechniki 1, 00-661 Warszawa tel: (22) 234 7211 https://pw.edu.pl kontakt deklaracja dostępności USOSweb 7.0.0.0-7 (2024-03-18)