Erfahrung in der DurchfĂŒhrung einer Olympiade fĂŒr Stadtprogramme

In diesem Artikel erzĂ€hle ich Ihnen von den Erfahrungen mit der DurchfĂŒhrung eines Programmierwettbewerbs fĂŒr Stadtschulen.

Die Idee, eine lokale Olympiade zu organisieren, entstand bereits beim Start einer Kinderprogrammierschule . WĂ€hrend der zweijĂ€hrigen Arbeit wurde noch deutlicher, dass der Bericht an Einheiten verschiedener Wettbewerbe in dieser Richtung geht, was bedeutet, dass es nur wenige Möglichkeiten gibt, SchĂŒler zu testen, sich außerhalb des Klassenzimmers zu engagieren und zusĂ€tzliche Motivation mit Ergebnissen zu erzielen. Ich werde sogar folgendes sagen: In Irkutsk gibt es keine Wettbewerbsveranstaltungen fĂŒr Studenten zum Thema Programmieren und nur eine Olympiade, an der Pythonisten teilnehmen können - „Wir spielen Programmierer“.

Es schien, dass die Organisation der Olympiade viele Ressourcen erforderte: einen großen Raum zu finden, zum Beispiel mit einer großen Bibliothek zu verhandeln, AusrĂŒstung bereitzustellen, freiwillige Lehrer zu finden, Sicherheit zu gewĂ€hrleisten und viele andere Kleinigkeiten. Und dies war ein Stolperstein fĂŒr eine kleine private Bildungseinrichtung in Bezug auf Ressourcen. Die Entscheidung kam unerwartet - die Distanzolympiade! Im Februar 2020 gab es GerĂŒchte ĂŒber einen schnellen Ruhestand, dass persönliche Veranstaltungen verboten wĂŒrden und fĂŒr mich alles zusammenpasste.

Nun zur Organisation der Olympiade:

Wir haben die Aufgaben am 20. MĂ€rz 2020 in unserer Gruppe auf VKontakte veröffentlicht. Die Zeit fĂŒr die Lösung von Problemen wurde etwas mehr als eine Woche eingerĂ€umt - vom 20. MĂ€rz 2020 bis zum 29. MĂ€rz 2020. Es war geplant, die Arbeit vor dem 12. April 2020 zu evaluieren, sie zweifelten sogar, man weiß es nie, aber sie schafften es in nur 4 Tagen. Zur gleichen Zeit gab es etwas mehr als 100 Teilnehmer, die PrĂŒfung war manuell (aber dazu spĂ€ter mehr).

Die Teilnehmer wurden in drei Kategorien eingeteilt:

  • Junior Stage (bis Klasse 7 der Bildungseinrichtungen einschließlich, Probleme werden in der visuellen Programmiersprache Scratch / Snap gelöst)

  • mittleres Niveau (bis einschließlich Klasse 7 der Bildungseinrichtungen, Probleme werden in jeder von der Olympiade zugelassenen Programmiersprache gelöst)

  • Senior Stage (Klasse 8-11 der Bildungseinrichtungen, Probleme werden in jeder von der Olympiade zugelassenen Programmiersprache gelöst).

. , 15 “ ” :

C++

Code: Blocks, VisualStudio

VisualStudio 2019

C#

Code: VisualStudio

VisualStudio 2019

Pascal

FreePascal 2.6.2

FreePascal 2.6.2

Basic

FreeBasic 0.90.1

FreeBasic 0.90.1

Java

NetBeans, Eclipse

JDK 1.7.0

Python

IDLE

Python 3.6

. . . - , - . : : 5 – , 2 – – . , – . . , , - .

5 , 2 . . 5 , . . , , . - . , - .

, .

, python

1

. . , . . (scratch/snap) – (, /). (python) – .

:

:

:

5

1 2 3 4 5

 3

1
a = int(input(" :"))
y = 0
for i in range(a):
    x = float(input(":"))
    y += x
y = y / a
print(" : " + str(y))

2

, ( ).  , - , -  , - .

, , . . (scratch/snap) – ( /)) . (python) – .

:

10 30 20

20 10 30

2
s = []
for i in range(3):
    griby = int(input())
    s.append(griby)
if s[0]>s[1] and s[0]>s[2]:
    print("")
elif s[1]>s[2]:
    print("")
else:
    print("")

3

, . . , .

. . (scratch/snap) – ( ) ( /) . (python) – . ? .

:

:

:

5

10 20 30 40 50

 9

18

27

36

45

3
girls = int(input())
apple = []
for numgirl in range(1, girls + 1):
    a = int(input())
    a = a - numgirl
    apple.append(a)
for numgirl in range(girls):
    print(apple[numgirl])

4

1 7. , (scratch/snap) – (, /). (python) – .

:

1

3

4
days = ['','','','','','','']
day = int(input())
print(days[day - 1])

5

. . , , 5 2 ( ), 2 5 ( ). . . (scratch/snap) – (, /). (python) – .

:

:

:

6

10 2 6 20 4 5

4 5 15 8 10 2

