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

Podstawy programowania

Informacje ogólne

Kod przedmiotu: 103B-INxxx-ISP-PRI Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Podstawy programowania
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Informatyka )-Automatyka i robotyka-inż.-EITI
( Metody programowania )-Informatyka-inż.-EITI
( Przedmioty techniczne )---EITI
Punkty ECTS i inne: 6.00
Język prowadzenia: polski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

PRI

Numer wersji:

2

Skrócony opis:

Nauczanie podstaw algorytmizacji problemów. Zapoznanie z techniką programowania strukturalnego. Wprowadzenie do programowania w językach wysokiego poziomu. Praktyczna nauka podstaw programowania w oparciu o język C. Przegląd wybranych algorytmów i struktur danych w oparciu o reprezentację sładniową języka PASCAL. Wprowadzenie do podstawowych pojęć inżynierii oprogramowania - specyfikacja, dokumentacja, testowanie i pielęgnacja oprogramowania.

Pełny opis:

Nauczanie podstaw algorytmizacji problemów. Zapoznanie z techniką programowania strukturalnego. Wprowadzenie do programowania w językach wysokiego poziomu. Praktyczna nauka podstaw programowania w oparciu o język C. Przegląd wybranych algorytmów i struktur danych w oparciu o reprezentację sładniową języka PASCAL. Wprowadzenie do podstawowych pojęć inżynierii oprogramowania - specyfikacja, dokumentacja, testowanie i pielęgnacja oprogramowania.


Treść wykładu
Wprowadzenie. Pojęcia podstawowe: algorytm proces. Reprezentowanie algorytmów. Translacja. Kompilacja i konsolidacja programu.Biblioteki. Środowisko kodowania i uruchamiania programów - edytor, kompilator, debuger (2h).
Podstawy algorytmizacji. Dekompozycja problemu. Podejście strukturalne do projektowania algorytmów. Konstruowanie prostych algorytmów. Iteracja i rekursja. Ocena jakości algorytmu. Testowanie algorytmu; dobór danych wejściowych, badanie przypadków granicznych i wyjątków. Sprawność i złożoność algorytmu (4h).
Języki programowania. Przegląd - od maszynowo zorientowanych do proceduralnych. Syntaktyka i sposoby jej opisu - diagramy syntaktyczne, notacja BNF. Semantyka. Typy instrukcji/operacji: obliczeniowe, wejścia/wyjścia,sterujące - składnia dla języka PASCAL. Podstawowe typy danych i ich reprezentacja. Pojęcie podprogramu - modularność i hierarchizacja; wsparcie języka programowania (4h).
Elementy języka C:
Program w C - pliki źródłowe. Dyrektywy preprocesora. Pojęcie podstawowe - deklaracje i definicje; struktury danych i funcje. Funkcja main. Symbole i komentarze. Słowa kluczowe, identyfikatory, operatory i separatory.Liczbowe typy danych - typy int (short/long, signed/unsigend ), float/double/long double, char. Literały czyli stałe - liczbowe, znakowe, napisowe. Deklaracje i definicje zmiennych i ich inicjowanie. Elementarna struktura programu - zasięg delaracji.

Wyrażenia arytmetyczne i logiczne - operatory; priorytety i łączność. Typ wyniku wyrażenia. Przypisanie i l-wartość. Priorytety operatorów - zestawienie.

Instrukcje - wyrażeniowe i złożone (bloki). Instrukcje sterujące - warunkowe if, wyboru switch, pętli - while,do..while, for oraz break i continue. Operator przecinkowy i jego zastosowanie. Przykład.

