Nazwa przedmiotu:
Języki programowania
Koordynator przedmiotu:
Waldemar SMOLIK
Status przedmiotu:
Obowiązkowy
Poziom kształcenia:
Studia I stopnia
Program:
Inżynieria Biomedyczna
Grupa przedmiotów:
Przedmioty techniczne
Kod przedmiotu:
JP
Semestr nominalny:
1 / rok ak. 2015/2016
Liczba punktów ECTS:
6
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
30 godz wykład, 30 godz laboratorium, 15 godz projekt, 10 godz przygotowanie do wykładu, 10 godz konsultacje, 5 godz obrona projektów, 15 godz przygotowanie projektu 15 godz przygotowanie i sprawozdania do laboratoriów 10 godz Przygotowanie do kolokwiów Razem 140 godz - 6 ECTS
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
30 godz wykład, 30 godz laboratorium, 15 godz projekt, 10 godz konsultacje, 5 obrona projektów, Razem 90 godz - 5 ECTS
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
30 godz laboratorium, 15 godz projekt, 5 obrona projektów, 15 przygotowanie projektu, 15 przygotowanie i sprawozdania do laboratoriów Razem 80 godz - 4 ECTS
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia0h
  • Laboratorium30h
  • Projekt15h
  • Lekcje komputerowe0h
Wymagania wstępne:
brak
Limit liczby studentów:
90
Cel przedmiotu:
Celem przedmiotu jest przekazanie słuchaczom zasad konstruowania programów w językach strukturalnych i obiektowych. Języki strukturalne zostaną omówione na przykładzie języka C a języki obiektowe na przykładzie C++. W ramach laboratorium studenci nabędą umiejętność tworzenia programów narzędziowych z graficznym interfejsem użytkownika.
Treści kształcenia:
Zakres wykładu 1. Podstawowe pojęcia: algorytm, program. 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. Priorytety i łączność operatorów. Operatory arytmetyczne i przyrównania. Operator podstawienia. L-wartości. Operatory post- i pre-inkrementacji, dekrementacji. Operatory bitowe i logiczne. 2. Blok kodu, funkcja. Funkcja main z argumentami wywołania. Zmienna lokalna i globalna. Zasięg i "żywotność" zmiennych. Klasy zmiennych: static, auto, register, zmienne globalne. Deklaracja zmiennej jako extern. Instrukcja warunkowa if/else, switch. Instrukcja break. Instrukcje iteracyjne: for, while, do/while. Instrukcja continue. 3. Tablica. Struktura, unia. Instrukcja typedef. 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. Dynamiczna alokacja pamięci. Funkcje malloc i free. Lista dowiązaniowa dwukierunkowa. 4. Wejście i wyjście w C. Obsługa plików. Tryby otwarcia: tekstowy i binarny. Synchronizacja zawartości strumienia i zawartości pliku. Preprocesor. 5. Sprawdzian 1 (20 pkt) 6. Podstawowe pojęcia: klasa, obiekt, kapsułkowanie, dziedziczenie. Paradygmat projektowania obiektowego. Zasady dostępu w klasie: pola prywatne i publiczne. Kontekst wprowadzany przez klasę. Konstruktory i destruktory. Konstruktor kopiujący. 7. Zasadnicze rozszerzenia w stosunku do C. Referencja i wskaźnik. Modyfikator const. Identyfikacja funkcji przez nagłówek. Przeciążanie funkcji. Przeciążanie operatorów. Domyślne wartości parametrów formalnych. 8. Strumieniowe wejście/wyjście. Funkcje i klasy zaprzyjaźnione. Wyjątki: sposób zgłaszania i przechwytywania, dziedziczenie wyjątków. 9. Dziedziczenie. Dziedziczenie wielokrotne klasy bazowej. Zasady dostępu do pól klasy bazowej. Sposób realizacji dziedziczenia. Wirtualne dziedziczenie. Wirtualne metody. Szablony. Standardowa biblioteka klas szablonowych. 10. Graficzny interfejs użytkownika. Systemy „okienkowe”. Obsługa urządzeń graficznych na przykładzie wybranej biblioteki. 11. Sprawdzian 2 (20 pkt) 1
Metody oceny:
Laboratorium - 60 pkt Sprawdzian 1 - 20 pkt Sprawdzian 2 - 20 pkt Punkty są przeliczne na oceny wg tabeli 0-50 -> 2 51-60 -> 3 61-70 -> 3.5 71-80 -> 4 81-90 -> 4.5 91-100 -> 5
Egzamin:
tak
Literatura:
1. B. Kernighan, D. Ritchie, Język ANSI C, WNT, 2004 2. B. Stroustrup, Język C++, WNT, 2002 3. N. Wirth, Algorytmy + struktury danych = programy 4. P. Wróblewski, Algorytmy. Struktury danych i techniki programowania, Helion 2003 5. A. Lippmann, Programowanie obiektowe 6. P. Silvester, System operacyjny unix. 7. S. Lippman, Podstawy języka C++, WNT, 2003 8. S. Prata, Język C++. Szkoła programowania, Wydanie V, Helion, 2006 9. H. Schild, C++, ReadMe, 2002 10. N. Josuttis, C++. Biblioteka standardowa. Podręcznik programisty; Helion, 2003 11. S. Mayers, STL w praktyce. 50 sposobów efektywnego wykorzystania; Helion, 2004 12. R. Lischner, STL. Leksykon kieszonkowy, Helion, O’Reilly, 2004
Witryna www przedmiotu:
www.ire.pw.edu.pl/~wsmolik/JezykiProgramowania
Uwagi:
brak

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Efekt W1
znajmomość języka C i C++
Weryfikacja: dwa sprawdziany, laboratorium, projekt
Powiązane efekty kierunkowe: K_W04
Powiązane efekty obszarowe: T1A_W02, T1A_W07

Profil ogólnoakademicki - umiejętności

Efekt U1
umiejętność projektowania i kodowania programów w języku strukturalnym C i obiektowym C++
Weryfikacja: laboratorium, projekt
Powiązane efekty kierunkowe: K_U02, K_U03
Powiązane efekty obszarowe: T1A_U02, T1A_U07, T1A_U03, T1A_U06, T1A_U07

Profil ogólnoakademicki - kompetencje społeczne

Efekt K1
ma świadomość wagi umiejętności programowania w życiu społecznym
Weryfikacja: projekt
Powiązane efekty kierunkowe: K_K01, K_K07
Powiązane efekty obszarowe: T1A_K01, T1A_K03