1 OPISY KURSÓW • Kod kursu: MCD2101 • Nazwa kursu
Transkrypt
1 OPISY KURSÓW • Kod kursu: MCD2101 • Nazwa kursu
OPISY KURSÓW Kod kursu: MCD2101 Nazwa kursu: Podstawy informatyki Język wykładowy: polski Forma kursu Tygodniowa liczba godzin ZZU * Semestralna liczba godzin ZZU* Forma zaliczenia Punkty ECTS Liczba godzin CNPS Wykład Ćwiczenia 2 Laboratorium 2 30 30 ocena ocena 1 1 Poziom kursu (podstawowy/zaawansowany): Wymagania wstępne: Projekt Seminarium Technologie informacyjne Imię, nazwisko i tytuł/ stopień prowadzącego: Dr inż. Krzysztof Urbański Imiona i nazwiska oraz tytuły/stopnie członków zespołu dydaktycznego: Dr inż. Krzysztof Urbański Dr inż. Artur Wymysłowski Rok: ............ Semestr:........................ Typ kursu (obowiązkowy/wybieralny): Cele zajęć (efekty kształcenia): Zdobycie wiedzy o językach C, C++. Umiejętność tworzenia podstawowych algorytmów w językach wysokiego poziomu oraz w postaci schematów blokowych. Programowanie proceduralne oraz wprowadzenie do programowania zorientowanego obiektowo. Posługiwanie się technikami programistycznymi zapewniającymi przenośność danych i kodu między różnymi systemami i urządzeniami. Forma nauczania (tradycyjna/zdalna): Krótki opis zawartości całego kursu: Kurs ma za zadanie zapoznać studentów kierunku “elektronika i telekomunikacja” z praktycznymi zastosowaniami języków wysokiego poziomu, w szczególności C. Docelowym środowiskiem są zarówno komputery osobiste klasy PC, jak i mikrokontrolery jednoukładowe. W trakcie realizacji kursu przedstawione zostaną metody projektowania i implementacji popularnych algorytmów. 1 Wykład (podać z dokładnością do 2 godzin): Zawartość tematyczna poszczególnych godzin wykładowych 1. Tworzenie projektów w wybranych IDE. Współpraca aplikacji z systemem operacyjnym i stdio. Zasada działania kompilatora, programu konsolidującego (linker). Śledzenie krokowe (debugger). 2. Struktura projektu w C: moduły i pliki nagłówkowe 3. Obsługa standardowego wejścia/wyjścia w języku C/C++. Formatowanie danych. Przetwarzanie potokowe. Techniki programowania zabezpieczające program przed błędami typu przepełnienie bufora i nieoczekiwany format danych. 4. Reprezentacja liczb całkowitych w języku C/C++. Podstawowe typy danych. Przenośność danych na poziomie bitowym między różnymi architekturami. 5. Liczby i obliczenia zmiennoprzecinkowe. Skończona dokładność obliczeń i problemy z tym związane. 6. Ciągi znaków w języku C. Tablice i wskaźniki. Systemy kodowania znaków – strony kodowe. Rozszerzony zestaw znaków UNICODE a język C. 7. Funkcje. Przeciążanie. Przekazywanie argumentów przez wartość, wskaźnik, referencję. 8. Algorytmy rekurencyjne na przykładzie grafiki żółwia. Algorytmy rekurencyjne a iteracyjne. 9. Rozgałęzienia. Instrukcje warunkowe if, switch, case. 10. Pętle do, while, for. Optymalizacja kodu pod względem czasu wykonania lub zajętości pamięci. Funkcje inline. 11. Struktury, unie, organizacja pól struktur w pamięci. 12. Obsługa plików tekstowych i binarnych. Przenośność danych (także tekstowych) między różnymi systemami, pojęcie serializacji 13. Dynamiczna alokacja pamięci. wskaźniki, tablice, sterta i bezpieczeństwo. Dynamiczne struktury danych: stos, listy, drzewa. 14. Przetwarzanie danych: algorytmy sortowania. Zastosowanie wskaźników funkcyjnych. Złożoność algorytmu. 15. Podsumowanie i kolokwium zaliczeniowe Liczba godzin 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Laboratorium – zawartość tematyczna: Praktyczna realizacja zadań o tematyce poruszanej na wykładzie, tj. programowanie w języku C (częściowo także C++) w środowisku Windows lub Linuks, 1-2 ćwiczenia także w środowisku zintegrowanym dla wybranego mikrokontrolera jednoukładowego. Literatura podstawowa: 1. Kerningham B. W., Ritchie D. M., Język ANSI C, Warszawa, WNT, 2001 2. Kuczmarski, Karol, Kurs C++, http://avocado.risp.pl (GNU license) 3. Bartlet, Jonathan, Programming from the Ground http://www.bartlettpublishing.com/ (GNU license) Up, Warunki zaliczenia: kolokwium (wykład) * – w zależności od systemu studiów 2