====== Języki i Metody Programowania 2 - Semestr letni 2014/2015 ====== * **Kierunek**: Informatyka * **Rok**: I * **Prowadzący**: mgr inż. Krzysztof Kutt, http://home.agh.edu.pl/~kkutt/ * Terminy zajęć (w pierwszej połowie semestru): * poniedziałki 9:30-11:00, UCI 406 * poniedziałki 11:00-12:30, UCI 406 * poniedziałki 12:30-14:00, UCI 406 * poniedziałki 14:00-15:30, UCI 406 * Aktualne informacje o punktacji znajdują się na stronie: http://home.agh.edu.pl/~kkutt/wiki/teaching:start * login i hasło można uzyskać od prowadzącego zajęcia ===== Organizacja zajęć i zasady zaliczenia ===== * Ogólne zasady, które Państwa **obowiązują**: [[http://geist.agh.edu.pl/pub:teaching:gris|GRIS]] - proszę przeczytać, zrozumieć, ew. wątpliwości zgłosić na 1.-2. zajęciach * Proszę zwrócić uwagę na sposób informowania Państwa o aktualnościach, tryb konsultacji, zasady dotyczące kolokwiów i obecności. * Na zaliczenie pierwszej części semestru składają się: * Ćwiczenia na laboratoriach: 6 lab * 5 pkt = 30 pkt * [[#kolokwium|Kolokwium]]: 30 pkt * Powyższe punkty stanowią 100% maksymalnej łącznej liczby punktów (MAX). * Zgodnie z GRIS do wartości MAX nie wliczają się plusy za aktywność przyznawane za wykonanie odpowiednich ćwiczeń. * 5 plusów = 1 pkt * Rozwiązania zadań na **plusy** można przedstawić **TYLKO na zajęciach**. * Rozwiązania zadań na **punkty** można przedstawić **na zajęciach albo przesłać mailem** na [[kkutt@agh.edu.pl]] przed kolejnymi zajęciami (najpóźniej minutę przed rozpoczęciem kolejnych zajęć; np. jeżeli jest się zapisanym do grupy w poniedziałek o 11:00, zadania można wysłać do 10:59 w dniu kolejnych zajęć). **Nie ma** żadnych negatywnych konsekwencji przesłania zadania na maila (o ile jest w terminie). * Zajęcia w drugiej części semestru poprowadzi dr inż. Krzysztof Kaczor. * **Ocena końcowa** jest średnią ocen z pierwszej i drugiej części semestru. Każdą z nich trzeba niezależnie od siebie zaliczyć. ==== Kolokwium ==== * Kolokwium rozwiązywane jest na kartkach (nie trzeba nic przynosić poza długopisem). * Kolokwium trwa **60 minut**. * Obowiązuje na nim materiał ze wszystkich laboratoriów (instrukcje + zadania na plusy i punkty). * Jest 18 pytań za 1,2,3 punkty -- w sumie 30 pkt za całe kolokwium. * Pytania za 1 pkt to pytania krótkiej odpowiedzi (min. 1 słowo, zwykle ok. 1 zdanie), np.: "Jakie znasz typy prymitywne (wbudowane) języka C%%++%%? Wymień co najmniej 8." * Pytania za 2 pkt zawierają kawałek kodu w C%%++%%. Należy w nich albo odpowiedzieć na pytanie "co zostanie wyświetlone po uruchomieniu tego kodu" albo znaleźć błąd i go naprawić (błędy są w większości zaczerpnięte z programów oddawanych na laboratorium i przesyłanych na maila ;-) ) * Pytania za 3 pkt związane są z napisaniem kilku (ok. 5) linii kodu, np.: "Napisz ciało funkcji: ''void show(char[] filename);'' która wypisuje na ekranie cały plik o nazwie ''filename''. Białe znaki nie muszą być zachowane w oryginalnej formie (np. zamiast trzech spacji obok siebie może być tylko jedna spacja na ekranie). * **Na kolokwium należy przyjść na grupę do której jest się zapisanym, zgodnie z listami ocen udostępnianymi przez prowadzącego**. Gdyby ktoś chciał przyjść na inną grupę, musi to zgłosić do prowadzącego najpóźniej **tydzień** przed kolokwium! ==== Zaliczenia poprawkowe ==== * Kolokwia poprawkowe organizowane są **niezależnie** dla I i II części semestru. Poniżej znajdują się informacje dotyczące I części semestru. * Do zaliczenia poprawkowego **mogą przystąpić** osoby które: * Nie mają zaliczenia lub * nie pisały kolokwium i posiadają usprawiedliwienie (osoby takie mogą pisać tylko zaległe kolokwium/a). * Do wyników uzyskanych z zaliczenia poprawkowego nie wlicza się: * plusów/minusów - w 1. terminie poprawkowym, * plusów/minusów i nieusprawiedliwionych nieobecności - w 2. terminie poprawkowym. * W **2. terminie poprawkowym** można uzyskać co najwyżej ocenę 3.0. ===== Harmonogram ===== ^L.p.^ Termin ^ Laboratorium ^ ^1.|02.03.2015|[[.:labs:wprowadzenie|Wprowadzenie do programowania w C++]]| ^2.|09.03.2015|[[.:labs:pamiec-i-pliki|Dynamiczne zarządzanie pamięcią i operacje na plikach]]| ^3.|16.03.2015|[[.:labs:klasy1|Klasy i obiekty I]]| ^4.|23.03.2015|[[.:labs:klasy2|Klasy i obiekty II]]| ^5.|30.03.2015|[[.:labs:operatory|Przeciążanie operatorów]]| ^6.|13.04.2015|[[.:labs:dziedziczenie|Dziedziczenie i polimorfizm]]| ^7.|20.04.2015|Kolokwium| ^8.| //Kolejne zajęcia prowadzi dr inż. Krzysztof Kaczor// || Laboratoria uzupełniające - **obowiązują na kolokwium!** - [[.:labs:wskazniki|Wskaźniki i referencje]] - powtórka z C przed laboratorium [[.:labs:pamiec-i-pliki|Dynamiczne zarządzanie pamięcią i operacje na plikach]] - [[http://home.agh.edu.pl/~gjn/dydaktyka/UGLX/node10.html|Makefile]] - opis budowania programów w środowisku UNIX, potrzebne do laboratorium [[.:labs:klasy1|Klasy i obiekty I]] Laboratoria dodatkowe - opcjonalne, ich znajomość nie jest wymagana do kolokwium. Tematyka nie będzie poruszana przez dra Kaczora. Just for fun :-) - [[.:labs:wyjatki|Wyjątki]] - [[.:labs:dziedziczenie-ex|Dziedziczenie i polimorfizm -- przykłady]] - [[.:labs:stl|Biblioteka standardowa]] ===== Przydatne materiały ===== * [[http://www.cppreference.com/wiki/start|C++ Reference]] * Harvey M. Deitel, Paul J. Deitel, //Arkana C%%++%%// - dla początkujących * Jerzy Grębosz, //Symfonia/Pasja C%%++%%// - dla każdego * Bjarne Stroustrup, //Język C%%++%%// - dla zainteresowanych * [[https://fffaraz.github.io/awesome-cpp/|Awesome C/C++]] - A curated list of awesome C/C%%++%% frameworks, libraries, resources, and shiny things ===== Narzędzia ===== * Uniksowy kompilator **g%%++%%** * [[http://www.eclipse.org/|Eclipse IDE for C/C++]] * [[http://www.microsoft.com/express/Windows/|MS Visual Studio Express Edition]]