Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Metodyka i techniki programowania 1
Tok studiów:
2014/2015
Kod:
IET-1-101-s
Wydział:
Informatyki, Elektroniki i Telekomunikacji
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Elektronika i Telekomunikacja
Semestr:
1
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Strona www:
 
Osoba odpowiedzialna:
prof. dr hab. inż. Zieliński Tomasz (tzielin@agh.edu.pl)
Osoby prowadzące:
dr inż. Bułat Jarosław (kwant@agh.edu.pl)
dr inż. Dańda Jacek (danda@agh.edu.pl)
dr inż. Orzechowski Tomasz Marcin (tomeko@agh.edu.pl)
Wszołek Jacek (jwszolek@kt.agh.edu.pl)
prof. dr hab. inż. Zieliński Tomasz (tzielin@agh.edu.pl)
Krótka charakterystyka modułu

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W001 Zna i rozumie podstawowe pojęcia informatyki, zna architekturę i działanie prostego komputera, zna podstawowe zadania systemu operacyjnego ET1A_W07 Egzamin
M_W002 Zna i rozumie proceduralny język programowania ET1A_W07 Egzamin
M_W003 Zna i rozumie podstawowe mechanizmy budowy algorytmów ET1A_W07 Egzamin
M_W004 Zna i rozumie podstawowe klasyczne algorytmy ET1A_W07 Egzamin
Umiejętności
M_U001 Potrafi rozwiązywać proste zadania algorytmiczne ET1A_U24 Projekt
M_U002 Potrafi zapisywać algorytmy w proceduralnym języku programowania ET1A_U24 Projekt
M_U003 Potrafi stosować proste i strukturalne typy danych ET1A_U24 Projekt
M_U004 Potrafi stosować dekompozycję problemu ET1A_U24 Projekt
Kompetencje społeczne
M_K001 Rozumie potrzebę uczenia się ET1A_K01 Aktywność na zajęciach
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W001 Zna i rozumie podstawowe pojęcia informatyki, zna architekturę i działanie prostego komputera, zna podstawowe zadania systemu operacyjnego + - + - - - - - - - -
M_W002 Zna i rozumie proceduralny język programowania + - + - - - - - - - -
M_W003 Zna i rozumie podstawowe mechanizmy budowy algorytmów + - + - - - - - - - -
M_W004 Zna i rozumie podstawowe klasyczne algorytmy + - + - - - - - - - -
Umiejętności
M_U001 Potrafi rozwiązywać proste zadania algorytmiczne + - + - - - - - - - -
M_U002 Potrafi zapisywać algorytmy w proceduralnym języku programowania + - + - - - - - - - -
M_U003 Potrafi stosować proste i strukturalne typy danych + - + - - - - - - - -
M_U004 Potrafi stosować dekompozycję problemu + - + - - - - - - - -
Kompetencje społeczne
M_K001 Rozumie potrzebę uczenia się + - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:

Zajęcia w ramach modułu prowadzone są w postaci wykładu (30 godzin) oraz ćwiczeń laboratoryjnych (30 godzin)

WYKŁADY

1.Praktyczne korzystanie z uniksopodobnego systemu operacyjnego Linux: rola systemu operacyjnego, wielozadaniowość, wielodostęp, podstawowe polecenia, powłoki, skrypty.
2.Architektura prostego komputera: procesor, pamięć, urządzenia we/wy, przerwania, stos. Cykl rozkazowy procesora, instrukcje kodu maszynowego, język niskiego poziomu, język wysokiego poziomu. Reprezentacja liczb w komputerze, strony kodowe znaków.
3.Język programowania, składnia, semantyka, pragmatyka języka programowania. Sposoby opisu składni i semantyki. Programowanie strukturalne © i obiektowe (C++): preprocesor, kompilacja, konsolidacja, pakiety, moduły, biblioteki. Pierwszy program w języku C.
4-6.Podstawy programowania w języku C: proste typy danych, operacje we/wy, instrukcje sterujące. Tablice i złożone struktury danych. Pliki i operacja na nich. Tryb wskaźnikowy i alokacja pamięci. Procedura, funkcja, przekazywanie parametrów do procedur i funkcji, zmienne lokalne, stos systemowy i jego rola przy wywoływaniu procedur i funkcji. Podejście zstępujące i wstępujące w programowaniu.
7.Informacja, zadanie algorytmiczne, algorytm i sposoby jego zapisu w postaci schematu blokowego. Przykładowe proste algorytmy i ich implementacja programowa.
8.Funkcje rekurencyjne. Mechanizm rekurencji i jego realizacja na poziomie kodu maszynowego. Problemy rozwiązywane z użyciem rekurencji, celowość stosowania rozwiązań rekurencyjnych.
9.Podstawowe algorytmy sortowania i wyszukiwania, także algorytmy rekurencyjne. Zasada “dziel-i-rządź” w algorytmach. Algorytm wyszukiwania połówkowego.
10.Statyczne i dynamiczne struktury danych. Lista jedno-, dwu-kierunkowa, drzewo, kolejka, stos. Porównywanie algorytmów.
11-12.Język C++: obiekt, klasa, dziedziczenie, hermetyzacja, polimorfizm, wirtualność. Przykładowe programy.
13.Struktury dynamiczne w języku C++ na przykładzie kontenerów STL typu „list” i „vector”.
14.Paradygmaty w programowaniu. Technologie programowania. Rodzaje języków programowania: proceduralne, obiektowe; interpretowane, kompilowane, mieszane; skryptowe; imperatywne, deklaratywne.
15.Podstawowe pojęcia ze złożoności obliczeniowej algorytmów. Złożoność obliczeniowa, funkcja złożoności obliczeniowej, rząd złożoności obliczeniowej. Algorytmy wielomianowe i wykładnicze – przykłady problemów. Problemy nierozwiązywalne, problem stopu.

