====== Języki i Metody Programowania 2 - Semestr letni 2016/2017 ====== * **Kierunek**: Informatyka * **Rok**: I * **Prowadzący**: * [[http://home.agh.edu.pl/~mwypych/|mgr inż. Michał Wypych]] * [[http://home.agh.edu.pl/~kkutt/|mgr inż. Krzysztof Kutt]] * [[http://home.agh.edu.pl/~sbobek/|dr inż. Szymon Bobek]] ===== 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 laboratorium składają się: * Zadania na laboratoriach: 13 lab * 5 pkt = 65 pkt * Kolokwium (na ostatnich zajęciach): 65 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ń. * 4 plusy = 1 pkt * Na laboratorium pracujemy **w parach** * 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ć na adres prowadzącego** przed kolejnymi zajęciami (najpóźniej minutę przed rozpoczęciem kolejnych zajęć; np. jeżeli jest się zapisanym do grupy we wtorek o 09:30, zadania można wysłać do 09:29 w dniu kolejnych zajęć). * Niezależnie od wybranej formy, rozwiązanie powinno znaleźć się w repozytorium Git pary realizującej to zadanie (w przypadku wysyłania zadania mailem, w wiadomości należy umieścić **wyłącznie link do repozytorium**). Należy zagwarantować prowadzącemu dostęp do repozytorium (powinno być publiczne albo prowadzący powinien zostać dodany do użytkowników). * Inne formy wysyłania zadań spotkają się z niechybną dezaprobatą i niekonstruktywną krytyką prowadzącego m( Przewidywane kary: * składanie własnoręcznie spisanej miażdżącej samokrytyki, * wizyta w worku pokutnym w dziekanacie * i brak punktów. * Do oceny udostępniamy tylko i wyłącznie **własne rozwiązania**! Będą one sprawdzane programem do antyplagiatu po przesłaniu rozwiązań przez wszystkich. ==== Harmonogram ==== ^L.p.^ Wtorki ^ Czwartki ^ Instrukcja do laboratorium ^ ^1.|28.02.2017|02.03.2017|[[.:labs:wprowadzenie|Wprowadzenie do programowania w C++]]| ^2.|07.03.2017|09.03.2017|[[.:labs:pamiec-i-pliki|Dynamiczne zarządzanie pamięcią i operacje na plikach]]| ^3.|14.03.2017|16.03.2017|[[.:labs:pamiec2|Dynamiczne zarządzanie pamięcią II]] | ^4.|21.03.2017|23.03.2017|[[.:labs:klasy1|Klasy i obiekty I]]| ^5.|28.03.2017|30.03.2017|[[.:labs:klasy2|Klasy i obiekty II]]| ^6.|04.04.2017|06.04.2017|[[.:labs:operatory|Przeciążanie operatorów]]| ^7.|11.04.2017|**20.04.2017**| [[.:labs:dziedziczenie|Dziedziczenie i polimorfizm]]| ^8.|25.04.2017|27.04.2017| [[.:labs:wyjatki|Wyjątki]]| ^9.|09.05.2017|**04.05.2017**| [[.:labs:dziedziczenie2|Dziedziczenie i polimorfizm 2]] | ^10.|16.05.2017|**11.05.2017**| [[.:labs:algorithm|Biblioteka algorithm]] | ^11.|23.05.2017|**18.05.2017**| [[.:labs:templates|Szablony]] | ^12.|30.05.2017|**25.05.2017**| [[.:labs:templates2|Szablony cz. 2]] | ^13.|06.06.2017|**01.06.2017**| [[.:labs:unit-testing|Testy jednostkowe]] | ^14.|**13.06.2017 __11:10__-12:30 B1 H24**|| Kolokwium zaliczeniowe | INFO: **Pogrubioną** czcionką zaznaczone są zajęcia czwartkowe, które odbywają się w innym (wcześniejszym / późniejszym) tygodniu niż zajęcia wtorkowe z danego tematu. ==== IDE i inne tutoriale ==== * [[pl:dydaktyka:jimp2:2017:tutorials:newsolution|Dodanie nowego rozwiązania]] * [[pl:dydaktyka:jimp2:2017:tutorials:publishingsolution|Praca nad nowym zadaniem i jego publikacja do oceny]] * [[pl:dydaktyka:jimp2:2017:tutorials:stackdoc|Seria dokumentacji na stack overflow]] ===== Przydatne materiały ===== * [[https://fffaraz.github.io/awesome-cpp/|Awesome C/C++]] - A curated list of awesome C/C%%++%% frameworks, libraries, resources, and shiny things ==== Klasyczne podręczniki ==== * [[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 ==== Platformy online z zadaniami do ćwiczenia programowania ==== * https://www.hackerrank.com/domains * https://www.topcoder.com/ * https://leetcode.com * https://projecteuler.net * http://pl.spoj.com/problems/latwe/ ==== Nieposortowane, ale potencjalnie ciekawe linki ==== * [[https://www.jetbrains.com/help/clion/2016.3/quick-cmake-tutorial.html|CMake tutorial for CLion]] * [[https://github.com/google/googletest/blob/master/googletest/docs/Documentation.md|gtest documentation]] * [[https://google.github.io/styleguide/cppguide.html|google c++ style guide]] * [[https://isocpp.org/wiki/faq/freestore-mgmt|memory managment FAQ by B. Strastroup]] * [[http://stackoverflow.com/questions/262439/create-a-wrapper-function-for-malloc-and-free-in-c|spying malloc calls]] * [[http://stackoverflow.com/questions/77005/how-to-generate-a-stacktrace-when-my-gcc-c-app-crashes|printing stacktrace with gcc]] * [[https://rafalcieslak.wordpress.com/2013/04/02/dynamic-linker-tricks-using-ld_preload-to-cheat-inject-features-and-investigate-programs/|spying and stubbing library calls]] * [[http://valgrind.org/|valgrind]] * [[http://drmemory.org/|dr. Memory]] * [[https://isocpp.org/std/status|C++ standard current status]] * [[https://cpputest.github.io/manual.html|CppUCheck another unit testing framework with built-in memory leak detection]] * [[https://gcc.gnu.org/onlinedocs/gcc/Function-Names.html|gcc variables of function name]] * [[https://plugins.jetbrains.com/clion/plugin/4455-key-promoter|Key promoter CLion plugin helps learning keyboard shortcuts]] * [[https://plugins.jetbrains.com/clion/plugin/7871-clion-cpplint|CLion plugin cpplint code style checker]] * [[https://plugins.jetbrains.com/idea/plugin/8143-cppcheck|CLion plugin CppCheck static analysis]] * [[http://www.boost.org/doc/libs/1_42_0/libs/format/doc/format.html|fromatting message with boost]] * [[http://umich.edu/~eecs381/handouts/C++11_smart_ptrs.pdf|smart pointers explained]] * [[https://www.rust-lang.org/en-US/|Rust lang]] * [[https://github.com/nim-lang/Nim/wiki/Nim-for-C-programmers|Nim lang]] * [[http://stackoverflow.com/questions/28760475/how-to-return-a-class-member-vector-in-c11|returning vector]] * [[http://codereview.stackexchange.com/?tags=c%2b%2b|stack overflow - c++ code review section]] * [[https://blog.codinghorror.com/the-great-newline-schism/|end of line characters]] * [[http://coliru.stacked-crooked.com/|online c++ compiler]] * [[http://en.cppreference.com/w/cpp/language/constraints|concepts - type of types]] * [[http://coliru.stacked-crooked.com/a/3fc11bf5a94cf6d7|example of concepts]] * [[https://gcc.gnu.org/projects/cxx-status.html#cxx11|gcc standard support]] * [[https://github.com/google/googletest/blob/master/googlemock/docs/ForDummies.md|google mock introduction]] * [[http://www.cplusplus.com/articles/L0pk4iN6/|be more prodactive with CLion IDE]] * [[https://sourceforge.net/projects/boost/files/boost/1.63.0/|boost download]] * [[https://blog.jetbrains.com/clion/2015/06/code-generation-with-clion/|CLion code generation]] * [[https://www.jetbrains.com/help/clion/2016.3/implementing-functions.html|CLion function implementing]] * [[https://www.jetbrains.com/help/clion/2016.3/creating-and-editing-file-templates.html|CLion file templates]] * [[https://blog.jetbrains.com/clion/2014/12/refactorings-in-clion-be-safe-and-quick/|CLion refactorings]] * [[https://cmake.org/Wiki/CMake_Useful_Variables|CMake Script Variables]] * [[https://www.jetbrains.com/help/clion/2016.3/adding-deleting-and-moving-code-elements.html|CLion working with sourcecode]] * [[https://resources.jetbrains.com/assets/products/clion/CLion_ReferenceCard.pdf|CLion reference card]] * [[http://www.chromium.org/developers/coding-style/cpp-dos-and-donts|Chromium project c++ dos and donts]] * [[http://utf8everywhere.org/|utf8 encoding]] * [[http://jscheiny.github.io/Streams/api.html|cpp streams api]] * [[http://bastian.rieck.ru/blog/posts/2016/filter_map_cxx11/|cpp functional]] * [[https://groups.google.com/forum/#!topic/googletestframework/XnjTnA2y4ds|GTest new macro definition]]