Politechnika Warszawska - Centralny System Uwierzytelniania
Strona główna

Podstawy informatyki i programowania

Informacje ogólne

Kod przedmiotu: 103A-INxxx-ISP-PIPR
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Podstawy informatyki i programowania
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Informatyka )-Automatyka i robotyka-inż.-EITI
( Metody wytwarzania oprogramowania )-Informatyka-inż.-EITI
( Przedmioty techniczne )---EITI
Punkty ECTS i inne: 6.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:

PIPR

Numer wersji:

1

Skrócony opis:

Celem przedmiotu jest przekazanie podstawowej wiedzy dotyczącej podstaw informatyki programowania. Obejmuje ona: podstawy architektury systemów komputerowych, reprezentację bitową liczb i znaków, algorytmizację problemów, pojęcie złożoności obliczeniowej, zasady programowania strukturalnego, podstawowe struktury danych, wyjątki. Wprowadzone zostanie pojęcie niezawodności wraz z objaśnieniem stosowania testów jednostkowych i systemowych. Przedstawione zostaną podstawowe narzędzia programistyczne: środowisko zintegrowane, debugger, system kontroli wersji, generator dokumentacji. Praktyczna nauka podstaw programowania prowadzona będzie w oparciu o język Python. Studenci będą utrwalać wiedzę teoretyczną i zdobywać umiejętności praktyczne dzięki realizacji ciekawych zadań i projektów programistycznych.

Pełny opis:

Celem przedmiotu jest przekazanie podstawowej wiedzy dotyczącej podstaw informatyki programowania. Obejmuje ona: podstawy architektury systemów komputerowych, reprezentację bitową liczb i znaków, algorytmizację problemów, pojęcie złożoności obliczeniowej, zasady programowania strukturalnego, podstawowe struktury danych, wyjątki. Wprowadzone zostanie pojęcie niezawodności wraz z objaśnieniem stosowania testów jednostkowych i systemowych. Przedstawione zostaną podstawowe narzędzia programistyczne: środowisko zintegrowane, debugger, system kontroli wersji, generator dokumentacji. Praktyczna nauka podstaw programowania prowadzona będzie w oparciu o język Python. Studenci będą utrwalać wiedzę teoretyczną i zdobywać umiejętności praktyczne dzięki realizacji ciekawych zadań i projektów programistycznych.



