Programowanie 1100-1F23
Program:
1. Wprowadzenie
a) C++ a Python i inne języki programowania
b) Algorytmy, kod źródłowy jako zapis algorytmu
c) Kod źródłowy i program, kompilacja, uruchamianie programu
d) Jak stworzyć środowisko do pisania programów w C++
e) Reprezentacje liczb i znaków w komputerze
2. Podstawy języka C++
a) Najprostszy program, struktura programu
b) Standardowe strumienie wejściowe i wyjściowe
c) Zmienne, operatory i wyrażenia
d) Instrukcja warunkowa i pętle
e) Funkcje
f) Wybrane elementy składni z nowych wersji języka C++
3. Proste tablice i pojemniki STL
a) Tablice jednowymiarowe i ich zastosowania
b) "Inteligentna" tablica - vector z biblioteki STL
Poziom średnio-zaawansowany:
c) Inne pojemniki STL
d) Więcej o zwykłych tablicach
e) Wskażniki
f) Argumenty funkcji main
g) Dynamiczne rezerwowanie pamięci
4. Strumienie
a) Więcej o standardowym wejściu i wyjściu
b) Praca z plikami
Poziom średnio-zaawansowany:
c) istringstream,ostringstream
4. Klasy
Poziom średnio-zaawansowany:
a) Konstruktory, prywatne i publiczne metody
b) Funkcje get i set, przyjaciele
c) Przeładowanie operatorów
d) Klasa string
Tylko na wykładzie:
- podstawy obsługi wyjątków w C++ (opcjonalnie)
- dziedziczenie, funkcje wirtualne, polimorfizm
- make/makefiles (opcjonalnie)
Nakład pracy studenta:
Wykład = 15 godzin tygodniowo
Ćwiczenia = 30 godzin tygodniowo
Praca w domu - im więcej praktyki tym lepiej
Kierunek podstawowy MISMaP
Tryb prowadzenia
Założenia (opisowo)
Koordynatorzy przedmiotu
Efekty kształcenia
Studenci, którzy zaliczą przedmiot, powinni:
na poziomie podstawowym:
---------------------------------------------
znać składnię języka C++; umieć zapisać proste algorytmy; znać podstawowe instrukcje sterujące (pętle, instrukcje warunkowe), umieć tworzyć własne funkcje, korzystać z tablic i pojemnika vector, wczytywać dane z tekstowych plików i zapisywać wyniki działania programów do plików.
Powinni także umieć korzystać z internetowej bazy danych zawierajacej informacje o standardowej bibliotece C++.
Na poziomie zaawansowanym dodatkowo:
----------------------------------------------------------------------
studenci powinni między innymi znać podstawy programowania obiektowego i umieć tworzyć własne klasy; umieć korzystać ze wskaźników,, używać argumentów funkcji main i różnych pojemników STL.
Kryteria oceniania
Zasady zaliczenia 2022/2023 i 2023/2024
Na obu poziomach zaawansowania zadania będą dostosowane do poziomu grupy (= do zakresu materiału), ale elementy zaliczenia będą takie same :
1) Sześć mini-"kartkówek" przy komputerach na pierwszych 5-10 min ćwiczeń
2) Kolokwium pisane na kartkach - koniec semestru
3) Na końcowych ćwiczeniach większy projekt pisany przy komputerach
Warunkiem uzyskania zaliczenia jest uzyskanie co najmniej połowy punktów z kolokwium i kartkówek (sumarycznie) i co najmniej połowy punktów za projekt.
Dodatkowe punkty można otrzymać za mini-testy, które odbywają się na ostatnich pięciu minutach każdego wykładu.
Zasady zaliczenia 2020/2021:
1) Sprawdzian pisany na kartkach: dwa programy + pytania testowe z wykładu.
2) 5-minutowe "kartkówki" przy komputerze na początku każdych ćwiczeń.
3) Duży program do napisania w domu + rozmowa zaliczeniowa
na temat tego programu i materiału wykładowego w czasie sesji.
4) Obecność na ćwiczeniach (można mieć co najwyżej dwie nieusprawiedliwione nieobecności).
Na ćwiczeniach wymagana jest znajomość materiału wykładowego z wszystkich wykładów wygłoszonych przed terminem danych ćwiczeń.
Możliwe jest zaliczenie eksternistyczne. Tylko na początku semestru.
Literatura
J. Grębosz, Symfonia C++ standard (dostępna w dużych ilościach w bibliotece,
zawiera większość przerabianego materiału). J.Grębosz opisał nowsze standardy języka C++ w kontynuacjach/rozszerzeniach tej książki.
Więcej informacji
Więcej informacji o poziomie przedmiotu, roku studiów (i/lub semestrze) w którym się odbywa, o rodzaju i liczbie godzin zajęć - szukaj w planach studiów odpowiednich programów. Ten przedmiot jest związany z programami:
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: