Competiții în domeniul informaticii (olimpiade) - informatică, programare

Probleme ale Olimpiadei Informatice. 3

Declarația problemelor prin metode de impunere a restricțiilor. 3

Restricții privind utilizarea fondurilor pregătite. 5

Restricții la "programare". 6







Realizarea olimpiadelor în informatică pe baza testelor. 8

Încercați întrebări ale Olimpiadei în Informatică pentru grupa de vârstă înaltă (clasele X-XI) 9


Probleme ale Olimpiadei Informatice

În timpul Olimpiadei de informatică de diferite nivele pentru o perioadă lungă de timp, au fost dezvăluite o serie de aspecte negative, legate atât de organizarea Olimpiadelor, cât și de învățământul informatic în școli. Iată câteva dintre ele.

1. Deseori se remarcă faptul că unii participanți la olimpiadă sunt "neglijați": educația și dezvoltarea lor este spontană și, uneori, chiar și o parte din materialul cursului școlar de informatică nu este familiarizată cu ele. Această spontaneitate se manifestă prin metode complicate, cum ar fi ELSE NEXT sau chiar ELSE DIM, pe fundalul ignoranței metodelor tipice de rezolvare a problemelor. Atunci când rezolvăm probleme simple, acești elevi manifestă "trucuri" deosebit de sofisticate și discutabile, dar se confruntă cu o sarcină mai dificilă la un moment dat. Atenția lor nu este îndreptată spre algoritmizare ca un fel special de gândire și activitate umană, nu la formularea și rezolvarea problemelor, ci la limba de programare (adesea - o versiune accesibilă a BASIC). Dar să le observăm dorința intuitivă pentru alte metode non-standard de rezolvare a problemelor.

2. În procesul de epuizare a subiectelor de probleme, distribuirea PC-urilor profesionale, limbi puternice, există o tendință de a rezolva sarcini greoaie la Olimpiadă. Textele pentru ele sunt, de asemenea, greoaie. Examinatorii nu au timp să se uite la soluții și să conducă testele. Și în ele, mai ales dacă sunt cazuri speciale, "șiretlic" poate scrie:

DACĂ N = I atunci RĂSPUNS: = 1

Dacă N = 2 atunci RĂSPUNS: = 3

(poate o să ghicesc câteva teste)

3. Viteza diferiților traducători de limbi străine, fără a menționa diferitele tipuri de VT școlare, variază în mod semnificativ. Prin urmare, o singură restricție la timp pentru teste duce la discriminare, de exemplu, un participant care lucrează la Corvette, comparativ cu cei care au acces la PEPMM.

4. Capacitățile limbilor sunt, de asemenea, foarte diferite. De exemplu, confortul procedurilor în Pascal și în "vechiul" BASIC nu este comparabil - și din nou inegalitatea șanselor.

Declarația problemei prin metode de constrângere

În ceea ce privește studenții, obiectivele Olimpiadei sunt două: să dezvăluie atât abilitățile, cât și educația. Să le formăm mai precis:

1. Identificați elevii cu abilități dezvoltate pentru gândirea logică-algoritmică. Subdezvoltarea acestei gândiri poate fi deghizată folosind un puternic software gata făcut sau biblioteci lingvistice puternice. Deci, comanda SORT în mediul DBASE vă permite să nu puteți crea algoritmi de sortare deloc. Poate că acest lucru explică paradoxul: elevii care cunosc Turbo Pascal, deseori rezolvă niște sarcini "dificile" decât cei care lucrează în Vilnius BASIC. Lupta împotriva acestui lucru este o școală bună de supraviețuire.

2. Identificarea elevilor educați, cu gândire sistem combinatorice dezvoltat, care ar trebui să se manifeste în abilitatea de a utiliza nu numai în scopul propus, dar, de asemenea varietate originală, neconvențională, creatoare de software gata făcute și echipa și să fie în măsură să evite programarea. Lipsa unui astfel de stil de gândire și educație, o perspectivă poate fi mascată de un nivel ridicat de tehnică a programării "goale".

În esența conceptului propus este presupunerea că, în esență, activitatea mentală a utilizatorului PS și a programatorului este de același tip și nu depinde de puterea VT și PS.

Scopul acestei activități este întotdeauna să aducă mediul computerului în starea dorită cu mijloace limitate: un număr finit de comenzi și algoritmi și funcții implementate, memoria și timpul disponibil. Noile generații de calculatoare și limbi de programare elimină doar vechile limitări, dar o persoană întâlnește inevitabil altele noi.

Ideea principală a conceptului propus este că, atunci când se depășesc limitele pe care se manifestă abilitățile creative, și, în plus, are loc dezvoltarea umană. Deci, posibilitățile limitate ale ghearelor și dinților unui om străvechi au dus la apariția de cuțite de silicon.

Să încercăm să explicăm sensul conceptului nostru privind exemplul sportului în cazul în care orice restricții pentru o lungă perioadă de timp și nu este ceva bizar și formează o parte integrantă a competiției: jumperii înalte nu folosesc un pliantă halterofili - pârghii, maratonistii - biciclete. Ca exemplu de a pune problema în sport folosind constrângerile "artificiale", să ne imaginăm următoarea situație: înainte de cursa bicicletei, toate bicicletele au roțile din față îndepărtate.

Desigur, un participant se poate urca într-un autobuz de transfer (un mijloc interzis). El poate merge pe jos (în informatică - nu fără calculatoare). Dar suntem interesați doar de cei care vor putea:

1) reparați bicicleta, făcând piesele lipsă din materialul util (procedurile de scriere care extind restricțiile limitate "mai restrânse");

2) să călătorească această distanță pe o roată, să nu inventeze nimic și să nu construiască (folosind mijloacele disponibile neconvențional);

3) în general, să inventeze și să producă o bicicletă nouă (în mod neașteptat pentru judecători). Revenind la știința informaticii, observăm că sarcina cea mai trivială poate deveni extrem de dificilă dacă condiția este completată de o serie de restricții asupra mijloacelor utilizate.

Atunci când se impun restricții, nivelul și complexitatea sistemului lor sunt importante: restricțiile prea puternice vor face ca problema să nu poată fi rezolvată; prea slab - trivial, necreativ; un sistem incomplet de restricții face posibilă găsirea unei "lacune" - "legitimă" pentru a profita de metoda "ilegală" (în exemplul nostru - pentru a apuca pe bara de protecție a autobuzului).

Restricții privind utilizarea produselor finite

Un semn al abilității de a algoritmiza, credem că abilitatea de a face cu mijloace mici, dar le combină în mod liber, extinderea arsenalului, în esență - limbă.







Prin urmare, în loc de discuția obișnuită despre a cărei limbă "a cărei" este mai bună, se propun restricții care, în primul rând, egalizează condițiile pentru participanți, și în al doilea rând, ei înșiși reprezintă sursa sarcinilor, inclusiv olimpiada. De exemplu, în orice limbă de implementare, puteți interzice:

1) GOTO și orice comenzi ale ciclurilor (FOR, WHILE, REPEAT, în același timp "suferă" și comenzi de tipul REPLACE. FOR din medii DBASE);

2) toate funcțiile și procedurile cu parametri, cu excepția I / O;

3) asamblare, comenzi ale mașinilor (pentru a evita traversarea "de jos");

4) acces direct la memorie (PEEK, MEM, etc.).

O tehnică tipică pentru construirea unei sarcini este de a interzice o operațiune, o funcție și o ofertă de implementare prin orice mijloace rămase. În acest fel, modelarea intrasubiect în stilul metodologiei manualului AG Kushnirenko și al altora este, de asemenea, realizată.

Creați un algoritm pentru calcularea A'B (pentru simplitate, pentru B> = 0. A și B sunt numere întregi). În plus față de restricțiile de mai sus, multiplicarea și împărțirea "pe frunte" sunt interzise.

Decizia cu privire la "veche" BASIC poate fi așa

10 'Înmulțirea lui A * B fără bucle și goană și *