Treść wykładu

  1. Wprowadzenie (2 godz.)
    Informacje o przedmiocie. Regulamin przedmiotu. Podstawowe pojęcia: program, algorytm. Pseudokod i schemat blokowy. Stworzenie pierwszego programu komputerowego. Debugger. Zintegrowane środowisko uruchomieniowe.
  2. Podstawy (2 godz.)
    Podstawy architektury systemów komputerowych. Języki maszynowe, assemblery, języki wysokopoziomowe, kompilatory i interpretery. Podstawowe typy danych i ich reprezentacje bitowe, w tym reprezentacja znaków i łańcuchów znakowych. Algorytmizacja problemów, pojęcie złożoności obliczeniowej. Specyfikacja wymagań, projektowanie, tworzenie zadań.
  3. Podstawowe elementy programu (2 godz.)
    Typy wbudowane, operatory. Podejmowanie decyzji, powtarzanie. Funkcje. Moduły i pakiety.
  4. Paradygmaty programowania (2 godz.)
    Paradygmaty programowania wspierane przez Pythona: zasady programowania strukturalnego, podstawowe struktury danych; wstęp do programowania obiektowego: klasy i instancje.
  5. Struktury danych i algorytmy (4 godz.)
    Tworzenie własnych struktur danych takich jak listy i drzewa. Podstawowe algorytmy: sortowanie, przeszukiwanie binarne.
  6. Pobieranie i zwracanie danych (4 godz.)
    Pobieranie i wypisywanie danych na strumienie standardowe. Praca z plikami (samodzielnie i z użyciem bibliotek: csv, json, xml). Wyrażenia regularne. Sprawdzanie danych wejściowych i formatu plików. Argumenty wywołania programu.
  7. Narzędzia (2 godz.)
    Środowisko zintegrowane, debugger, profiler, linter, system kontroli wersji, generator dokumentacji. Styl kodowania, PEP.
  8. Niezawodność oprogramowania (2 godz.)
    Pojęcie niezawodności oprogramowania, testy jednostkowe i systemowe. Sprawdzanie pokrycia testami. Wyjątki.
  9. Reużywalność kodu (2 godz.)
    O potrzebie tworzenia reużywalnego kodu oraz o wyższości dobrze przetestowanych modułów nad własnymi implementacjami. Przegląd możliwości biblioteki standardowej i wybranych bibliotek zewnętrznych. Generowanie liczb pseudolosowych.
  10. Rekurencja (2 godz.)
    Rekurencyjne typy danych. Rekurencyjne algorytmy: problem wież Hanoi. Przeszukiwanie z nawrotami: problem konika szachowego.
  11. Graficzny interfejs użytkownika (2 godz.)
    Prosty program z GUI.
  12. Sprawdzenie efektów uczenia się (4 godz.)
    Pierwsze kolokwium po zrealizowaniu siódmego tematu (2 godz.). Drugie kolokwium kończące przedmiot (2 godz.)


    1. Zakres projektu
      Projekt to większe zadanie do samodzielnego zrealizowania. Zadnie powinno być ciekawe, np. gra. Konsultowanie, dyskutowanie postępów i ocenianie projektu odbywa się na spotkaniach w laboratorium.

      Zakres laboratorium
      Na kilku początkowych spotkaniach studenci realizują oddzielne zadanie na każdym spotkaniu. Na pozostałych pracują nad małym zadaniem projektowym oraz konsultują duże zadanie, które realizowane jest samodzielnie w ramach Projektu.
      1. Organizacja laboratoriów. Podstawowe polecenia systemu operacyjnego Linux. Przesyłanie plików: ssh. Uruchomienie pierwszego programu. Rozdanie tematów małego zadania projektowego.
      2. Narzędzia: zintegrowane środowisko programistyczne. Debugger. Linter. Kontrola wersji. Rozdanie tematów dużego zadania projektowego, które będzie realizowane w ramach Projektu.
      3. Tworzenie prostych programów: typy danych, operatory, sterowanie przebiegiem wykonania programu, pętle.
      4. Tworzenie funkcji, tworzenie własnych typów danych.
      5. Tworzenie własnych kontenerów: listy, drzewa.
      6. Implementacja prostych algorytmów: sortowanie, przeszukiwanie binarne.
      7. Komunikacja obiektów ze światem zewnętrznym: konsola, pliki.
      8. Obsługa sytuacji wyjątkowych. Testy jednostkowe.
      9. Praca nad małym zadaniem projektowym, omówienie postępów prac nad dużym projektem. Omówienie dokumentacji.
      10. Praca nad małym zadaniem projektowym, omówienie postępów prac nad dużym projektem. Ocena przyjętych założeń, ocena szkieletu programu. Przypomnienie dobrych praktyk programistycznych.
      11. Praca nad małym zadaniem projektowym, omówienie postępów prac nad dużym projektem.
      12. Praca nad małym zadaniem projektowym, omówienie postępów prac nad dużym projektem.
      13. Praca nad małym zadaniem projektowym, omówienie postępów prac nad dużym projektem.
      14. Omówienie i ocena obu projektów.
Literatura:

  • Mark Summerfield: Python 3. Kompletne wprowadzenie do programowania, Wydanie II, Helion, 2010.
  • Niklaus Wirth: Algorytmy + struktury danych = programy, WNT, 2004.
  • David Beazley, Brian K. Jones: Python. Receptury, Wydanie III, Helion, 2014.
Metody i kryteria oceniania:

Sprawdzanie założonych efektów kształcenia realizowane jest przez:

  • ocenę wiedzy i umiejętności związanych z realizacją zadań laboratoryjnych – ocena z wybranych ćwiczeń laboratoryjnych oraz zadania projektowego;
  • ocena projektu;
  • 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, 210 miejsc więcej informacji
