O kursie
Kurs dotyczy podstaw programowania programowania strukturalnego w języku C. Uczestnik kursu po jego zakończeniu będzie w stanie napisać program z tekstowym interfejsem użytkownika, wykorzystujący podstawowe typy danych, a także paradygmaty programowania strukturalnego.
Kurs jest skierowany do młodzieży zainteresowanej nauką programowania i dlatego zawiera dużo przykładów, filmy ilustrujące realizację zadań, prezentacje kodu, interaktywny kod na platformie Repl.it. Nic jednak nie stoi na przeszkodzie, aby brali w nim udział także inni uczestnicy. Co ważne, kurs jest dla osób początkujących – nie jest wymagane żadne wcześniejsze przygotowanie, ani znajomość żadnego języka programowania.
Kurs składa się z 14 lekcji merytorycznych (część informacyjna i wprowadzająca oraz część praktyczna: przykładowe zadania wraz z objaśnieniami, a także zadania do samodzielnego wykonania). Po każdej lekcji uczestnicy wykonują test oraz zadanie praktyczne, którego zaliczenie umożliwia kontynuację kursu.
Treści edukacyjne:
- Przygotowanie środowiska programistycznego. Czym jest programowanie, geneza języka C, instalacja IDE, kompilatora, uruchomienie programu w IDE i w systemie operacyjnym.
- Pierwsza aplikacja. Zapis problemu w postaci algorytmu w schemacie blokowym. Elementy schematu blokowego. Omówienie podstawowej struktury programu, określenie czym jest funkcja main, zapoznanie z metodami wyświetlania tekstu na ekranie konsoli.
- Zmienne. Wprowadzenie do typów danych, sposobów deklaracji zmiennych, widoczność zmiennej – rozróżnienie pomiędzy zmiennymi lokalnymi i globalnymi, instrukcja przypisania wartości zmiennych, wprowadzanie wartości zmiennych z konsoli.
- Instrukcja warunkowa. Przedstawienie konstrukcji podstawowych instrukcji warunkowych (if, if/else, switch/case), zdefiniowanie typu logicznego, operacje porównywania wartości zmiennych, metody kontroli poprawności danych wprowadzanych przez użytkownika.
- Pętle for, while i do-while. Przedstawienie zapisu, sposobu działania oraz podstawowych przykładów wykorzystania poszczególnych pętli. Opisanie wymienności poszczególnych pętli między sobą.
- Funkcje. Przedstawienie zapisu funkcji, jej konstrukcji, widoczności zmiennych lokalnych i parametrów. Określenie, czym są parametry funkcji. Sposoby wywoływania funkcji. Zwrot wartości z funkcji oraz słowo kluczowe return.
- Tablice jednowymiarowe. Przedstawienie definiowania tablic jednowymiarowych, dostęp do danych w nich zapisanych, określenie jak wygląda indeksowanie tablic, kopiowanie tablic między sobą, przekazywanie tablic przez parametry do funkcji.
- Tablice dwuwymiarowe. Przedstawienie definiowania tablic dwuwymiarowych, dostęp do danych w nich zapisanych, określenie jak wygląda indeksowanie tablic, kopiowanie tablic między sobą, przekazywanie tablic przez parametry do funkcji. Opisanie różnic pomiędzy tablicami jednowymiarowymi i dwuwymiarowymi.
- Struktury danych. Pokazanie sposobów definiowania struktur, deklarowanie zmiennych w strukturach, typ enum. Tworzenie struktur jako zmiennych lokalnych i globalnych. Przekazywanie struktur przez parametry do funkcji.
- Wskaźniki. Dynamiczny przydział pamięci. Przedstawienie sposobów definiowania wskaźników, ich zastosowania i odniesienia do adresów pamięci. Przekazywanie parametrów do funkcji przez wskaźniki. Przykłady wykorzystania wskaźników. Zajmowanie i zwalnianie pamięci przy wskaźnikach.
- Tablice dynamiczne wielowymiarowe. Przedstawienie sposobów deklarowania tablic dynamicznych. Nawiązanie do wskaźników. Sposoby alokacji i zwalniania pamięci przy tablicach dynamicznych wielowymiarowych. Przekazywanie tablic dynamicznych przez parametry do funkcji. Funkcje zwracające utworzone tablice dynamiczne.
- Operacje na łańcuchach znaków. Przedstawienie definicji łańcucha znaków jako tablicy jednowymiarowej elementów typu char. Pokazanie podstawowych funkcji operujących na łańcuchach znaków.
- Operacje wejścia/wyjścia na plikach tekstowych. Omówienie, czym jest plik tekstowy, do czego jest wykorzystywany. Zapozanie ze strukturą reprezentującą plik oraz z funkcjami operującymi na plikach tekstowych. Omówienie sposobów zapisu danych do plików tekstowych.
- Operacje wejścia/wyjścia na plikach binarnych. Omówienie, czym jest plik binarny i do czego jest wykorzystywany. Zapozanie ze strukturą reprezentującą plik oraz z funkcjami operującymi na plikach binarnych. Omówienie sposobów zapisu danych do plików binarnych.
Wykorzystane metody i narzędzia:
- nagrania wideo,
- prezentacje mutimedialne,
- platformy internetowe z możliwością wpisywania kodu, kompilujące i prezentujące wynik w przeglądarce,
- zadania i problemy logiczne.
WYMAGANIA WSTĘPNE
Do nauki potrzebujesz komputera z dostępem do internetu. Możesz zainstalować program CodeBlocks, albo korzystać z interaktywnego środowiska na zdalnym serwerze Repl.it. Niezbędne instrukcje instalacji znajdziesz w kursie.
Kurs możesz przeglądać zarówno na komputerze, jak i urządzeniach mobilnych, lecz do wykonania zadań implementacyjnych będziesz z pewnością potrzebować komputera.
Nie musisz znać języka angielskiego, chociaż powienieś(aś) wiedzieć, że elementy kodu są pisane w tym języku. Ale nie musisz się tym martwić, każda instrukacja jest wyjaśniona.
WARUNKI ZALICZENIA
Aby zaliczyć kurs musisz uzyskać co najmniej 51% ogólnej liczby punktów, na którą składają się: testy sprawdzające wiedzę przy każdym temacie (20% ogólnej liczby punktów), zadania implementacyjne przy każdym temacie (30% ogólnej liczby punktów) i egzamin na zakończenie kursu (50% ogólnej liczby punktów).
Każdy, kto uzyska zaliczenie, otrzyma zaświadczenie o ukończeniu kursu.