Spis treści

Języki i Metody Programowania 2 - Semestr letni 2015/2016

Organizacja zajęć i zasady zaliczenia

WYNIKI

Poniższy arkusz zawiera punktację z drugiej części laboratorium oraz podsumowanie: liczbę zdobytych punktów (procentowo) na obu częściach laboratorium oraz ich średnią wartość. Na tej podstawie wpisane są tam oceny końcowe z laboratorium.

I część: Podstawy programowania obiektowego w C++

Harmonogram

L.p. Termin Laboratorium
1.25.02.2016Wprowadzenie do programowania w C++
2.03.03.2016Dynamiczne zarządzanie pamięcią i operacje na plikach
3.10.03.2016Klasy i obiekty I
4.17.03.2016Klasy i obiekty II
5.31.03.2016Przeciążanie operatorów
6.07.04.2016Dziedziczenie i polimorfizm
7.14.04.2016Kolokwium

Laboratoria uzupełniające - obowiązują na kolokwium!

  1. Makefile - opis budowania programów w środowisku UNIX, potrzebne do laboratorium Klasy i obiekty I

Zasady zaliczenia

Kolokwium

Zaliczenia poprawkowe

II część: Szablony i kontenery w C++

Sprawy Organizacyjne

Nie zmieściłyby się tutaj, więc proszę zajrzeć na oddzielną stronę.

Ćwiczenia

Zanim zaczniesz pisać program zapoznaj się z wymaganymi konwencjami

L.p. Tytuł Czas trwania Grupa Deadline
1. Szablony funkcji 1 tydzień 2 os. 28.04
2. Szablony klas 1 tydzień 2 os. 05.05
3. Szablony + dziedziczenie 1 tydzień 2 os. 12.05
4. Kontenery, cd. 1 tydzień 2 os. 02.06
5. Iteratory 1 tydzień 2 os. 09.06
6. Drzewa Poprawa czerwcowa 1 os 29.06

Jak wysyłać wyniki

  1. Przetestować kod:
    g++ -std=c++11 *.cpp -o test && ./test
    • :!: proszę użyć kompilatora gcc w wersji 4.8.x (tak jak na serwerze borg)
    • :!: proszę używać oryginalnego i niezmienionego pliku main, np. ex1main.cpp, ex2main.cpp, etc.
  2. Jeżeli kod się nie kompiluje:
    • proszę go nie wysyłać, nie ma po co
  3. Jeżeli kod się kompiluje:
    1. proszę stworzyć katalog o nazwie <numer_grupy>_<nazwisko1>_<nazwisko2>, gdzie numer grupy 0 oznacza grupę o 08:00, a 1 grupę o 09:30, np.
      mkdir 0_Slazynski_Kutt
    2. skopiować istotne pliki do tego katalogu, np.
      cp *.cpp *.h ./0_Slazynski_Kutt
    3. proszę spakować folder do archiwum zip, rar, 7z, lub tar.gz, np.
      tar -zcf 0_Slazynski_Kutt.tar.gz 0_Slazynski_Kutt
    4. wysłać paczkę na mail mslaz@agh.edu.pl z tematem: [JIMP2] Ćwiczenie nr <numer ćwiczenia>, np. [JIMP2] Ćwiczenie nr 1
    5. w treści wpisać imiona i nazwiska osób wykonujących ćwiczenie, np. Mateusz Ślażyński & Krzysztof Kutt
    6. :!: załączyć archiwum z ćwiczeniem, to ważne :!:
    7. :!: nacisnąć przycisk wyślij i odczekać chwilę nie przerywając połączenia z internetem :!:
    8. dostać punkty z dobrze wykonaną robotę 8-)
  4. inne formy wysyłania zadań spotkają się z moją niechybną dezaprobatą i niekonstruktywną krytyką m(
    • przewidywane kary w postaci składania własnoręcznie spisanej miażdżącej samokrytyki
    • wizyta w worku pokutnym w dziekanacie pro
    • no i brak punktów

Automatyczne formatowanie kodu

W celu uniknięcia braku punktów za dobry styl kodu, polecamy stosować narzędzia automatycznie formatujące kod. Większość profesjonalnych IDE, np. Eclipse, ma je wbudowane bądź dostępne w formie wtyczki. Jeżeli ktoś preferuje narzędzia konsolowe, to polecamy AStyle, które jest dostępny na wszystkie wiodące systemy operacyjne. Narzędzi w użyciu jest bardzo proste: astyle <opcje stylu> <ścieżki do plików>, np.

astyle --style=1tbs *.cpp *.h

sformatuje wszsytkie pliki .cpp i .h używając stylu One True Brace Style. Więcej dostępnych stylów i opcji można poznać czytając stronę http://astyle.sourceforge.net/astyle.html.

Na potrzeby ćwiczeń polecamy stosować styl:

astyle -s4 -xG -S -O -n -o -k3 -H -p -j *.cpp *.h

Jeżeli kogoś przeraża wpisywanie tak wielu opcji, wystarczy zapisać konfigurację jako domyślną:

echo "-s4 -xG -S -O -n -o -k3 -H -p -j" > ~/.astylerc

Alternatywy

Przydatne materiały

Laboratoria dodatkowe - opcjonalne, ich znajomość nie jest wymagana do kolokwium. Just for fun :-)

Narzędzia

Platformy online z zadaniami do ćwiczenia programowania