Politechnika Warszawska - Centralny System Uwierzytelniania
Strona główna

Podstawy programowania

Informacje ogólne

Kod przedmiotu: 103B-TExxx-ISP-PRM
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Podstawy programowania
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Algorytmy i techniki programowania )-Elektronika, Telekomunikacja-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:

PRM

Numer wersji:

2

Skrócony opis:

Celem przedmiotu jest zapoznanie studentów z paradygmatem programowania strukturalnego. W ramach przedmiotu przekazywana będzie dobra praktyka programowania strukturalnego oraz umiejętność abstrakcji problemów i ich zapisu w języku programowania. W ramach laboratorium studenci nabywać będą sprawności w posługiwaniu się narzędziami wspomagającymi pracę programisty, a także ze środowiskiem systemu operacyjnego. Kontynuacją przedmiotu jest programowanie obiektowe.

Pełny opis:

Celem przedmiotu jest zapoznanie studentów z paradygmatem programowania strukturalnego. W ramach przedmiotu przekazywana będzie dobra praktyka programowania strukturalnego oraz umiejętność abstrakcji problemów i ich zapisu w języku programowania. W ramach laboratorium studenci nabywać będą sprawności w posługiwaniu się narzędziami wspomagającymi pracę programisty, a także ze środowiskiem systemu operacyjnego. Kontynuacją przedmiotu jest programowanie obiektowe.



Treść wykładu
Podstawowe pojęcia: algorytm, program, informatyka, programowanie. Narzędzia wspomagające programowanie. Pojęcie typu i wartości. Pierwszy program w języku C.
System operacyjny. System plików. Zasoby i ich ochrona. Procesy. Praca zdalna. Narzędzia ftp, telnet. Poczta elektroniczna.
Stałe: typ i wartość. Zmienne: typ, wartość, nazwa. Typy podstawowe języka C. Niejawne rzutowanie typów. Pojecie deklaracji i definicji zmiennej. Wyrażenia i instrukcje. Operatory arytmetyczne i przyrównania. Operator podstawienia. L-wartości.

Funkcja jako nazwany blok kodu. Pojęcie zmiennej lokalnej i globalnej. Przysłanianie zmiennych. Parametry formalne i aktualne: Instrukcja return. Niejawne rzutowania podczas uzgadniania parametrów formalnych i aktualnych oraz przy ustalaniu wartości zwracanej. Funkcje typu void.
Bloki kodu. Instrukcja if/else. Instrukcja switch - wielowejściowy blok kodu. Instrukcja break. Pojęcie iteracji. Instrukcje pętli: for, while, do/while. Instrukcja continue. Operatory post- i pre- inkrementacji/dekrementacji. Wyodrębnianie atomów leksykalnych. Priorytety i łączność operatorów. Operatory bitowe i ich relacja z opeatorami logicznymi.Tablica jako ponumerowany zbiór wartości tego samego typu. Pojęcie wskaźnika. Tablice a 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. Funkcja main z argumentami wywołania. Zasięg i "żywotność" zmiennych. Klasy zmiennych: static, auto, register, zmienne globalne. Deklaracja zmiennej jako extern.
Dynamiczna alokacja pamięci. Funkcje malloc i free. Patologie z użyciem dynamicznego przydziału pamięci: lokalna zmienna wskaźnikowa, podstawienie nowej wartości zmiennej wskaźnikowej Sterta. Stos (kolejka LIFO). Przykład alokacji tablicy wielowymiarowej. Struktura (struct) jako zbiór wartości z dostępem przez nazwę.
Wejście i wyjście w C. Pojęcie strumienia. Strumień jako kolejka FIFO. Demony. Strumienie plikowe. Tryby otwarcia: tekstowy i binarny. Synchronizacja zawartości strumienia i zawartości pliku. Preprocesor.
Elementy algorytmiki na podstawie metod sortowania.
Rekurencja: zastosowanie, sposób działania, ślad w pamięci operacyjnej.
Przekazywanie argumentów przez zmienną w innych językach programowania. Organizacja pamięci na stosie. Mechanizmy wywołań funkcji.



Zakres laboratorium
Laboratorium wprowadza umiejętność samodzielnego pisania, uruchamiania, testowania i dokumentacji oprogramowania..


  • System plików, procesy, sposób uruchomiania programów (2h).
  • Edycja tekstu (2h).
  • Praca w sieci: narzędzia ftp, telnet, mail (2h).
  • Pierwszy program (2h).
  • Środowisko uruchomieniowe (2h).
  • Rozdanie tematów zadań i ich analiza; zakres tematyczny: podstawowe instrukcje sterujące i dekompozycja na funkcje (2h).
  • Implementacja programów (2h).
  • Testowanie i odbiór programów (2h).
  • Rozdanie tematów zadań i ich analiza; zakres tematyczny: złożone algorytmy i struktury danych (2h).
  • Weryfikacja specyfikacji wstępnej programu (2h).
  • Dekompozycja na funkcje i struktury danych (2h).
  • Implementacja funkcji (2h).
  • Podział kodu źródłowego na pliki (2h).
  • Uruchamianie i testowanie programów (2h).
  • Odbiór programów i dokumentacji (2h).




Przedmioty podobne
Kod przedmiotuNazwa przedmiotuDyskonto ECTS
103B-INxxx-ISP-PRIPodstawy programowania6

Literatura:

    1. Wirth, N.: Algorytmy + struktury danych = programy.

    2. Kernighan, B., Ritche, D.: Język ANSI C.
    3. Silvester, P.: System operacyjny unix.

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

Okres: 2020-02-22 - 2020-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Marek Niewiński
Prowadzący grup: Michał Borecki, Maciej Jasiński, Maciej Linczuk, Marek Niewiński
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

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, 160 miejsc więcej informacji
Wykład, 30 godzin, 160 miejsc więcej informacji
Koordynatorzy: Marek Niewiński, Andrzej Podgórski
Prowadzący grup: Michał Borecki, Maciej Linczuk, Paweł Linczuk, Marek Niewiński, Andrzej Wojeński
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103500 - Instytut Mikroelektroniki i Optoelektroniki

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

Okres: 2019-02-18 - 2019-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 180 miejsc więcej informacji
Wykład, 30 godzin, 180 miejsc więcej informacji
Koordynatorzy: Daniel Paczesny
Prowadzący grup: Piotr Bobiński, Michał Borecki, Michał Gąska, Arkadiusz Gołaszewski, Maciej Jasiński, Marcin Lewandowski, Daniel Paczesny
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103600 - Instytut Telekomunikacji

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, 155 miejsc więcej informacji
Wykład, 30 godzin, 155 miejsc więcej informacji
Koordynatorzy: Marek Niewiński, Andrzej Podgórski
Prowadzący grup: Michał Borecki, Maciej Linczuk, Paweł Linczuk, Marek Niewiński, Andrzej Podgórski, Andrzej Wojeński
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103400 - Instytut Radioelektroniki i Technik Multimedialnych
103500 - Instytut Mikroelektroniki i Optoelektroniki

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)