Politechnika Warszawska - Centralny System Uwierzytelniania
Strona główna

Podstawy programowania

Informacje ogólne

Kod przedmiotu: 103A-IBxxx-ISP-PPR
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Podstawy programowania
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Podstawy informatyki )-Inżynieria biomedyczna-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
114000 - Wydział Mechatroniki

Kod wydziałowy:

PPR

Numer wersji:

1

Skrócony opis:

Celem przedmiotu jest zapoznanie studentów z podstawami programowania strukturalnego i algorytmiki. Dodatkowo w ramach przedmiotu przedstawiane są podstawy systemu operacyjnego UNIX (na przykładzie systemu GNU/Linux) niezbędne do pracy w tym systemie w ramach laboratoriów. W zakresie podstaw programowania oczekuje się opanowania przez studentów procesu przejścia z opisu rzeczywistego zadania przez abstrakcyjny opis algorytmu na jego zapis formalny w języku C. Student posiądzie wiedzę i umiejętności w zakresie podstaw tworzenia algorytmów oraz praktycznego wykorzystania języka programowania na wybranych, elementarnych przykładach. Wybór języka C podyktowany jest tym, że stanowi on podstawę wielu języków wyższego poziomu, a także jest szeroko wykorzystywany w technice mikroprocesorowej. Bazowym standardem dla wykładu jest wersja C99.

Pełny opis:

Treść wykładu

  1. Wprowadzenie do systemu UNIX (4h)
    1. Zapoznanie się ze środowiskiem UNIX - procesy, uruchamianie i zatrzymywanie programów, separacja użytkowników, organizacja systemu plików.
    2. Podstawowe polecenia konsoli w zakresie obsługi plików, obsługi potoków i komunikacji sieciowej.
  2. Programowanie strukturalne w języku C (24h)
    1. Podstawowe pojęcia: algorytm, program. Przekładanie opisu rzeczywistości na algorytm komputerowy. Określenie złożoności obliczeniowej algorytmów na wybranych przykładach. Algorytmy iteracyjne i rekurencyjne.
    2. Proces przetwarzania tekstu programu na postać zrozumiałą dla maszyny - preprocessing, kompilacja i konsolidacja. Zarządzanie kodem programu.
    3. Podstawy leksyki i gramatyki języka C. Stałe: typ i wartość. Zmienne: typ, wartość, nazwa. Typy podstawowe języka C. Niejawne rzutowanie typów. Pojęcie deklaracji i definicji zmiennej (klasa extern). Wyrażenia i instrukcje. Priorytety i łączność operatorów. Operatory arytmetyczne i przyrównania. Operator podstawienia. L-wartości. Operatory post- i pre-inkrementacji, dekrementacji. Operatory bitowe i logiczne.
    4. Blok kodu, funkcja. Zmienna lokalna i globalna. Zasięg i "żywotność" zmiennych. Klasy zmiennych: static, auto, register. Instrukcja języka C - warunkowa if/else, switch. Instrukcja break. Instrukcje iteracyjne: for, while, do/while. Instrukcja continue.
    5. Tablica. Struktura, unia. Instrukcja typedef. Pojęcie wskaźnika. Tablice i wskaźniki. "Typ" łańcuchowy. Operatory referencji i dereferencji. Arytmetyka wskaźników. Rzutowanie wskaźników. Przekazywanie argumentu funkcji przez wskazanie. Przekazywanie tablicy do funkcji. Dynamiczna alokacja pamięci. Funkcje malloc i free. Wejście i wyjście w C. Obsługa plików. Synchronizacja zawartości strumienia i zawartości pliku.
    6. Algorytmy i struktury danych: lista dowiązaniowa, sortowanie, drzewo, algorytmy matematyczne.
  3. Sprawdziany (2h)

