Politechnika Warszawska - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

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
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 2020/2021 - sem. zimowy" (jeszcze nie rozpoczęty)

Okres: 2020-10-01 - 2021-02-19
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 30 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: (brak danych)
Prowadzący grup: (brak danych)
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.