Olimpiada informatyczna

0

Po zapoznaniu się z treścią zadań Olimpiady Informatycznej, pojawiło mi się w głowie kilka refleksji na ich temat. Otóż, czy nie wydaje wam się, że mimo, iż olimpiada nazywana jest "informatyczną", tak naprawdę głównie chodzi o zrozumienie "co autor miał na myśli", bardziej niż o zdolności programistyczne? Spowiedziałem się zadań ciekawych i przydatnych w codziennym programowaniu - napisaniu programu, który spełniałby konkretne funkcje, GUI, które byłoby oceniane itd. - a tymczasem dostajemy papkę, która (moim zdaniem), nawet po objaśnieniu, które mamy w "niebieskich książeczkach" nie jest dostatecznie jasna. Czy to tylko moje odczucie, czy ta olimpiada naprawdę powinna wyglądać zgoła inaczej? W rozwiązywaniu zadań, w zdecydowanej większości nie są problemem kryteria programistyczne, ale pokrętne i zwyczajnie dziwne zadania. Ktoś się zgadza? Ktoś się nie zgadza?

0

Zdecydowanie nie zgadzam się. Na olimpiadzie jest istota informatyki - przetwarzanie informacji. Algorytm. Osiągnięcie celu wykorzystując jak najmniej zasobów. GUI to zabawa. Bardziej jest związane z artyzmem i ergonomią.

0

Jest wiele rodzajów konkursów (olimpiad). Najpopularniejsze i najmniej ciekawe (moim zdaniem) są algorytmiczne, czyli wydaje mi się że właśnie te o których mówisz.
Oprócz nich jest jeszcze kategoriach projektowa i implementacyjna(przepraszam jak przekręciłem, trudne słowo :p). Niestety są to na ogół kategorie zespołowe.
Projektowa polega na przygotowaniu diagramów UML, a implementacyjna na zrealizowaniu go.
Występują one np. w konkursie TopCoder, oraz ImagineCup.

Jeśli chodzi o same zadania algorytmiczne, to nie są chyba aż takie straszne. Na ogół można zrozumieć o co chodzi. To raczej takie zadania z matematyki przy których rozwiązywaniu nie stosuje się algebry ale kod.

0

Osobiscie, co do wypowiedzi użytkownika Fooger oraz Falladil nie zgadzam się jeszcze bardziej zdecydowanie niż adf88. OI i tym podobne konkursy uważam za bardzo ciekawe, zmuszają do ruszenia banią oraz kreatywnego myslenia, aby stworzyć cos genialnego w prostocie a zarazem spełniającego wymogi zadania i oczywiście działającego w określonych ograniczeniach nadanych ze strony organizatorów. (Ktorymi sa najwieksze informatyczne mózgi jakie Polska posiada) Przepraszam, jeśli urażę swoją wypowiedzią użytkowników Fooger oraz Falladil ale wydaje mi się ze wolicie sobie "wklejać przyciski", uważam to za prostsze zadanie od zadań typowo algorytmicznych, w których jak wspomniał adf88 leży istota informatyki.

Falladil napisał(a)

Jeśli chodzi o same zadania algorytmiczne, to nie są chyba aż takie straszne. Na ogół można zrozumieć o co chodzi.
Albo jesteś jakimś geniuszem albo nie wiesz co mówisz, próbowałeś rozwiązywać zadania ze słynnych niebieskich książeczek? I nie mowie tutaj o jednym jakimś zadaniu z pierwszego etapu tylko paru porządnych zadań z etapu końcowego.
</quote>

Fooger napisał(a)

Spowiedziałem się zadań ciekawych i przydatnych w codziennym programowaniu - napisaniu programu, który spełniałby konkretne funkcje, GUI, które byłoby oceniane itd. - a tymczasem dostajemy papkę, która (moim zdaniem), nawet po objaśnieniu, które mamy w "niebieskich książeczkach" nie jest dostatecznie jasna.
[glowa] [glowa] [glowa]

0

Może niektórym przydałoby się przypomnienie czym jest informatyka - to nauka o przetwarzaniu informacji. GUI to tylko frontend dla algorytmu.

Jeśli chodzi o same zadania algorytmiczne, to nie są chyba aż takie straszne. Na ogół można zrozumieć o co chodzi. To raczej takie zadania z matematyki przy których rozwiązywaniu nie stosuje się algebry ale kod.

Od kiedy projektowanie algorytmu to rozwiązywanie zadania z matematyki przy pomocy gotowych wzorów? Jeszcze nie widziałem zadania na OI, które realizowałoby się po prostu wrzucając jeden ze standardowych, powszechnie używanaych algo. Praktycznie przy każdym trzeba odpowiedni algorytm opracować samemu, niejednokrotnie wymaga to wielu godzin pracy.