Zakres laboratorium

  1. Wprowadzenie do systemu UNIX. (4h)
  2. System plików, procesy, sposób uruchamiania programów. Edycja tekstu. (2h)
  3. Pierwszy program. Środowisko uruchomieniowe. Podział kodu na fragmenty. Zarządzanie kompilacją i konsolidacją. Narzędzie make. (2h)
  4. Implementacja prostych zadań programistycznych. (2h)
  5. Debugger - uruchamianie, wyszukiwanie błędów i analiza działania programów. (4h)
  6. Implementacja prostych zadań programistycznych. (4h)
  7. Struktury, implementacja listy dowiązaniowej, dynamiczne zarządzanie pamięcią. (4h)
  8. Implementacja wybranego algorytmu (np. sortowania, drzewa poszukiwań, struktury słownikowej). (4h)
  9. Sprawdzian praktyczny. (2h)
Literatura:

  • B.W. Kernighan, D.M. Ritchie, "Język ANSI C", Wydanie II, Helion, Warszawa 2010.
  • Clovis L. Tondo, Scott E. Gimpel, "Język ANSI C. Programowanie. Ćwiczenia.", Wydanie II, Helion, 2010.
  • Stephen Prata, "Język C. Szkoła programowania.", Wydanie VI, Helion, 2016.
  • Richard Reese, "Wskaźniki w języku C. Przewodnik.", Helion, 2014.
  • Robert Sedgewick, Kevin Wayne, "Algorytmy", Wydanie IV, Helion, 2012.

● Clovis L. Tondo, Scott E. Gimpel, Język ANSI C. Programowanie. Ćwiczenia. Wydanie II, Helion, 2010

● Stephen Prata, Język C. Szkoła programowania. Wydanie VI, Helion, 2016,

● Richard Reese, Wskaźniki w języku C. Przewodnik, Helion, 2014,

● Robert Sedgewick, Kevin Wayne, Algorytmy. Wydanie IV, Helion, 2012

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, 90 miejsc więcej informacji
Wykład, 30 godzin, 90 miejsc więcej informacji
Koordynatorzy: Robert Kurjata
Prowadzący grup: Krzysztof Dygnarowicz, Robert Kurjata, Michał Wieteska, Przemysław Wróblewski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103400 - Instytut Radioelektroniki i Technik Multimedialnych

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, 90 miejsc więcej informacji
Wykład, 30 godzin, 90 miejsc więcej informacji
Koordynatorzy: Robert Kurjata
Prowadzący grup: Krzysztof Dygnarowicz, Robert Kurjata, Michał Wieteska, Przemysław Wróblewski, Marcin Ziembicki
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103400 - Instytut Radioelektroniki i Technik Multimedialnych

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, 90 miejsc więcej informacji
Wykład, 30 godzin, 90 miejsc więcej informacji
Koordynatorzy: Robert Kurjata
Prowadzący grup: Krzysztof Dygnarowicz, Jacek Kryszyn, Robert Kurjata, Andrzej Rychter, Michał Wieteska, Marcin Ziembicki
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103400 - Instytut Radioelektroniki i Technik Multimedialnych

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, 90 miejsc więcej informacji
Wykład, 30 godzin, 90 miejsc więcej informacji
Koordynatorzy: Robert Kurjata
Prowadzący grup: Jacek Kryszyn, Robert Kurjata, Andrzej Rychter, Michał Wieteska, Przemysław Wróblewski, Marcin Ziembicki
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103400 - Instytut Radioelektroniki i Technik Multimedialnych

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

Okres: 2019-10-01 - 2020-02-21
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 90 miejsc więcej informacji
Wykład, 30 godzin, 90 miejsc więcej informacji
Koordynatorzy: Robert Kurjata
Prowadzący grup: Grzegorz Bogdan, Jacek Kryszyn, Robert Kurjata, Wojciech Obrębski, Andrzej Rychter, Przemysław Wróblewski, Marcin Ziembicki
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103400 - Instytut Radioelektroniki i Technik Multimedialnych

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

Okres: 2018-10-01 - 2019-02-17
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 90 miejsc więcej informacji
Wykład, 30 godzin, 90 miejsc więcej informacji
Koordynatorzy: Robert Kurjata
Prowadzący grup: Wojciech Obrębski, Ewa Piątkowska-Janko, Damian Wanta, Przemysław Wróblewski, Marcin Ziembicki
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103400 - Instytut Radioelektroniki i Technik Multimedialnych

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.2.0-2 (2024-03-29)