Nazwa przedmiotu:
Algorytmy i podstawy programowania
Koordynator przedmiotu:
dr inż. Marek Gągolewski
Status przedmiotu:
Obowiązkowy
Poziom kształcenia:
Studia I stopnia
Program:
Matematyka
Grupa przedmiotów:
Wspólne
Kod przedmiotu:
M1APP
Semestr nominalny:
1 / rok ak. 2013/2014
Liczba punktów ECTS:
4
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
60 (przygotowanie do laboratoriów punktowanych i kolokwiów)
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
2
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
2
Formy zajęć i ich wymiar w semestrze:
  • Wykład15h
  • Ćwiczenia15h
  • Laboratorium30h
  • Projekt0h
  • Lekcje komputerowe0h
Wymagania wstępne:
brak
Limit liczby studentów:
Bez limitu
Cel przedmiotu:
Znajomość podstawowych struktur danych. i metod ich implementacji. Umiejętność konstruowania algorytmów i ich implementowania w języku C.
Treści kształcenia:
1. Etapy tworzenia oprogramowania. Algorytm. 2. Podstawy organizacji i działania komputerów. Reprezentacja liczb całkowitych i zmiennopozycyjnych. 3. Podstawy języka C++. Operatory arytmetyczne, logiczne i relacyjne. Instrukcja warunkowa i pętle. 4. Tablice jednowymiarowe. Proste algorytmy sortowania. 5. Funkcje. Przekazywanie parametrów przez wartość i przez referencję. Rekurencja. 6. Wskaźniki. Dynamiczna alokacja pamięci. Kod ASCII. Łańcuchy znaków. 7. Macierze. 8. Struktury w języku C++. Podstawowe abstrakcyjne typy danych: kolejki, stosy, kolejki priorytetowe, drzewa binarne. Dynamiczne struktury danych: lista, drzewo binarne.
Metody oceny:
W ciągu semestru przeprowadzane są dwa kolokwia (każde z nich można poprawiać jeden raz). Na każdych zajęciach laboratoryjnych studenci dostają proste zadania, które należy samodzielnie rozwiązać (napisać program) w ciągu trwania zajęć. Programy oceniane są pod koniec każdych zajęć laboratoryjnych (kilka pierwszych laboratoriów ocenianych jest wyłącznie "dla studenta" i nie liczy się przy wystawianiu oceny). Na ostatnich zajęciach laboratoryjnych możliwe jest poprawienie oceny wystawianej na podstawie wyników poszczególnych laboratoriów. Ocena końcowa ustalana jest na podstawie wyników kolokwiów i laboratoriów w stosunku 60% oceny z kolokwiów/ 40 % oceny z laboratoriów. Osoby, które wykażą się znajomością zasad programowania w języku C mogą być zwolnione z uczęszczania na zajęcia w pierwszym semestrze.
Egzamin:
nie
Literatura:
1. Brian W. Kernighan, Dennis M. Ritchie, Język C, Wydawnictwa Naukowo-Techniczne 2. Niklaus Wirth, Algorytmy + struktury danych = programy, Wydawnictwa Naukowo-Techniczne  
Witryna www przedmiotu:
brak
Uwagi:

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Efekt APP_W_01
Ma wiedzę w zakresie podstaw architektury i działania komputerów, reprezentacji liczb całkowitych i zmiennopozycyjnych oraz ograniczeń ich arytmetyki.
Weryfikacja: zaliczenie
Powiązane efekty kierunkowe: ML_W15
Powiązane efekty obszarowe: X1A_W01, X1A_W04, X1A_W05
Efekt APP_W_02
Zna pojęcie asymptotycznej złożoności obliczeniowej algorytmów.
Weryfikacja: zaliczenie
Powiązane efekty kierunkowe: ML_W15
Powiązane efekty obszarowe: X1A_W01, X1A_W04, X1A_W05
Efekt APP_W_03
Zna podstawowe abstrakcyjne typy danych: stos, kolejkę, kolejkę priorytetową, słownik.
Weryfikacja: zaliczenie
Powiązane efekty kierunkowe: ML_W16
Powiązane efekty obszarowe: X1A_W01, X1A_W03, X1A_W04
Efekt APP_W_04
Zna podstawowe dynamiczne struktur danych: listę jednokierunkową, drzewo binarne.
Weryfikacja: zaliczenie
Powiązane efekty kierunkowe: ML_W16
Powiązane efekty obszarowe: X1A_W01, X1A_W03, X1A_W04
Efekt APP_W_05
Zna proste algorytmy sortowania tablic: przez wstawianie, przez wybór, babelkowe.
Weryfikacja: zaliczenie
Powiązane efekty kierunkowe: ML_W16
Powiązane efekty obszarowe: X1A_W01, X1A_W03, X1A_W04
Efekt APP_W_06
Ma wiedzę w zakresie podstaw programowania deklaratywnego w języku C++.
Weryfikacja: zaliczenie
Powiązane efekty kierunkowe: ML_W17
Powiązane efekty obszarowe: X1A_W01, X1A_W03, X1A_W04, X1A_W05

Profil ogólnoakademicki - umiejętności

Efekt APP_U_01
Potrafi formułować w postaci pseudokodu rozwiązania prostych problemów algorytmicznych (w szczególności dot. działań na tablicach i macierzach).
Weryfikacja: zaliczenie
Powiązane efekty kierunkowe: ML_U16
Powiązane efekty obszarowe: X1A_U01, X1A_U04
Efekt APP_U_02
Potrafi implementować w języku C++ i testować rozwiązania prostych problemów algorytmicznych.
Weryfikacja: zaliczenie
Powiązane efekty kierunkowe: ML_U16
Powiązane efekty obszarowe: X1A_U01, X1A_U04
Efekt APP_U_03
Potrafi analizować poprawność prostych algorytmów i analizować ich złożoność czasową i pamięciową.
Weryfikacja: zaliczenie
Powiązane efekty kierunkowe: ML_U16
Powiązane efekty obszarowe: X1A_U01, X1A_U04
Efekt APP_U_04
Potrafi wykorzystywać w swoich programach gotowe funkcje biblioteczne i studiować ich dokumentację.
Weryfikacja: zaliczenie
Powiązane efekty kierunkowe: ML_U16
Powiązane efekty obszarowe: X1A_U01, X1A_U04