Projekt, 15 godzin, 210 miejsc więcej informacji
Wykład, 30 godzin, 210 miejsc więcej informacji
Koordynatorzy: Piotr Gawkowski
Prowadzący grup: Jan Dubiński, Piotr Gawkowski, Waldemar Grabski, Rajmund Kożuszek, Wojciech Masarczyk, Mateusz Modrzejewski, Katarzyna Nałęcz-Charkiewicz, Łukasz Neumann, Witold Oleszkiewicz, Wojciech Sitek, Eryk Warchulski, Witold Wysota
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

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, 214 miejsc więcej informacji
Projekt, 15 godzin, 214 miejsc więcej informacji
Wykład, 30 godzin, 214 miejsc więcej informacji
Koordynatorzy: Piotr Gawkowski
Prowadzący grup: Kamil Deja, Jan Dubiński, Piotr Gawkowski, Waldemar Grabski, Rajmund Kożuszek, Wojciech Masarczyk, Mateusz Modrzejewski, Katarzyna Nałęcz-Charkiewicz, Łukasz Neumann, Witold Oleszkiewicz, Michał Ostapowicz, Michał Rudowski, Wojciech Sitek, Eryk Warchulski, Witold Wysota
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

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

Okres: 2022-02-23 - 2022-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 30 miejsc więcej informacji
Projekt, 15 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Tomasz Śliwiński
Prowadzący grup: Mariusz Kaleta, Paweł Kubik, Witold Oleszkiewicz, Piotr Pałka, 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 2021/2022 - sem. zimowy" (zakończony)

Okres: 2021-10-01 - 2022-02-22
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 210 miejsc więcej informacji
Projekt, 15 godzin, 210 miejsc więcej informacji
Wykład, 30 godzin, 210 miejsc więcej informacji
Koordynatorzy: Piotr Gawkowski
Prowadzący grup: Kamil Deja, Piotr Gawkowski, Konrad Grochowski, Mateusz Modrzejewski, Katarzyna Nałęcz-Charkiewicz, Łukasz Neumann, Witold Oleszkiewicz, Michał Ostapowicz, Przemysław Stawczyk, Eryk Warchulski, Witold Wysota
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

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

Okres: 2021-02-20 - 2021-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 30 miejsc więcej informacji
Projekt, 15 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Tomasz Śliwiński
Prowadzący grup: Mariusz Kaleta, Arkadiusz Łuczyk, Łukasz Neumann, Witold Oleszkiewicz, Piotr Pałka, Tomasz Śliwiński, Witold Wysota
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 2020/2021 - sem. zimowy" (zakończony)

Okres: 2020-10-01 - 2021-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 210 miejsc więcej informacji
Projekt, 15 godzin, 210 miejsc więcej informacji
Wykład, 30 godzin, 210 miejsc więcej informacji
Koordynatorzy: Piotr Gawkowski
Prowadzący grup: Kamil Deja, Piotr Gawkowski, Waldemar Grabski, Konrad Grochowski, Paweł Kubik, Jakub Łyskawa, Piotr Maciąg, Mateusz Modrzejewski, Katarzyna Nałęcz-Charkiewicz, Łukasz Neumann, Witold Oleszkiewicz, Michał Ostapowicz, Kacper Radzikowski, Witold Wysota
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

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, 30 miejsc więcej informacji
Projekt, 15 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Tomasz Śliwiński
Prowadzący grup: Witold Oleszkiewicz, Tomasz Śliwiński, Witold Wysota
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 2019/2020 - sem. zimowy" (zakończony)

Okres: 2019-10-01 - 2020-02-21
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 210 miejsc więcej informacji
Projekt, 15 godzin, 210 miejsc więcej informacji
Wykład, 30 godzin, 210 miejsc więcej informacji
Koordynatorzy: Piotr Gawkowski
Prowadzący grup: Piotr Gawkowski, Konrad Grochowski, Wiktor Kuśmirek, Mateusz Modrzejewski, Łukasz Neumann, Witold Oleszkiewicz, Łukasz Skonieczny, Agnieszka Szmurło, Witold Wysota
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.
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)