@Fooger, jeżeli nie potrafisz nawet formalnego opisu problemu zrozumieć to faktycznie może lepiej przy klikaniu GUI pozostań...
Nowe pokolenie chyba nie wie czym jest informatyka, ja w pracy staram się unikać w ogóle babrania z GUI, wolę czystą, informatyczną robotę. Stworzenie rozwiązania problemu o sensownej złożoności i odpowiednia optymalizacja implementacji kluczowych elementów jest zdecydowanie bliższa sensu tego fachu. Cóż, widać w XXI w. programowanie z myślenia zmienia się w klikanie.

Klikaczom polecam poprogramować trochę w Haskellu, przynajmniej samo tworzenie kodu faktycznie zmusi do myślenia. Swoją drogą fantastyczny język do prototypowania rozwiązań na OI. OI uczy rozwiązywania problemów i logicznego myślenia, chyba dosyć ważnych umiejętności?

Osobiście nigdy nie lubiłem OI za sztuczność problemów - z podobnej klasy problemami człowiek się w codziennym życiu raczej nie spotyka, jednak wiedza jaką z ich rozwiązywania wynosi jest bezcenna. Można znać kilkanaście języków programowania i być nikim, klepanie kodu to zwykle dosyć prymitywna, mechaniczna robota. Zwykli klepacze to kopacze rowów XXI w. - jeżeli umie tylko przeklepać gotowy, precyzyjny projekt na źródła.

0
Fooger napisał(a)

Spowiedziałem się zadań ciekawych i przydatnych w codziennym programowaniu - napisaniu programu, który spełniałby konkretne funkcje,

Proszę bardzo - zlecenie od linii lotniczych. Aplikacja www umożliwiająca kupowanie biletów, np. z miasta A do miasta B.
Z tym że bezpośrednie połączenie najczęściej nie istnieje; twój program ma dać klientowi do wyboru 5 możliwych połączeń, ułożonych wg. czasu lotu oraz ceny.
Dodatkowo, klient ma mieć możliwość wybrania miasta pośredniego, np. A -> B (klient gdzie przebywać w nim przez 1 dzień, następnie lecieć dalej) -> C.
Reszta wymagań jak wyżej.

Problem z prawdziwego świata, takie systemy istnieją.
Ten sam typ (no, trochę uogólniając) zadania co na OI...

btw

  • a tymczasem dostajemy papkę, która (moim zdaniem), nawet po objaśnieniu, które mamy w "niebieskich książeczkach" nie jest dostatecznie jasna.

Jeśli chodzi o same zadania algorytmiczne, to nie są chyba aż takie straszne. Na ogół można zrozumieć o co chodzi. To raczej takie zadania z matematyki przy których rozwiązywaniu nie stosuje się algebry ale kod.

Sie zdecyduj :) ciemna papka ciągle ciemna po objaśnieniach ale jednak nie taka straszna?

* poprawiłem tagi. * deus

0
utracilemraj napisał(a)

btw

  • a tymczasem dostajemy papkę, która (moim zdaniem), nawet po objaśnieniu, które mamy w "niebieskich książeczkach" nie jest dostatecznie jasna.

Jeśli chodzi o same zadania algorytmiczne, to nie są chyba aż takie straszne. Na ogół można zrozumieć o co chodzi. To raczej takie zadania z matematyki przy których rozwiązywaniu nie stosuje się algebry ale kod.

Sie zdecyduj :) ciemna papka ciągle ciemna po objaśnieniach ale jednak nie taka straszna?

Zacytowałeś dwie wypowiedzi różnych osób - nie dwie moje ;)

0

Jedyne, co mnie denerwuje w OI to totalne sredniowiecze jesli chodzi o dobor jezykow. Nie, zebym mial cos przeciwko C, C++ i Pascalowi. ale sa ta jedne z ostatnich jezykow, ktore ort! mi sie z klasa problemow prezentowana na OI. Moim zdaniem znacznie lepiej nadawalyby sie Haskell, Scheme, Python (w tej kolejnosci ;))

deus napisał(a)

Klikaczom polecam poprogramować trochę w Haskellu, przynajmniej samo tworzenie kodu faktycznie zmusi do myślenia. Swoją drogą fantastyczny język do prototypowania rozwiązań na OI.
No wlasnie - tylko prototypowania. Moze trza by bylo ort! sie przyszlym pokoleniom i napisac do organizacji OI jakas petycje albo cos ;)

0

Zmień Scheme na Common Lispa, dodaj może Ruby i będzie idealnie. Nas już OI nie dotyczy, ale cóż. Fakt faktem lista języków bazuje na liście języków uczonych w szkołach średnich, tak samo jak w wypadku matury z informatyki. C/C++ to dobre narzędzia ale nie w przypadku gdy chodzi o odpowiednio skomplikowany algorytm, zbyt szybko rośnie czas implementacji i liczba możliwych do popełnienia błędów. Szczególnie uciążliwe w późniejszych etapach, gdzie czas jest ściśle ograniczony. Haskell ma to do siebie, że siadasz, myślisz jak to napisać, cyk, i działa, sam nie wiesz kiedy to zaimplementowałeś.

