Dans cet article, je vais vous parler de l'expérience de la tenue d'un concours de programmation scolaire de la ville.
L'idée d'organiser une Olympiade locale est née au moment du lancement d'une école de programmation pour enfants . Au fil des deux années de travail, il est devenu encore plus évident que le compte soit rendu aux unités de différents concours dans ce sens, ce qui signifie qu'il y a peu de possibilités de tester les élèves, d'implication en dehors de la classe, de motivation supplémentaire avec les résultats. Je dirai même ceci: à Irkoutsk, il n'y a pas de concours pour les étudiants sur la programmation en scratch, et une seule Olympiade à laquelle les pythonistes peuvent participer - «Nous jouons aux programmeurs».
Il semblait que l'organisation de l'Olympiade nécessitait beaucoup de ressources: trouver une grande salle, par exemple, négocier avec une grande bibliothèque, fournir du matériel, trouver des enseignants bénévoles, assurer la sécurité et bien d'autres bagatelles. Et c'était une pierre d'achoppement pour un petit établissement d'enseignement privé en termes de ressources. La décision est venue de façon inattendue - l'Olympiade à distance! En février 2020, il y avait des rumeurs sur une retraite rapide, que les événements en personne seraient interdits et pour moi tout s'est mis en place.
Maintenant sur l'organisation de l'Olympiade:
Nous avons posté les missions sur VKontakte dans notre groupe le 20 mars 2020. Le temps de résoudre les problèmes a été accordé un peu plus d'une semaine - du 20 mars 2020 au 29 mars 2020. Il était prévu d'évaluer les travaux avant le 12 avril 2020, ils en doutaient même, on ne sait jamais, mais ils l'ont géré en seulement 4 jours. Dans le même temps, il y avait un peu plus de 100 participants, le contrôle était manuel (mais nous y reviendrons plus tard).
Les participants ont été divisés en trois catégories:
stade junior (jusqu'à la 7e année des établissements d'enseignement inclusifs, les problèmes sont résolus dans le langage de programmation visuel scratch / snap)
niveau intermédiaire (jusqu'à la 7e année des établissements d'enseignement, inclusif, les problèmes sont résolus dans n'importe quel langage de programmation autorisé par l'Olympiade)
niveau supérieur (8e à 11e année des établissements d'enseignement, les problèmes sont résolus dans n'importe quel langage de programmation autorisé par l'Olympiade).
. , 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 .
J'espère vraiment que l'article sera utile aux responsables des cercles de programmation et aux enseignants. N'hésitez pas à organiser des Olympiades locales, à voir les décisions de vos élèves, à tirer des conclusions pour améliorer votre programme éducatif.