Aceasta nu este o sarcină olimpiadă, ci o ilustrare a stilului de programare în condițiile unor restricții "artificiale".

Dacă nu împiedicați utilizarea funcțiilor, puteți ocoli topul în acest stil:

B = INT (EXP (LOG (A) + LOG (B) + 0,5))

care nu este, de asemenea, rău, dar nu dezvăluie abilitatea de a algoritmiza. Aceasta este abordarea opusă - utilizarea algoritmilor gata. Un alt exemplu este declararea unei probleme clare recursive cu interzicerea recursului. Formal, apelurile din subrutine sunt interzise, ​​totul este posibil și în special - de dorit pentru unele GOTO.

Restricții privind "programarea"

Conectați-vă un alt stil de gândire (numit de utilizator, spre deosebire de logica-algoritmică „de programare“) evitarea poate fi considerată programare Bani, dorința de a utiliza un mijloc gata pentru sarcina lui, iar în cazul în care nu se potrivesc - pentru a găsi un non-standard, utilizarea originală a altor mijloace disponibile, ceea ce duce la obiectiv, din nou pentru a arăta capacitatea de creativitate.

O caracteristică caracteristică a acestor activități este transformarea sarcinii, trecerea la alte tipuri de date, programe și comenzi. De exemplu, puteți asocia un număr întreg cu un segment al unei axe numerice sau o succesiune de una.

Pentru astfel de activități, este necesar:

1) educație, cunoașterea posibilităților explicite și implicite ale diferitelor mijloace pregătite, atât în ​​limba "iubită", cât și în afara ei;

2) formarea operațiilor mentale combinatoare de sistem - viziunea obiectelor și a fenomenelor în integritate, interrelații; abilitatea de a construi mai multe unghiuri complementare la unul și același obiect, capacitatea de a opera pe mijloacele conceptuale și tunuri de diferite discipline (de exemplu, din punct de vedere al funcției algebra este un meci, în ceea ce privește geometria - curba, din punctul de vedere al științei calculator - algoritm rezultat calcul prin argumentul dat).

Pentru a arăta aceste calități ale participantului, este necesar, pentru a spune, să-l interzicăți să programeze.

Este aproape opusă limitările de primul tip: pentru a identifica competențele și experiența în domeniul artei algoritmică, am forțat participanții au fost algoritmi destul de sofisticate pentru a rezolva sarcini „simple“ (în acest exemplu - operațiunea de multiplicare). Acum beneficiază de fonduri, dar - cu excepția programelor necesare. Acum este logic să rezolvăm numai algoritmi liniari. La urma urmei, activitatea corespunzătoare a "utilizatorului" este construirea unei secvențe de pași pentru a transforma mediul. Este ușor de prevăzut prin interzicerea expresiilor logice: verificarea condițiilor care "împarte" algoritmul în cicluri și ramificații. Pentru a evita programarea, interzicem din nou codurile mașinilor și asamblorul. Restul - puteți. De asemenea, trebuie permisă și comanda tip NC pentru FOR sau FOR; este necesar să introduceți tabele (teoretic și în viitor se poate efectua simultan pe procesoare paralele N, ca într-un singur pas).

În mod ideal, soluția problemei ar trebui reprezentată acum ca o secvență liniară de apeluri către funcțiile, procedurile și programele bibliotecii și standard (sau chiar ca un fișier batch).

Este potrivit să spunem acum despre foi de calcul. Din ciclurile construite în ele, va trebui să dezactivați ciclul de iterație la precizia specificată: permite "aproape totul".

Oferim exemple simplificate pentru a ilustra problemele de tipul al doilea. Primul exemplu este multiplicarea prin logaritmi (vezi mai sus).

Este necesar să se afle dacă punctul se află în interiorul conturului, dat de coordonatele legăturilor.

Soluție (sugerată de elevii școlari).

Ieșiți culoarea punctului de pe ecran.

Desenați un contur pe ecran (FOR! Cycle).

Umpleți-l cu culoare.

Iesiți din nou culoarea punctului care este verificat.

