Kurs: Wstęp do programowania w języku C

Język wykładowy Polski
Semestr Zimowy
Status Poddana pod głosowanie
Opiekun Paweł Laskoś-Grabowski
Liczba godzin 30 (wyk.) 30 (prac.)
Rodzaj K1 - kurs podstawowy
ECTS 5
Polecany dla I roku Tak
Egzamin Nie
Grupy efektów kształcenia Podstawy informatyki i programowania

Opis przedmiotu:

**Wstęp, czyli jak się ma "Wstęp do programowania w języku C" do "Wstępu do programowania w języku Python"** Studenci 1-go roku studiów 1-go stopnia mogą rozpocząć naukę programowania i podstaw informatyki w jednym z dwóch języków: **C albo Python** (można wybrać tylko jeden z tych dwóch kursów!). Każdy z tych kursów pozwala opanować podstawy informatyki i programowania a w dalszych semestrach doskonalić się w programowaniu w innych (lub tych samych) językach. W szczególności zaczynając od "Kursu: Wstęp do programowania w języku C", nie skazujecie się na zawsze na ten język (i nieznajomość Pythona) oraz _vice versa_. W drugim semestrze studiów (i kolejnych) pojawiają się kursy języków programowania (C++, Java, Ruby, Python), które pozwalają opanować różne języki, przy założeniu, że studenci mają ogólne pojęcie o programowaniu, które zdobywają na obu przedmiotach "Kurs: Wstęp do programowania w języku C/Python". **O samym kursie "Wstęp do programowania w języku C"** Celem tego kursu jest nauczenie i rozwinięcie podstawowych umiejętności programowania w jednym z najbardziej rozpowszechnionych języków imperatywnych - języku C. Wykład jest ilustrowany wieloma przykładami, a towarzyszące mu zajęcia w pracowniach uczą (poprzez wiele drobnych zadań i końcowy projekt) praktyki dobrego programowania. Nie wymaga on od uczestników żadnych wcześniejszych umiejętności programowania, ale studenci startujący od zera będą musieli poświęcić mu więcej pracy w domu, aby szybko wyrównać poziom. Elementy języka są wprowadzane stopniowo, zaczynając od konstrukcji podstawowych, a kończąc na bardziej zaawansowanych zagadnieniach, jak wskaźniki i dynamiczne struktury danych, operacje na plikach czy funkcje rekurencyjne. ~~Ostatnie wykłady poświęcone są obiektowym elementom języka C++.~~ Pochód języków programowania trwa od zarania informatyki. Studium języków C i C++ ułatwia start w naturalną ich kontynuację, do której obecnie zaliczają się ważne z komercyjnego punktu widzenia języki i środowiska: Java (Sun) oraz C# (.NET Microsoft). **Wymagane przygotowanie:** Brak, chociaż przydatna będzie podstawowa umiejętność programowania. W przypadku prowadzenia zajęć w formie zdalnej, wykłady będą w formie wideokonferencji, a na pracowni studenci będą indywidualnie programować rozwiązania zadań z list. Zgłaszanie rozwiązań oraz punktowe i słowne oceny programów będą realizowane w systemie SKOS. **Program:** * Podstawowe konstrukcje języka: instrukcje i deklaracje. * Standardowe typy danych, wyrażenia. * Standardowe wejście/wyjście, filtry. * Funkcje, moduły i struktura programu. * Metody agregacji danych: tablice, struktury i unie. * Wskaźniki. * Dynamiczne zarządzanie pamięcią, standardowe biblioteki C. * Sekwencyjne i swobodne przetwarzanie plików. * Programowanie ~~okienkowego interfejsu w GTK+~~ z użyciem bibliotek innych niż standardowe. * ~~Klasy, obiekty i strumienie w C++.~~ **Literatura:** * Kernighan B.W., Ritchie D.M.: Język ANSI C. Seria "Klasyka Informatyki". Warszawa, Wydawnictwa Naukowo-Techniczne 2003. Podręcznik podstawowy. * King K.N.: Język C, Nowoczesne programowanie, Wydanie II, Helion 2011 (uwzględnia standard C99). * Banahan M., Brady D., Doran M., The C Book, http://publications.gbdirect.co.uk/c_book/ (dostępny za darmo jako pdf i na WWW). * Schildt B., C: The Complete Reference: covers C++ and ANSI C, Osborne McGraw-Hill, * ISO/IEC 2011 - Programming languages - C (aktualny standard ISO 2011), http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1570.pdf (wstępna wersja opisu standardu).