Program | Materiały | Literatura | Zadania | Zaliczenia | Haszówki: zawartość, wyniki, zaległe | Pomoc | Kontakt
logo PWr

Podstawy programowania – 2016/17


Wydział Elektroniki
Kierunek: Automatyka i Robotyka


Aktualizacje informacji dotyczących zaliczenia przedmiotu

31.01.2017 - pojawiły się wyniki kolokwium poprawkowego (z komentarzem umieszczonym tutaj),
26.01.2017 - zmiana progów na zaliczenie wykładu,
24.01.2017 - pojawiły się wyniki zaległych haszówek,
7.01.2017 - informacja o zaległych haszówkach,
7.01.2017 - informacja o kolokwium poprawkowym.

Program przedmiotu

Oficjalny program przedmiotu: na serwerze Dziekanatu Wydziału Elektroniki PWr (strona 387): PDF, podobno także gdzieś w Katalogu kursów w systemie Edukacja.cl (tudzież JSOS), kod kursu: INEW0001, kopia lokalna: PDF.


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
prezentacjafoliewydruki
1Wprowadzenie PDF PDF Postscript 1x1 PDF 2x1 PDF 4x1
2Algorytm, podstawowe notacje, typy danych, wyrażenia i instrukcje PDF PDF Postscript 1x1 PDF 2x1 PDF 4x1
3Składnia wyrażeń i instrukcji, operacje wejścia i wyjścia PDF PDF Postscript 1x1 PDF 2x1 PDF 4x1
4Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki PDF PDF Postscript 1x1 PDF 2x1 PDF 4x1
5Wprowadzenie do systemu X Window. Praca z uniksowym interpreterem poleceń PDF PDF
PDF
Postscript 1x1 PDF 2x1 PDF 4x1
Postscript 1x1 PDF 2x1 PDF 4x1
6Tablice i wskaźniki cd., argumenty wywołania programu, reguły stylu programowania, asercje PDF PDF Postscript 1x1 PDF 2x1 PDF 4x1
7Zmienne dynamiczne, struktury, moduły programowe PDF PDF Postscript 1x1 PDF 2x1 PDF 4x1
8Obsługa błędów, przeszukiwanie i sortowanie tablic PDF PDF Postscript 1x1 PDF 2x1 PDF 4x1
9Listy i stosy PDF PDF Postscript 1x1 PDF 2x1 PDF 4x1
10Złożoność obliczeniowa PDF PDF Postscript 1x1 PDF 2x1 PDF 4x1
11Przetwarzanie napisów, drzewa binarne PDF PDF Postscript 1x1 PDF 2x1 PDF 4x1
12Języki programowania PDF PDF Postscript 1x1 PDF 2x1 PDF 4x1


Literatura przedmiotu

Literatura podstawowa:
  1. link  Kernighan, Ritchie: ,,Język ANSI C'' (w serii Klasyka Informatyki), WNT, (1987), 1994, 2007, 2010
  2. link  Glass, Ables: ,,Linux dla programistów i użytkowników'', Helion, 2007
Standard języka C ISO/IEC 9899:1999 (C99): Inne normy dotyczące języka C: Literatura uzupełniająca:
  1. link  Pyszczuk: ,,Programowanie w języku C'', CC 2010 (pdf  Kopia lokalna, gz  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)
  2.  Kernighan, Pike: ,,Lekcja programowania'' (w serii Inżynieria Oprogramowania), WNT 2002 (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)
  3.  Love: ,,Linux. Programowanie systemowe'' , Helion 2008 (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)
  4.  Martin: ,,Czysty kod. Podręcznik dobrego programisty'', Helion 2010 (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)
  5.  Wróblewski: ,,Algorytmy, struktury danych i techniki programowania'', Helion 2000, 2003, 2009 (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)
  6.  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)
  7.  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)
  8.  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)
  9.  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)
  10.  Granneman: ,,Linux. Rozmówki'', Helion 2006 (elementarna – praca z systemem, zarządzanie, administrowanie, wszystko przede wszystkim z poziomu konsoli tekstowej, do tego tania)
  11.  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)
  12.  Cameron: ,,GNU Emacs'' (w serii Leksykon kieszonkowy), Helion 2002 (ściąga dotycząca pracy z edytorem emacs)
  13.  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:

Zadania na ćwiczenia

nr temat realizacja opis materiały
0 Przecinanie prostokątów 1/2 zajęć HTML
1 Algorytm: specyfikacja, testy 1 zajęcia HTML HTML
2 Notacja MBNF, diagramy składni, drzewa wyliczania wartości wyrażeń, instrukcja pętli 1 zajęcia PDF
3 Algorytmy, ich zapis, ręczna symulacja, analiza złożoności obliczeniowej 1 zajęcia PDF PDF PDF
4 Analiza poprawności konstrukcji, wyliczanie wyrażeń ze wskaźnikami i tablicami, ręczna symulacja, opracowywanie funkcji programu 1 zajęcia (2?!) PDF
5 Sortowanie 0,5 zajęć
lub wcale
PDF
6 Listy i stosy 1 zajęcia PDF
7 Drzewa binarne 1 zajęcia PDF

Zadania na laboratorium