5
nums = int(input())
listnums = []
for i in range(nums):
    listnums.append(int(input()))
for i in range(nums):
    if listnums[i] % 5 == 0:
        listnums[i] = listnums[i] // 5 * 2
    elif listnums[i] % 2 == 0:
        listnums[i] = listnums[i] // 2 * 5
    print(listnums[i])

6

: , , . , «» — , , . 1 8 , , . (scratch/snap) – (, /) , . (python) – , .

:

:

:

1 5

4

8 1

2

6
vozmojnost = 0
stolb = int(input())
stroka = int(input())
#   
if stolb + 2 < 9:
    if stroka + 1 < 9: #  
        vozmojnost += 1 
    if stroka - 1 > 0: #  
        vozmojnost += 1 
#           
if stolb - 2 > 0:
    if stroka + 1 < 9: #  
        vozmojnost += 1 
    if stroka - 1 > 0: #  
        vozmojnost += 1 
#           
if stroka + 2 < 9:
    if stolb + 1 < 9: #  
        vozmojnost += 1
    if stolb - 1 > 0:#  
        vozmojnost += 1
#           
if stroka - 2 > 0:
    if stolb + 1 < 9:#  
        vozmojnost += 1
    if stolb - 1 > 0:#  
        vozmojnost += 1        
print(vozmojnost)

7

. , YES, — NO. 1 8 , , . (scratch/snap) – (, /) YES NO. (python) – YES NO .

:

:

:

1 1 2 6

YES

7
summ = 0
for i in range(4):
    summ += int(input())
if summ % 2 ==0:
    print('YES')
else:
    print('NO')

8

. . , . . () , , . . ( ).

(scratch/snap) – , , – . (python) – .

:

:

:

9

4 2 1

7 5 3

9 8 6

8
vvod = int(input())
num = vvod ** 0.5
if int(num) != num:
    num = int(num) + 1
else:
    num = int(num)
table = [[0] * num for i in range(num)]
numb = 0
ivert = num
for i in range(num):
    if ivert > 0:
        igoriz = 0
        for i in range(num - ivert + 1):
            if igoriz <= num - ivert:
                numb += 1
                if numb <= vvod:
                    table[igoriz][ivert + igoriz - 1] = numb
                else:
                    table[igoriz][ivert + igoriz - 1] = 0
            igoriz += 1
    ivert -= 1  
ivert = 1            
for i in range(num - 1):
    if ivert < num:
        igoriz = 0
        for i in range(num - ivert):
            if igoriz < num - ivert:
                numb += 1
                if numb <= vvod:
                    table[ivert + igoriz][igoriz] = numb
                else:
                    table[ivert + igoriz][igoriz] = 0
            igoriz += 1
    ivert += 1
for row in table:
    for elem in row:
        print(elem, end=' ')
    print()

9

- . 3 , 4 , 5 .. , ( ) . , , - , , , «Penguin Emperor». . input.txt . scratch/snap . (scratch/snap) – (, /) . (python) – .

:

:

:

Penguin Emperor

Shark zebra

Turtle Caiman

Shark white

Shark 2

9
file = open("input.txt")
animal=[]
kolvo=[]
for stroka in file:
    data = stroka.split()
    animal.append(data[0])
for i in animal:
    kolvo.append(animal.count(i))
maxi = 0
pos = 0
for i in range(len(kolvo)):
    if kolvo[i] > maxi:
        maxi = kolvo[i]
        pos = i
print(animal[i], maxi, end=" ")

10

, - brawl stars. . . w1, 
, wn. , , . w1, 
, wn (1 ≀ wi ≀ 100) . input.txt . scratch/snap

, — . .

(scratch/snap) – . (python) – .

:

:

4 Shelly

7 Bull

10 Bo

12 8-bit

15 ElPrimo

20 Tick

Tick

Bo

Shelly

0

ElPrimo

8-bit

Bull

10
file = open("input.txt")
pers_dict = []
for pers in file:
    data = pers.split()
    pers_dict.append((data[1], int(data[0])))
pers_dict.sort(key = lambda elem: elem[1], reverse = True)               
command1 = []
command2 = []
summa1=0
summa2=0
for elem in pers_dict:
    if summa1 <= summa2:
        command1.append(elem)
        summa1 += elem[1]
    else:
        command2.append(elem)
        summa2 += elem[1]
for key in command1:
    print(key[0])     
if summa1> summa2:
    print(summa1-summa2)
else:
    print(summa2-summa1)
for key in command2:
    print(key[0])

:

  • , , , , .

  • - , , scratch - , - "" .

  • , . .

  • ? . , .

  • , . . 8-10 , 6 , 4 .

Ich hoffe wirklich, dass der Artikel den Leitern von Programmierkreisen und Lehrern nĂŒtzlich sein wird. FĂŒhlen Sie sich frei, lokale Olympiaden abzuhalten, die Entscheidungen Ihrer SchĂŒler zu sehen und Schlussfolgerungen zu ziehen, um Ihr Bildungsprogramm zu verbessern.




All Articles