Nu sunt puse întrebări subțiri despre liniile de contur "groase" de pe ecran: exemplul prezintă o soluție nestandardizată, greoaie și, în același timp, "naivă" prin modelarea directă a problemei pe ecran,

Este necesar să se găsească maximum două numere A și B. Funcțiile MAX și MIN, desigur, sunt interzise.

Dacă uitați să dezactivați funcția MIN, atunci este posibilă "ocolirea laterală":

Soluțiile unor astfel de probleme nu se limitează la compilarea algoritmilor, algoritmii care rezultă sunt doar liniare, dar diferă cu un început creativ luminos.

Conducerea olimpiadelor în informatică pe baza testelor

Recent, întrebarea metodologiei de predare a olimpiadelor în informatică a fost ridicată din ce în ce mai mult. concursuri tradiționale, tind să se concentreze pe verificarea aptitudinilor de programare și sugerează prezența studenților cunoștințe vaste în matematică și limbaje de programare, care este o prioritate a școlilor fizice și matematice. Ce fac majoritatea tipilor entuziasti? Cum de a organiza Jocurile Olimpice pentru copiii înscriși în diferite școli, în diferite programe, studenți de diferite limbaje de programare (și nu le pot studia?), Lucru pe „pestriță“ calcul? Din această poziție, puteți găsi o cale de ieșire, dacă dețineți o olimpiadă separată în programare și informatică. În unele școli, astfel de olimpiadă se desfășoară pe baza unor teste.

Întrebările din cadrul testelor sunt selectate astfel încât să permită verificarea nivelului general al pregătirii studenților și să ofere posibilitatea de a rezolva principalele probleme apărute în timpul informaticii:

· Varietatea de computere în școli;

· Un nivel diferit de predare a informaticii;

· O gamă largă de limbi algoritmice studiate în școli;

· Limitarea cantității de tehnologie a calculatoarelor în școala care desfășoară olimpiada și, prin urmare, numărul participanților la olimpiadă.

Principiul de testare vă permite să verificați cu ușurință și rapid activitatea elevilor și, prin urmare, într-un timp scurt pentru a determina câștigătorii.

Testele propuse sunt defalcate pe grupe de vârstă VII - IX și X - XI. La calcularea punctelor se recomandă utilizarea principiului: fiecare răspuns corect - „1“ scor, răspunsul greșit - „-1“ scor (dacă nu știți răspunsul, nu încercați să-l ghicească) și „0“ puncte pentru o întrebare la care nu a răspuns.

În acest eseu este propusă o variantă a sarcinii de testare a Olimpiadei de Informatică pentru grupa de vârstă înaintată.


Testează întrebările Olimpiadei de Informatică pentru grupul de vârstă senior (clasele X-XI)

1. Pot același fenomen să aibă modele diferite?

2. Care este numărul minim de biți binari necesari pentru a codifica literele mari și mici din alfabetul rus și cifrele arabe?

3. Directorul curent conține programele LOGIN.BAT, LOGIN.EXE, LOGIN.COM. Ce program va fi executat dacă introduceți linia de comandă LOGIN?

4. Secvența înregistrărilor plasate pe orice dispozitiv de stocare, considerată în timpul transferului și prelucrării în ansamblu, se numește:

5. Hypertext este:

1) text foarte mare;

2) text structural, în care este posibilă efectuarea de tranziții în cuvinte "fierbinți";

3) text introdus pe computer;

4) text în care este utilizată dimensiunea maximă a fontului.

6. Avantajul sistemului de numere binare este acela că:

1) codul binar permite salvarea memoriei computerului;

2) elementele electronice cu două state consumă mai puțină energie electrică;

3) elementele electronice cu două stări sunt cele mai simple în proiectare.

7. Ce poate fi considerat un algoritm?

1) instrucțiuni pentru utilizarea metroului;

9. Care dispozitiv informatic poate avea efecte dăunătoare asupra sănătății umane?

2) unitatea de sistem;







Articole similare

Trimiteți-le prietenilor: