Pomiń do głównej zawartości

Opis kursu

logo

Kurs powstał w ramach projektu "MOOC@PB-Nowoczesne technologie w procesie kształcenia" umowa nr POWR.03.01.00-00-W040/18-00

O kursie

Kurs dotyczy podstaw 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:

  1. Przygotowanie środowiska programistycznego. Czym jest programowanie, geneza języka C, instalacja IDE, kompilatora, uruchomienie programu w IDE i w systemie operacyjnym.
  2. 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.
  3. 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.
  4. 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.
  5. 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ą.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.

KADRA KURSU

dr inż. Anna Łupińska-Dubicka

dr inż. Anna Łupińska-Dubicka

Adiunkt, Wydział Informatyki, Politechnika Białostocka

Wieloletni pracownik naukowo-dydaktyczny na Wydziale Informatyki Politechniki Białostockiej. Prowadzi zajęcia z przedmiotów dotyczących programowania w językach C/C++, Java, C#. Pracuje jako nauczyciel informatyki w Akademickim Liceum Ogólnokształcącym Politechniki Białostockiej. Prowadziła zajęcia dla młodzieży w ramach projektu Talenty XXI wieku. Zainteresowania naukowe skupiają na na szeroko pojętej analizie danych, systemów decyzyjnych oraz rekomendujących.

dr inż. Urszula Kużelewska

dr inż. Urszula Kużelewska

Adiunkt, Wydział Informatyki, Politechnika Białostocka

Wieloletni pracownik naukowo-dydaktyczny na Wydziale Informatyki Politechniki Białostockiej. Prowadzi zajęcia z przedmiotów dotyczących programowania: w języku C/C++, Java, JavaScript, React i Angular. Zainteresowania naukowe: analiza danych, web mining oraz systemy rekomendacji. Jest też współwłaścicielem firmy zajmującej się inteligentnymi rozwiązaniami w dziedzinie Internet of Things, odznaczoną europejskim certyfikatem Seal of Excellence.

Zapisz się