Γενικά παρακολουθώ τον διαγωνισμό κάθε χρόνο. Έχω αρκετές χρονιές προσπαθήσει να προετοιμάσω μαθητές για τον διαγωνισμό αλλά τις περισσότερες φορές με απογοητευτικά αποτελέσματα. Στην αρχή δηλαδή έτρωγα τα μούτρα μου και εγώ και τα παιδιά. Όταν κατάλαβα τι παίζει κατέληξα στα εξής συμπεράσματα
1. Αν θες να κάνεις σοβαρή δουλειά ξεκινάς από την Α Λυκείου αλλιώς μην περιμένεις να περάσει κάποιος έστω και την 1η φάση όσο καλός και να είναι.
2. Κάνεις C++ αλλά χρησιμοποιείς τις διαδικασίες της C για I/O (για ταχύτητα). Αν πας σε Pascal είσαι καταδικασμένος. Δεν ξεκινάς με printf/scanf, θα φύγουν οι μισοί, κάνεις cin/cout που είναι απλά στην αρχή αλλά μετά το γυρνάς σε C.

Στην C++ έχεις την STL library που είναι μια καλή βοήθεια αν κάπου τα βρεις σκούρα ή δεν προλαβαίνεις να υλοποιήσεις κάτι. Για παράδειγμα μπορείς να χρησιμοποιήσεις την quicksort που έχει. Προσοχή. Δεν χρειάζεται να μιλήσεις για κλάσεις και αντικείμενα, απλά χρησιμοποιείς το "C κομμάτι" της C++
3. Ξεκινάς στην Α λύκειου στο μάθημα επιλογής με άγριες διαθέσεις και τους κάνεις ΓΛΩΣΣΑ στο εργαστήριο. Πρέπει οπωσδήποτε να καλύψεις μέσα στη χρονιά μέχρι και δομές επανάληψης. Εκεί θα δεις αν υπάρχουν παιδιά που να έχουν δυνατότητες και όρεξη(και τα 2 είναι προαπαιτούμενα). Στη συνέχεια στο τέλος της Α ή στην αρχή της Β με τα παιδιά αυτά που έχουν καταλάβει τις βασικές έννοιες κάνεις 2 επιπλέον ώρες C++, έτσι για το κέφι σου. Αν το "πουλήσεις" με έξυπνο τρόπο στα παιδιά θα έρθει κόσμος. Στο Λύκειο που ήμουν είχα 10 μόνιμους που έρχονταν και οι 3 πέρασαν στη 2η φάση όταν ήταν στην Γ λυκείου. (Οι 2 είναι τώρα στο τμήμα πληροφορικής του Καποδιστριακού, τους επηρέασα λίγο

)
Γενικά δηλαδή θέλει πάρα πολύ δουλειά χωρίς να σου υπόσχεται κανείς ότι θα έχει αποτέλεσμα.
Έχω σχηματίσει ένα πλαίσιο διδασκαλίας για τον διαγωνισμό, δηλαδή τι ακριβώς πρέπει να διδάξεις αν έχεις περιορισμένο χρόνο ώστε τα παιδιά να περάσουν έστω την 1η φάση. Φυσικά θα απογοητευτούν στην 2η αλλά τι να κάνεις. Όταν βρω χρόνο θα το συμμαζέψω και θα το ποστάρω για όποιον ενδιαφέρεται.
Τώρα σχετικά με τον διαγωνισμό, δεν έχει σημασία πόσο "ωραίο" ή κομψό κώδικα γράφεις αλλά μόνο το σωστό αποτέλεσμα και ο χρόνος που το πρόγραμμά σου θα βγάλει απάντηση. Υπάρχει αυτόματο σύστημα που τα έλεγχει αυτά. Οπότε δεν αρκεί να έχεις μόνο καλό αλγόριθμο αλλά να ασχοληθείς και με τα τεχνικά στοιχεία του προγραμματισμού. Για παράδειγμα κάποιοι μαθητές είδα ότι έκαναν τα πάντα για να κερδίσουν σε χρόνο ακόμα και BitWise operations ή ολίσθηση σε bits για κάποιες πράξεις!!!
Τες πα , η αλήθεια είναι ότι πρόκειται για έναν διαγωνισμό για τους πολύ λίγους

. Για να καταλάβετε για τι επίπεδο μιλάμε τα παιδιά πρέπει να ξέρουν θεωρία γραφημάτων, δυναμικό προγραμματισμό και άλλα τέτοια, δηλαδή πρέπει να ξέρουν την ύλη ενός γερού μαθήματος "Αλγόριθμοι και Πολυπλοκότητα".
Τέλος έχει απόλυτο δίκιο σε αυτό που λέει ο Παναγιώτης ότι τα θέματα μερικές φορές είναι για παπαγάλους. Πράγματι έχουν βάλει για παράδειγμα πρόβλημα που έπρεπε να ξέρεις τον αλγόριθμο του Dijkstra ή άλλο που ζήταγε τον αλγόριθμο για υπολογισμό minimum spanning tree του Kruskal!! Να το επινοήσεις μόνος σου λίγο δύσκολο, μάλλον πρέπει να το ξέρεις. Δεν έχω δει πάντως εξαιρετικά πρωτότυπα προβλήματα που να ελέγχουν σκέψη και όχι γνώσεις.