nr temat realizacja opis materiały
0 Praca w systemach UNIX, GNU/Linux 1/2 zajęć HTML Diablo – praca zdalna, Linux – powłoka, Emacs – początek
1 Edytor Emacs, kompilator języka C 1 zajęcia HTML emacs_config, plik_do_pracy.txt, trojmian.c
2 Przecięcia zera 1 zajęcia HTML dane wejściowe 1, dane wejściowe 2, Metodyka pracy
3 Przetwarzanie obrazów 1 1 zajęcia HTML odczyt.c PDF PDF PDF
4 Praca z uniksowym interpreterem poleceń oraz systemem X Window 1 zajęcia HTML licz.sh, dnm.sh, czy_jest.sh, show_userfriendly.sh
5 Przetwarzanie obrazów 2 1 zajęcia HTML opcje.c
6 Kalkulator RPN 1 zajęcia HTML
7 Wyszukiwanie przybliżone dodatkowe HTML

Informacje o zaliczeniu wykładu i przedmiotu

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 % 45.0054.0063.0072.0081.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. Uzyskane oceny uwzgledniane są w ocenie końcowej z przedmiotu według poniżej przedstawionych zasad.

Warunki zaliczenia przedmiotu

Warunkiem koniecznym zaliczenia przedmiotu jest pozytywne zaliczenie wykładu i form towarzyszących.

Ocena końcowa z przedmiotu

Ocena końcowa z przedmiotu będzie stanowić średnią ważoną ocen z wykładu, ćwiczeń oraz laboratorium z wagami odpowiednio 0.5, 0.2, 0.3.


Zaległe haszowki

Osoby, którym nie udało się napisać kompletu haszówek w trakcie ćwiczeń miały możliwość nadrobienia braków 23 stycznia 2017r. stawiając się w sali 1.31C13 o godz. 17:00 (termin wykładu). Nie było możliwości powtórnego pisania pojedynczej haszówki, którą napisało się wcześniej.


Kolokwium poprawkowe

Kolokwium poprawkowe z wykładu odbyło się na drugiej godzinie wykładu 30 stycznia 2017r. o godz. 18:05 i miało postać zbiorczej haszówki. Pozwalało ono jedynie na uzyskanie oceny dostatecznej osobom, którym nie udało się uzyskać zaliczenia w efekcie uczestniczenia w haszówkach częściowych. Była to ostatnia szansa zaliczenia wykładu.

Komentarz do wyników kolokwium poprawkowego

Próg zaliczenia wykładu w kolokwium poprawkowym wynosi 37%. (:-O)


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 24.10.2016 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 7.11.2016 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 i wskaźniki.
4 po 21.11.2016 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.
5po 5.12.2016 argumenty wywołania programu, reguły stylu programowania, dokumentacja programu, asercje, obsługa błędów, zmienne dynamiczne – przydział i zwalnianie pamięci, tablice dynamiczne, wskaźniki do struktur, struktury zawierające tablice, rozdzielna kompilacja – moduły.
ostatniapo 19.12.2016 listy, stosy, sortowanie, ocena i poprawa efektywności programów (algorytmów)

Dla wygody studentów i prowadzących ćwiczenia stąd można pobrać formularz przydatny przy pisaniu haszówek. Jedna strona wystarcza na cztery haszówki! Powodzenia:)

Osoby mające problemy z liczeniem modulo w systemie szesnastkowym przed pisaniem haszówek mogą poćwiczyć wyliczanie numeru grupy korzystając z tej prostej aplikacji (wpisujemy nr indeksu, losujemy parametry funkcji haszującej, samodzielnie wyliczamy nr grupy, sprawdzamy poprawność obliczeń wybierając przycisk Rezultat).

Wyniki haszówek

Poniższy formularz pozwala sprawdzić aktualne wyniki haszówek. Wynik sumaryczny obejmuje haszówki, których pisanie zostało rozpoczęte (są dostępne w menu Wybierz kod testu), po odrzuceniu najgorszej z nich. Osobom, które nie pisały jeszcze danej haszówki system dolicza wynik 0 pkt. na 16 możliwych. Swoje dane proszę podać z polskimi literami w pisowni jak na liście zapisów dziekanatu, kodowanie polskich liter w systemie ISO-8859-2 (Legenda do tabelek z wynikami: H - poprawny numer grupy, Popr - poprawna odpowiedź, G - numer grupy podany przez studenta, Stud - odpowiedź studenta, Pk - liczba punktów uzyskanych z haszówki (na 16 możliwych), Prace - liczba napisanych haszówek na liczbę wszystkich haszówek, Punkty - suma punktów z napisanych haszówek po odrzuceniu najgorszej, Procent - odsetek uzyskanych punktów w stosunku do możliwych do uzyskania (po odrzuceniu najgorszej)).

Imię: Nazwisko:
Numer: Drugie imię:

Histogramy

Dla tych, co lubią analizować i porównywać tutaj znajduje się zestaw histogramów dotyczących dotychczas napisanych haszówek.


Informacje i materiały pomocnicze nt. laboratoriów


Program | Materiały | Literatura | Zadania | Zaliczenia | Haszówki: zawartość, wyniki, zaległe | Pomoc
Licznik odwiedzin strony od 25 września 2007: licznik
Licznik odwiedzin strony od 28 września 2016: licznik
Ostatnia aktualizacja: Tuesday, 31-Jan-2017 18:03:00 CET   Valid XHTML 1.0 Transitional! Valid CSS! Created with Emacs  Bykom Stop Spam Poison