この記事では、市立学校のプログラミングコンテストを開催した経験についてお話します。
地元のオリンピックを組織するというアイデアは、子供向けプログラミングスクールの立ち上げの段階で生まれました。 2年間の作業で、アカウントがこの方向のさまざまなコンテストのユニットに送られることがさらに明らかになりました。つまり、学生をテストする機会がほとんどなく、教室の外で関与し、結果を伴う追加の動機付けがあります。私はこれを言います:Irkutskには、スクラッチでプログラミングする学生のための競争イベントはなく、pythonistsが参加できる唯一のオリンピック-「私たちはプログラマーを演じます」。
オリンピアードの組織化には多くのリソースが必要だったようです。たとえば、大きな部屋を見つける、大きな図書館と交渉する、機器を提供する、ボランティアの教師を見つける、安全を確保する、その他多くの些細なことです。そして、これはリソースの面で小さな私立教育機関にとっていくつかの障害でした。決定は予想外に起こりました-距離オリンピック!2020年2月、救急車についての噂があり、対面でのイベントは禁止され、私にとってはすべてがうまくいきました。
さて、オリンピックの組織について:
2020年3月20日に、グループ内のVKontakteにタスクを投稿しました。問題を解決するための時間は、2020年3月20日から2020年3月29日までの1週間強に与えられました。2020年4月12日までに作業を評価する予定でしたが、彼らは疑っていました。あなたは決して知りませんが、彼らはたった4日でそれを管理しました。同時に、参加者は100人強で、チェックは手動で行われました(ただし、それについては後で詳しく説明します)。
参加者は3つのカテゴリーに分けられました。
ジュニアステージ(教育機関の7年生まで、問題はビジュアルプログラミング言語のスクラッチ/スナップで解決されます)
中級レベル(教育機関の7年生まで、オリンピックで許可されているプログラミング言語で問題が解決されます)
シニアステージ(教育機関の8年生から11年生、問題はオリンピックで許可されているプログラミング言語で解決されます)。
. , 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 .
この記事がプログラミング界のリーダーや教師の役に立つことを心から願っています。地元のオリンピックを気軽に開催し、生徒の決定を確認し、結論を導き出して教育プログラムを改善してください。