Funkcje - pojęcia podstawowe. Typ funkcji; typ void. Zaniedbanie rezultatu funcji. Parametry formalne i aktualne. Przekazywanie parametrów przez wartość. Zmienne statyczne i automatyczne. Zmienne rejestrowe. Zwracanie wartości funkcji - instrukcja return.
Delaracje stałych - wyliczenia i stałe nazwane a dyrektywa #define. Adresy zmiennych i wskaźniki - operatory wskazania & i wyłuskania *. Przekazywanie parametrów do funkcji przez wskaźniki. Dynamiczna alokacja pamięci - funkcje molloc oraz free i ich zastosowanie.
Preprocesor - pliki nagłówkowe i kompilacja warunkowa. Definicje i makrodefinicje.
Operacje wejścia/wyjścia: Standardowe funkcje we/wy w C - plik nagłówkowy stdio.h:getchar, printf, scanf. Strumienie standardowe programu - stdin, stdout, stderr. Pliki.
Tablice - jedno - i wielowymiarowe, inicjowanie. Tablice a wskaźniki - arytmetyka adresów. Tablice znakowe i napisy. Manipulacje na znakach - funkcje zadeklarowane w pliku string.h. Przekazywanie argumentów do programu - parametry standardowe funkcji main.
Struktury i wskaźniki do struktur. Struktury dynamiczne. Operator składowej. Deklaracja typedef. Unie. (10)h.
Elementy wybranych algorytmów. Elementarne algorytmy iteracyjne. Tablice i struktury - manipulacje na tekstach, algorytmy sortowania itd. Iteracja a rekurencja-rekurencyjne wersje wybranych algorytmów itercyjnych poznanych uprzednio. Algorytmy z nawrotami. Dynamiczne struktury danych - algorytmy dla list i drzew. Wyszukiwanie.(10h).


Treść ćwiczeń
Metodyka projektowania strukturalnego. Wybór algorytmu. Specyfikacja programu. Dyskusja wybranych algorytmów. Symulacja algorytmu. Wprowadzenie do problematyki wykazywania poprawności algorytmu. W ramach ćwiczeń przeprowadzane są 2 kolokwia.


Zakres laboratorium
W ramach laboratorium realizowane są 4 indywidualne projekty programów w języku C (w środowisku C++) o następującej tematyce:

  1. Prosty program iteracyjny
  2. Zastosowanie tablic i struktur
  3. Dynamiczne struktury danych - listy, drzewa
  4. Program łączący problematykę z 2 i 3 oraz manipulacje na plikach


Przedmioty podobne
Kod przedmiotuNazwa przedmiotuDyskonto ECTS
103B-TExxx-ISP-PRMPodstawy programowania4

Literatura:

    1. N. Wirth, Algorytmy + struktury danych = programy
    2. Kernighan, Ritchie, Język ANSI C

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

Okres: 2019-02-18 - 2019-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 115 miejsc więcej informacji
Laboratorium, 30 godzin, 115 miejsc więcej informacji
Wykład, 30 godzin, 115 miejsc więcej informacji
Koordynatorzy: Tomasz Śliwiński
Prowadzący grup: Paweł Bortnowski, Piotr Firek, Marcin Kaczkan, Mariusz Kaleta, Paweł Komorowski, Agnieszka Mossakowska-Wyszyńska, Piotr Pałka, Marek Sutkowski, Tomasz Śliwiński, Piotr Witoński, Izabela Żółtowska
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103100 - Instytut Automatyki i Informatyki Stosowanej

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

Okres: 2018-10-01 - 2019-02-17
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 185 miejsc więcej informacji
Laboratorium, 30 godzin, 185 miejsc więcej informacji
Wykład, 30 godzin, 185 miejsc więcej informacji
Koordynatorzy: Rafał Biedrzycki
Prowadzący grup: Rafał Biedrzycki, Piotr Firek, Piotr Garbat, Jakub Jasiński, Wiktor Kuśmirek, Marta Łępicka, Grzegorz Mazur, Julian Myrcha, Witold Oleszkiewicz, Kacper Radzikowski, Krzysztof Siwiec, Marek Sutkowski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

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

Okres: 2018-02-19 - 2018-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 115 miejsc więcej informacji
Laboratorium, 30 godzin, 115 miejsc więcej informacji
Wykład, 30 godzin, 115 miejsc więcej informacji
Koordynatorzy: Tomasz Śliwiński
Prowadzący grup: Mariusz Kaleta, Piotr Pałka, Tomasz Śliwiński, Piotr Witoński
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103100 - Instytut Automatyki i Informatyki Stosowanej

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

