Program
| Materiały
| Literatura
| Zadania
| Zaliczenia
| Haszówki: zawartość
| Pomoc
| Kontakt
|
Podstawy programowania – 2024/25
|
|
Karta przedmiotu
Aktualna wersja karty przedmiotu (strona 93 w Katalogu)
Tematy i materiały do wykładów
Poniższa tabela zawiera prezentacje wykorzystywane w trakcie wykładu w
formacie PDF (Portable Document Format), obsługiwanym m.in. przez
program Acrobat
Reader. Dodatkowo umieszczono w niej materiały przeznaczone do
wydruku w układzie jeden, dwa i cztery slajdy na stronę, niektóre w
formacie PostScript (ps), obsługiwanym m.in. przez
programy
Ghostscript i
GhostView.
Przedstawiane prezentacje nie stanowią internetowego
podręcznika do samodzielnej nauki programowania! Zostały one
tu umieszczone w celu ułatwienia pracy i dla wygody
studentów. Zalecamy przybywanie na dany wykład z dotyczącymi go
wydrukowanymi materiałami (naszym zdaniem najlepiej w wersji cztery
slajdy na stronę) – stanowią one doskonałe miejsce do czynienia notatek:).
Materiały udostępnione za pomocą poniższej tabelki objęte są prawami
autorskimi. Można je wykorzystywać wyłącznie do własnych, prywatnych
celów i nie wolno ich w żaden sposób rozpowszechniać, na przykład
przez umieszczenie na ogólnodostępnych stronach internetowych.
nr |
temat wykładu |
materiały |
prezentacja | folie | wydruki | przywieszki |
1 | Wprowadzenie |
|
|
|
|
2 | Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje |
|
|
|
|
3 | Składnia wyrażeń i instrukcji, operacje wejścia i wyjścia |
|
|
|
4 | Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki |
|
|
|
5 | Wprowadzenie do systemu X Window. Praca z uniksowym interpreterem poleceń |
|
|
|
|
6 | Tablice i wskaźniki cd., argumenty wywołania programu, reguły stylu programowania, asercje |
|
|
|
7 | Zmienne dynamiczne, struktury, moduły programowe |
|
|
|
|
8 | Obsługa błędów, przeszukiwanie i sortowanie tablic |
|
|
|
Zadania na ćwiczenia
nr | temat |
realizacja | opis | materiały |
0 | Przecinanie prostokątów |
1/2 zajęć |
|
|
1 | Algorytm: specyfikacja, testy |
1 zajęcia |
| |
2 | Notacja MBNF, diagramy składni, drzewa wyliczania wartości wyrażeń, instrukcja pętli |
1 zajęcia |
| |
3 | Algorytmy, ich zapis, ręczna symulacja, analiza złożoności obliczeniowej |
1 zajęcia |
|
|
4 | Analiza poprawności konstrukcji, wyliczanie wyrażeń ze wskaźnikami i tablicami, ręczna symulacja, opracowywanie funkcji programu |
1 zajęcia (2?!) |
| |
Zadania na laboratorium
Diablo – praca zdalna, czyli jak pisać programy na zajęcia i opanować obsługę Linuksa/Uniksa
Materiały autorstwa Waszych starszych kolegów, kolegi Potockiego i kolegi Tarnowskiego pt. ,,Linux – jak zacząć?'': Slajdy, Video, (a do tego poradnik ,,Jak przeżyć...'').
Literatura przedmiotu
Literatura podstawowa:
-
Kernighan, Ritchie: ,,Język ANSI C'' (w serii Klasyka Informatyki), WNT, (1987), 1994, 2007, 2010
-
Glass, Ables: ,,Linux dla programistów i użytkowników'', Helion, 2007
Standard języka C ISO/IEC 9899:1999 (C99 z poprawkami TC1-TC3):
Inne normy dotyczące języka C:
Literatura uzupełniająca:
- Pyszczuk: ,,Programowanie w języku C'', CC 2010 ( Kopia lokalna, Kody) (napisana nieformalnym językiem (niestety z licznymi błędami, ale mimo to wciąż warta polecenia) książka o programowaniu w C pod linuksem, trochę podobna do pozycji ,,Język ANSI C'', z wieloma dobrze opisanymi przykładami – warto zajrzeć także na pozostałe podstrony przytoczonej powyżej strony (dostępne z umieszczonego na niej menu), traktujące między innymi o instalacji linuksa i pracy w tym systemie)
- Kernighan, Pike: ,,Lekcja programowania'' (w serii Inżynieria Oprogramowania), WNT 2002, 2011 (bardziej zaawansowana pozycja z przykładami w większości w języku C – zagadnienia stylu, algorytmów i struktur danych, ich implementacji, interfejsów, wykrywania błędów, wydajności i przenośności oprogramowania)
- Martin: ,,Czysty kod. Podręcznik dobrego programisty'', Helion 2010, 2014, 2022 (obowiązkowa pozycja dla każdego początkującego programisty, który uważa, że już umie programować – jak pisać dobry kod, jak go formatować, jak implementować pełną obsługę błędów bez zaśmiecania logiki kodu, niestety z przykładami w Javie)
- Love: ,,Linux. Programowanie systemowe'' , Helion 2008, 2014 (systematycznie o programowaniu w C pod linuksem, o plikowych operacjach wejścia/wyjścia, o buforowanych operacjach wejścia/wyjścia, o zarządzaniu plikami, procesami, pamięcią, sygnałach i czasie)
- Wróblewski: ,,Algorytmy, struktury danych i techniki programowania'', Helion 2000, 2003, 2009, 2019 (dla zaawansowanych z przykładami w C++ – algorytmy i struktury danych, analiza sprawności, optymalizacja, zaawansowane techniki programowania, algorytmika grafów, kodowanie i kompresja danych)
- Prata: ,,Język C. Szkoła programowania'', Helion 2006, 2016, albo King: ,,Język C. Nowoczesne programowanie'', Helion 2011 (dla chcących wiedzieć wiele – biblie w zakresie języka C w standardzie C99, niestety drogie. Dlaczego albo? O tym tutaj)
- Harel, Feldman: ,,Rzecz o istocie informatyki. Algorytmika'' (w serii Klasyka Informatyki), WNT 1992, 2008 (trochę filozoficzna, aczkolwiek zawiera elementy z zakresu algorytmiki – świetna książka dla tych, którym wydaje się, że wiedzą czym jest informatyka)
- Cormen, Leiserson, Rivest: ,,Wprowadzenie do algorytmów'' (w serii Klasyka Informatyki), WNT 1998, 2007 (dla chcących wiedzieć wiele – biblia w zakresie algorytmów i struktur danych, niestety bardzo droga)
- Knuth: ,,Sztuka programowania'' (w serii Klasyka Informatyki), WNT 2002 (dla chcących wiedzieć wiele – jeszcze jedna ,,biblia'' autorstwa guru programowania, niestety też bardzo droga, ale w sumie ponad dwa i pół tysiąca stron :)
- Matthew, Stones: ,,LINUX: Programowanie'', Wydawnictwo RM 1999 (dla zaawansowanych z przykładami w C – programowanie w środowisku linux, współpraca między programami z wykorzystaniem potoków i mechanizmów komunikacji międzyprocesowej, programowanie aplikacji sieciowych za pomocą gniazd, biblioteka curses, języki powłoki i Tcl, TK)
- Granneman: ,,Linux. Rozmówki'', Helion 2006 (elementarna – praca z systemem, zarządzanie, administrowanie, wszystko przede wszystkim z poziomu konsoli tekstowej, do tego tania)
- Czarny: ,,Linux. Kurs'', Helion 2007 (elementarna w obrazkach (lamerska:) – j.w. z poziomu konsoli graficznej, przeglądanie stron www, korzystanie z poczty, nagrywanie płyt, tworzenie grafiki, redagowanie tekstów, arkuszy kalkulacyjnych)
- Cameron: ,,GNU Emacs'' (w serii Leksykon kieszonkowy), Helion 2002 (ściąga dotycząca pracy z edytorem emacs)
- Wirth: ,,Algorytmy + struktury danych = programy'', WNT 1980, 2004 (ze względów historycznych – struktury danych, algorytmy ilustrowane przykładami w języku Pascal:)
Materiały internetowe:
- Kurs programowania w C z WikiBooks – biblioteki wolnych podręczników (nie zawsze prawdziwe i nie zawsze ANSI, ale chyba dobre dla tych, co kumają mniej:)
- Programowania w C też z WikiBooks – biblioteki wolnych podręczników (podobnie jak powyżej, w formacie pdf)
- Kurs języka C autorstwa Jacka Dondu (systematyczny przegląd elementów składowych języka C kierowany do przyszłych programistów mikrokontrolerów)
- Język C autorstwa Roberta Chwastka (systematyczny przegląd elementów składowych języka C i jego funckji bibliotecznych)
- Strona kursu Wstęp do programowania ze Studiów informatycznych (dla tych, co wiedzieć chcą więcej)
- Wgłąb języka C wydawnictwa Helion (tytuł w oryginalnej pisowni Wydawnictwa!!! Trochę odmienne od prezentowanego na wykładzie spojrzenie na niektóre zagadnienia)
- Język C – ściąga autorstwa Piotra Różnickiego (trochę C, trochę C++, trochę ANSI, trochę Borland – świadomym nie powinno zaszkodzić)
- Język C w pytaniach i odpowiedziach (tytuł mówi praktycznie wszystko, może tylko nie to, że strona jest po angielsku – mnóstwo praktycznych uwag i wyjaśnień rozwiewających wątpliwości)
- Programowanie w języku C w 5. krokach (też po angielsku, ale za to jak elementarnie)
- Jeszcze jedna dobra strona o programowaniu w języku C (;-)
- Algorytmy dla każdego autorstwa Łukasza Żarczyńskiego (w większości) (przede wszystkim algorytmy sortowania, ale też kilka innych)
- Środowisko programisty autorstwa Grzegorza M. Wójcika i Sławomira Kotyry ( Kopia lokalna) (jak wygodnie urządzić się w świecie GNU/Linux – zestarzał się jedynie rozdział 2 :)
- Podstawy programowania powłoki Bash z Wiki Linux (ciągle niekompletne, ale za to systematyczne)
- Przewodnik po edytorze GNU Emacs – wydanie oficjalne (warto zapoznać się, by zdawać sobie sprawę z możliwości edytora)
Informacje o zaliczeniu wykładu, ćwiczeń i laboratoriów
Każda z form przedmiotu oceniana jest osobno według podanych poniżej zasad.
Warunki zaliczenia wykładu
Zaliczenie wykładu następuje na podstawie krótkich testów
ekranowych (tzw. haszówek) prowadzonych w trakcie semestru na
ćwiczeniach. Dla osób, które nie uzyskają zaliczenia w tym trybie
będzie zorganizowane kolokwium poprawkowe w postaci
haszówki zbiorczej z całego materiału. Będzie to ostatnia szansa
uzyskania zaliczenia wykładu.
Do zaliczenia wykładu brane są wyniki haszówek po
odrzuceniu najgorszej z nich, według poniższej tabeli (procentowy próg
jest ilorazem liczby punktów uzyskanych w haszówkach do liczby punktów
możliwych do uzyskania).
Skala ocen do zaliczenia wykładu
próg % |
50.00 | 60.00 | 70.00 | 80.00 | 90.00 |
ocena |
3.0 | 3.5 | 4.0 | 4.5 | 5.0 |
Warunki zaliczenia ćwiczeń i laboratorium
Warunki zaliczenia ćwiczeń i laboratorium ustalają indywidualnie osoby
prowadzące te zajęcia.
Zawartość tematyczna haszówek
haszówka | termin | tematyka |
1 | 0. lub 1. ćwiczenia | zagadnienia
poruszane na pierwszych ćwiczeniach, zadanie algorytmiczne, zapis algorytmów |
2 | po 21.10.2024 |
składnia – notacja MBNF, kategorie składniowe C: komentarze,
identyfikatory, literały, typy danych, stałe i zmienne, wyrażenia i operatory,
drzewa wyliczania wartości wyrażeń, instrukcje – podstawy. |
3 | po 4.11.2024 |
obliczenia stało- i zmiennopozycyjne, zarys złożoności obliczeniowej,
operacje wejścia/wyjścia, funkcje i ich parametry, zmienne lokalne a
globalne, specyfikacja funkcji, tablice jednowymiarowe i wskaźniki. |
4 | po 25.11.2024 |
architektura systemu X Window, serwer X Window, klienty, zarządcy
okien, system X Window w środowisku sieciowym, operowanie tablicami,
funkcje operujące na tablicach, arytmetyka wskaźników, rzutowanie,
przeszukiwanie tablic, inicjowanie tablic. |
Informacje i materiały pomocnicze nt. laboratoriów
Program
| Materiały
| Literatura
| Zadania
| Zaliczenia
| Haszówki: zawartość
| Pomoc
Licznik odwiedzin strony od 25 września 2007:
Licznik odwiedzin strony od 25 września 2021:
Ostatnia aktualizacja: Monday, 25-Nov-2024 10:57:09 CET