Kurs C++ i algorytmiki

0

Witam!

Zapraszam was na kurs programowania C++ oraz algorytmiki do konkursów!

http://algorytmikacpp.pl

0

Widzę, że @fasadin konkurencja Ci rośnie :)

8

Doceniam trud, ale imo kurs jest zwyczajnie słaby.

  1. złe praktyki (zmienne globalne bez powodu, using namespace std; bez wyjaśnienia dlaczego tylko w przykładach tego się używa)
  2. bzdurne informacje (złożoności obliczeniowe wybranych metod w priority_queue i set/map wyssane są z palca)
  3. informacje prawdziwe tylko u autora (wielkości poszczególnych typów)
  4. funkcja cin, funkcja cout. Rozumiem, że początkującym wszystko jedno, ale to jest wprowadzanie mylnych pojęć
  5. Złożoność pamięciowa naszego programu jest wyrażana w megabajtach.. No comment

Ogółem kurs wydaje się przygotowany przez początkującego bądź kogoś kto bardzo wiernie początkującego imituje. Nie ma w nim ani krzty C++11, zbędnie uczy rzeczy niepotrzebnych jak printf i scanf pomijając jednocześnie na początku klasę tak oczywistą jak std::string.

Podoba mi się za to oprawa graficzna, jest przejrzysta. Niestety bez javascriptu nie wyświetla się kod. Chociaż nie wiem czy w tym przypadku to aż tak bardzo niestety.

0
  1. Jest przedstawione w lekcjach dlaczego zalecam używać zmiennych globalnych. Zobacz najlepszych programistów na zawodach typu ACM czy Codeforces ;)
  2. Złożoności nie są wyssane z palca, odsyłam na przykład do implementacji STL czy wikipedii jeżeli tak ciężko zajrzeć.
  3. Nie rozumiem tego?
  4. Mylnych pojęć? Tak jak wyżej.
  5. Złożoność pamieciowa na konkursach typu ACM, Olimpiada Informatyczna, PA, Codeforces są wyrażane w megabajtach ;)

Dla większości osób które znam używanie printf i scanf jest łatwiejsze. Dodatkowo printf i scanf są szybsze niż cout i cin, jednak cout i cin da się odpowiednio przyśpieszyć. Nie jest to kurs C++11, ale owszem zamierzam dodać lekcje na temat C++11 i C++14 :)

A co do std::string, jeżeli dokładnie byś przejrzał kurs to owszem znalazł być część tematu o tym ;)

PS. Jak to nie wyświetla się kod?

0

Z własnego doświadczenia wiem, że książki są dużo lepsze. Kurs jest dobry, gdy czegoś nie można załapać z książki ale nawet po ogarnięciu tego co jest w kursie, to samo powinno się przerobić to co jest w książce.

7
  1. programowanie to nie tylko zawody. Ba, kod tworzony na różnego rodzaju zawody często jest gorszy właśnie ze względu na to, że z braku czasu programiści idą na skróty. W jakimkolwiek większym projekcie taki technical debt jest niewybaczalnym grzechem.
  2. Odsyłam do standardu C++. Piszesz, że set::clear ma złożoność nlogn, gdy ma n. Piszesz, że priority_queue::top ma złożoność logn gdy jest stała. Inaczej mówiąc: bzdury.
  3. http://algorytmikacpp.pl/pages/course/variables/ Standard nie definiuje wielkości bajta, konkretnej reprezentacji intów, ani zakresu wartości jakie mogą reprezentować. Podałeś co widzisz w swoim kompilatorze na swojej architekturze, ale to nie oznacza, że to jest globalna prawda w C++.
  4. cout nie jest funkcją.
  5. To, że ktoś inny również używa błędnych pojęć nie oznacza, że od razu przestają one być błędne. Uzus językowy tak szybko nie działa.

Dla większości osób które znam używanie printf i scanf jest łatwiejsze.
A dla większości osób które ja znam to zbronia. Ale nie mówimy o koneksjach, tylko o tym, żeby nowicjuszy nie uczyć złych praktyk, jak np. używanie funkcji niezapewniających bezpiecznego typowania.

A kod się nie wyświetla jeśli nie włączysz js w przeglądarce.

4

To jest właśnie efekt polecania początkującym spojopodobnych serwisów do nauki programowania.

  1. Na konkursach typu ACM nie są najlepsi programiści, co najwyżej najlepsi algorytmicy. A ich kod został pisany pod kątem takich konkursów i wcale nie jest dobry podczas zwykłego pisania oprogramowania. Mnóstwo niedobrych praktyk.

s.erase(A) wyrzuca zmienną o wartości A z set'u logarytmiczna

http://en.cppreference.com/w/cpp/container/set/erase

Complexity
Given an instance c of set:

  1. Amortized constant
  2. log(c.size()) + std::distance(first, last)
  3. log(c.size()) + c.count(k)
  1. Przykładowo int nie musi mieć 4 bajtów.

  2. cin cout nie są funkcjami.

  3. Nie rozumiesz czym jest złożoność pamięciowa i mylisz z limitem pamięci (na konkursach).

0

Raczej ta strona jest przeznaczona zawodom programistycznym.
Co do złożoności obliczeniowej struktur z STL zwracam honor.
Uważasz, że błędem jest wyrażanie złożoności pamieciowej w MB?
Zmienne: https://pl.wikipedia.org/wiki/Liczba_ca%C5%82kowita_(typ_danych)

Może jest to zbrodnią w programowaniu aplikacji, gier, itp., ale jest to na prawdę wygodne i zalecane to programowania w krótkim czasie takim w jakich są przeprowadzane zawody. Spójrz na kody na przykład Gennadiego Korotkevicha.

4

Z tej wikipedii, do której odsyłasz:

Ich rozmiary w bitach zależą od implementacji.

Pisanie o złożoności pamięciowej w MB to jak pisanie o złożoności czasowej w godzinach.

No to napisz, że to jest kurs C++ przygotowujący do zawodów programistycznych i może zawierać błędy oraz praktyki programistyczne niepolecane podczas codziennego pisania kodu.

0

Co do Wikipedii to chodziło mi raczej o minimalny zakres.

Treść na stronie zostanie zaktualizowana. Dzięki za krytykę ;)

0

Fakt, bez JS nie ma kodu.

6
AlgorytmikaCPP napisał(a):
  1. Jest przedstawione w lekcjach dlaczego zalecam używać zmiennych globalnych.

Ten tekst dowodzi, że na razie nie masz pojęcia o czym piszesz.

Pozostałe wypowiedzi to potwierdzają. Ja wiem, że masz ochotę wykłócać się z ludźmi, którzy kodują profesjonalnie od wielu lat. W ten sposób jedynie co w ten sposób zyskasz to uśmieszek politowania.
Moja rada, nie odbieraj tych komentarzy personalnie, tylko spróbuj zrozumieć uwagi i w ten sposób popraw swojego skilla, by za jakiś czas napisać kurs, który naprawdę będzie coś warty.

Jeśli szukałeś innych kursów, to możliwe, że odkryłeś już iż większość tych kursów jest tworzona przez początkujących, którzy mają słabe pojęcie o temacie i często piszą bzdety. Najczęściej kursy te zamiast pomagać, utrudniają odnalezienie czegoś wartościowego (musisz przekopać 9 kursów na jakiś temat, by znaleźć jeden wartościowy).

1 użytkowników online, w tym zalogowanych: 0, gości: 1