0

ale oto tez chodzi ;) zeby oprocz tego ze wymyslisz potrafic to zaklepac i algorytmy nawet w 3 etapie nie przekraczaja wiele 150 linijek kodu a jezeli wymylisz takie jak wzrocowka to rzadko kiedy maja wiecej niz 80. ja na drugim etapie wymyslilem ale nie dalem rade wydebugowac i odpadlem ;) dlatego zostaja najlepsi i nie widzie sensu zeby zmieniac jezyki albo forme olimpiady ... jezeli komus nie pasuje to nie musi startowac ( popatrzcie takze na jezyki uzywazne przez sprawdzarki : uva , acm.timus.ru ) w wiekszosci to jezyki C/C++/Pascal ( rzadziej Java)

0

Dla niezadowolonych proponuję utworzyć olimpiadę z tworzenia softu.

0
deus napisał(a)

Nas już OI nie dotyczy, ale cóż.

Mnie w sumie jeszcze dotyczy, ale smiem watpic zeby cos sie udalo zalatwic zanim przestanie ;)

Fakt faktem lista języków bazuje na liście języków uczonych w szkołach średnich

Niby tak, ale idac tym tropem taki twor jak OIG nie powinien w ogole istniec, bo w wiekszosci gimnazjow (nawet o profilu mat-inf) programowania nie ma.

EDIT:

zloo napisał(a)

ale oto tez chodzi ;) zeby oprocz tego ze wymyslisz potrafic to zaklepac i algorytmy nawet w 3 etapie nie przekraczaja wiele 150 linijek kodu a jezeli wymylisz takie jak wzrocowka to rzadko kiedy maja wiecej niz 80. ja na drugim etapie wymyslilem ale nie dalem rade wydebugowac i odpadlem ;) dlatego zostaja najlepsi i nie widzie sensu zeby zmieniac jezyki albo forme olimpiady ... jezeli komus nie pasuje to nie musi startowac ( popatrzcie takze na jezyki uzywazne przez sprawdzarki : uva , acm.timus.ru ) w wiekszosci to jezyki C/C++/Pascal ( rzadziej Java)

Jesli umiejetnosc 'zaklepania' ma byc wyzwaniem, to moze zamiast C/C++/Pascal lepszy bylby assembler? I to nie na pecety, a na mikrokontrolery AVR, z wyprowadzeniem wyniku na zestaw wyswietlaczy 7-segmentowych? -.-

0
Ghostek napisał(a)
deus napisał(a)

Nas już OI nie dotyczy, ale cóż.

Mnie w sumie jeszcze dotyczy, ale smiem watpic zeby cos sie udalo zalatwic zanim przestanie ;)

Fakt faktem lista języków bazuje na liście języków uczonych w szkołach średnich

Niby tak, ale idac tym tropem taki twor jak OIG nie powinien w ogole istniec, bo w wiekszosci gimnazjow (nawet o profilu mat-inf) programowania nie ma.

EDIT:

zloo napisał(a)

ale oto tez chodzi ;) zeby oprocz tego ze wymyslisz potrafic to zaklepac i algorytmy nawet w 3 etapie nie przekraczaja wiele 150 linijek kodu a jezeli wymylisz takie jak wzrocowka to rzadko kiedy maja wiecej niz 80. ja na drugim etapie wymyslilem ale nie dalem rade wydebugowac i odpadlem ;) dlatego zostaja najlepsi i nie widzie sensu zeby zmieniac jezyki albo forme olimpiady ... jezeli komus nie pasuje to nie musi startowac ( popatrzcie takze na jezyki uzywazne przez sprawdzarki : uva , acm.timus.ru ) w wiekszosci to jezyki C/C++/Pascal ( rzadziej Java)

Jesli umiejetnosc 'zaklepania' ma byc wyzwaniem, to moze zamiast C/C++/Pascal lepszy bylby assembler? I to nie na pecety, a na mikrokontrolery AVR, z wyprowadzeniem wyniku na zestaw wyswietlaczy 7-segmentowych? -.-

kompletnie przesadzasz ;) w C++/C/Pascal nie musisz sie meczyc z takimi rzeczami jak w asm.
W jezyku C++ nie masz napisanych gotowych algorytmow np Dijkstry , BFS , DFS , KMP ( a one sa najwazniejsze na OI ) dlatego startujacy musi umiec je zaimplementowac oraz odpowiadnio zmodyfikowac na potrzeby zadania ;)

0
zloo napisał(a)

kompletnie przesadzasz ;) w C++/C/Pascal nie musisz sie meczyc z takimi rzeczami jak w asm.
W jezyku C++ nie masz napisanych gotowych algorytmow np Dijkstry , BFS , DFS , KMP ( a one sa najwazniejsze na OI ) dlatego startujacy musi umiec je zaimplementowac oraz odpowiadnio zmodyfikowac na potrzeby zadania ;)

A w Haskellu to niby masz?

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