Ćwiczenia laboratoryjne:

ĆWICZENIA LABORATORYJNE

W module prowadzone są zajęcia laboratoryjne (komputerowe), w trakcie których studenci piszą skrypty komend systemu operacyjnego LINUX w języku wybranej powłoki oraz programy w języku C. Treści tych zajęć ugruntowują i rozszerzają wiedzę przekazywaną podczas wykładów.
1.Wprowadzenie do rodziny systemów uniksopodobnych (Linux). Podstawowe komendy powłoki, wyrażenia regularne, zmienne środowiskowe, zmienne powłoki.
2.Zarządzanie prawami dostępu, struktura katalogów. Pisanie skryptów w powłokach z rodziny csh i sh.
3.Operacje na plikach i strumieniach powłoce systemów uniksopodobnych.
4.Wprowadzenie do języka C, deklaracja, definicja, podstawowa struktura programu.
5.Różne rodzaje pętli, operacje wejścia-wyjścia.
6.Obliczenia w języku C, korzystanie z bibliotek niestandardowych.
7.Instrukcje sterujące, proste i złożone warunki logiczne, operatory binarne.
8.Tablice jedno i wielowymiarowe. Operacje na tablicach.
9.Łańcuchy znakowe, stałe znakowe. Operacje wejścia wyjścia oraz manipulacje łańcuchami znakowymi.
10.Złożone typy danych – struktury i unie.
11.Operacje na plikach. Różne metody dostępu do danych zapisanych w systemie plików systemu operacyjnego.
12.Wskaźniki. Deklaracja, inicjalizacja, zmiana wartości wskaźnika i wskazywanych przez nie zmiennych. Podstawowe operacje na danych za pomocą wskaźników.
13.Praktyczna ilustracja na podstawie pojedynczych zmiennych, łańcuchów znakowych oraz złożonych struktur danych.
14.Funkcje. Definicje, deklaracje, przekazywanie danych przez wartość i wskaźnik.
15.Sprawdzenie wiadomości. Wystawienie ocen.

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 125 godz
Punkty ECTS za moduł 5 ECTS
Udział w wykładach 30 godz
Samodzielne studiowanie tematyki zajęć 35 godz
Udział w ćwiczeniach laboratoryjnych 30 godz
Przygotowanie sprawozdania, pracy pisemnej, prezentacji, itp. 30 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

1.Aby uzyskać pozytywną ocenę końcową niezbędne jest uzyskanie pozytywnej oceny z ćwiczeń laboratoryjnych oraz egzaminu.
2.Obliczamy średnią arytmetyczną z ocen zaliczenia i egzaminów uzyskanych we wszystkich terminach.
3.Wyznaczmy ocenę końcową na podstawie zależności:
if sr>4.75 then OK:=5.0 else
if sr>4.25 then OK:=4.5 else
if sr>3.75 then OK:=4.0 else
if sr>3.25 then OK:=3.5 else OK:=3
4.Jeżeli pozytywną ocenę z ćwiczeń i egzaminu uzyskano w pierwszym terminie oraz ocena końcowa jest mniejsza niż 5.0 to ocena końcowa jest podnoszona o 0.5

Wymagania wstępne i dodatkowe:

Znajomość matematyki (systemy pozycyjne, kombinatoryka, logarytmy, itp.)

Zalecana literatura i pomoce naukowe:

1.G. Brookshear: Informatyka w ogólnym zarysie, WNT, 2003
2.W. Stallings: Organizacja i architektura systemu komputerowego. WNT, Warszawa 2004.
3.P. P. Silvester: System operacyjny UNIX. WNT, Warszawa 1990.
4.B.W. Kernighan, D.M. Ritchie: Język C. WNT, Warszawa 1988.
5.J. Grębosz: Symfonia C++ standard. Wydawnictwo Edition 2000, Kraków 2005.
6.S. Prata: Język C. Szkoła programowania. wyd. 5, Helion, Gliwice 2006.
7.D. Harel, F.Yishai: Rzecz o istocie informatyki – algorytmika, WNT, 2008
8.N. Wirth: Algorytmy + Struktury danych = Programy. WNT, Warszawa 1989.
9.P. Wróblewski: Algorytmy, struktury danych i techniki programowania. Helion, Gliwice 2003.

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Brak