Okres: 2017-10-01 - 2018-02-18
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 185 miejsc więcej informacji
Laboratorium, 30 godzin, 185 miejsc więcej informacji
Wykład, 30 godzin, 185 miejsc więcej informacji
Koordynatorzy: Henryk Dobrowolski
Prowadzący grup: Henryk Dobrowolski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2016/2017 - sem. letni" (zakończony)

Okres: 2017-02-20 - 2017-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 115 miejsc więcej informacji
Laboratorium, 30 godzin, 115 miejsc więcej informacji
Wykład, 30 godzin, 115 miejsc więcej informacji
Koordynatorzy: Tomasz Śliwiński
Prowadzący grup: Tomasz Śliwiński
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103100 - Instytut Automatyki i Informatyki Stosowanej

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

Okres: 2016-10-01 - 2017-02-19
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 200 miejsc więcej informacji
Laboratorium, 30 godzin, 200 miejsc więcej informacji
Wykład, 30 godzin, 200 miejsc więcej informacji
Koordynatorzy: Henryk Dobrowolski
Prowadzący grup: Henryk Dobrowolski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2015/2016 - sem. letni" (zakończony)

Okres: 2016-02-23 - 2016-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 120 miejsc więcej informacji
Laboratorium, 30 godzin, 120 miejsc więcej informacji
Wykład, 30 godzin, 120 miejsc więcej informacji
Koordynatorzy: Tomasz Śliwiński
Prowadzący grup: Tomasz Śliwiński
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103100 - Instytut Automatyki i Informatyki Stosowanej

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

Okres: 2015-10-01 - 2016-02-22
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 191 miejsc więcej informacji
Laboratorium, 30 godzin, 191 miejsc więcej informacji
Wykład, 30 godzin, 191 miejsc więcej informacji
Koordynatorzy: Henryk Dobrowolski
Prowadzący grup: Henryk Dobrowolski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2014/2015 - sem. letni" (zakończony)

Okres: 2015-02-23 - 2015-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 100 miejsc więcej informacji
Laboratorium, 30 godzin, 100 miejsc więcej informacji
Wykład, 30 godzin, 100 miejsc więcej informacji
Koordynatorzy: Tomasz Śliwiński
Prowadzący grup: Tomasz Śliwiński
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103100 - Instytut Automatyki i Informatyki Stosowanej

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

Okres: 2014-09-29 - 2015-02-22
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 180 miejsc więcej informacji
Laboratorium, 30 godzin, 180 miejsc więcej informacji
Wykład, 30 godzin, 180 miejsc więcej informacji
Koordynatorzy: Henryk Dobrowolski
Prowadzący grup: Henryk Dobrowolski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2013/2014 - sem. letni" (zakończony)

Okres: 2014-02-24 - 2014-09-28
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 115 miejsc więcej informacji
Laboratorium, 30 godzin, 115 miejsc więcej informacji
Wykład, 30 godzin, 115 miejsc więcej informacji
Koordynatorzy: Joanna Putz-Leszczyńska
Prowadzący grup: Joanna Putz-Leszczyńska
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103100 - Instytut Automatyki i Informatyki Stosowanej

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

Okres: 2013-10-01 - 2014-02-23
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 160 miejsc więcej informacji
Laboratorium, 30 godzin, 160 miejsc więcej informacji
Wykład, 30 godzin, 160 miejsc więcej informacji
Koordynatorzy: Henryk Dobrowolski
Prowadzący grup: Henryk Dobrowolski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2012/2013 - sem. letni" (zakończony)

Okres: 2013-02-20 - 2013-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 115 miejsc więcej informacji
Laboratorium, 30 godzin, 115 miejsc więcej informacji
Wykład, 30 godzin, 115 miejsc więcej informacji
Koordynatorzy: Henryk Dobrowolski, Joanna Putz-Leszczyńska
Prowadzący grup: Joanna Putz-Leszczyńska
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103100 - Instytut Automatyki i Informatyki Stosowanej
103200 - Instytut Informatyki

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

Okres: 2012-10-01 - 2013-02-19
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 130 miejsc więcej informacji
Laboratorium, 30 godzin, 130 miejsc więcej informacji
Wykład, 30 godzin, 130 miejsc więcej informacji
Koordynatorzy: Henryk Dobrowolski
Prowadzący grup: Henryk Dobrowolski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.