Про научные общества учащихся, школьные конференции и подобные мероприятия

1.12.2019

Помимо олимпиад, есть еще один довольно широко распространенный вид «наукообразной» деятельности для школьников — это всевозможные «научные общества учащихся», «конференции», на которых школьники представляют свои «проекты». У меня такое очень двоякое отношение к таким мероприятиям; очень вкратце — проекты делать имеет смысл, участвовать в конференциях — в большинстве случаев вряд ли.

Далее

Что надо учить школьнику?

12.10.2019

Меня часто спрашивают, что нужно изучать школьнику, который планирует в будущем стать программистом. Еще чаще я сталкиваюсь с рассуждениями школьников в стиле «я хочу изучать C#, чтобы писать на нем игры». Недавно один школьник спросил меня, мол, мой курс на алгопроге — это больше подготовка к олимпиадам, или «обычный курс обучения программиста», по типу тех, которые более-менее активно рекламируются в интернете? Я тогда ему написал ответ, и ниже я публикую довольно расширенный вариант этого ответа, заодно отвечая и вообще на вопрос, что вообще нужно изучать школьнику, чтобы стать программистом.

Далее

Про хеширование без домножения (ну и без деления, конечно)

11.08.2019

При решении задач на хеширование вам очень частно бывает надо уметь за $O(1)$ вычислять хеш любой подстроки заданной строки. Стандартный подход к таким задачам — давайте посчитаем хеши всех префиксов, а дальше будем с этим что-то делать…

Далее

Почему в олимпиадных задачах не надо проверять входные даннные на корректность

18.05.2019

В типичной олимпиадной задаче (и, соответственно, в типичной задаче на алгопроге) в условии четко оговариваются максимальные допустимые значения для переменных или другие ограничения на входные данные. Например, так:

Далее

Как я «Героев-2» русифицировал (не совсем)

17.03.2019

…Тут, говорят, исполнилось 20 лет третьим «Героям», на «Медузе» прекрасный текст с воспоминаниями про них, и поэтому я решил все-таки записать одну историю, которую давно хотел записать, но все руки не доходили. История эта лишь очень косвенно относится к тематике этого блога, это просто история из серии «байки старого программиста», но, кажется, этой истории место скорее здесь, чем, например, на моей стене во вКонтакте.

Далее

Почему я не советую учиться программированию в Jupyter notebook

23.01.2019

Я рекомендую всем начинающим изучать питон. Но при этом я настоятельно не рекомендую использовать Jupyter notebook или подобные «среды разработки» (в кавычках, потому что на самом деле Jupyter вовсе не среда разработки). Попробую объяснить, почему.

Далее

Про деление пополам, или не используйте вещественные числа

13.01.2019

Всем ученикам на алгопроге я всегда говорю: никогда не используйте вещественные числа, если без этого можно обойтись — из-за погрешностей, которые при этом всегда возникают. Подобные решения я сразу «игнорирую» (не засчитываю и требую от учеников их переделать).

Далее

Про игру в дырки, или Почему победитель не должен набирать максбалл

28.11.2018

Суть поста вкратце: я считаю, что на олимпиадах, целью которых (хотя бы отчасти) является выявление победителя, задачи должны быть составлены так, чтобы победитель не набрал максбалл — победитель должен скорее набирать процентов 70-80.

Далее

Про алгоритмический сахар, или почему я требую писать все вручную

12.11.2018

На алгопроге на начальных уровнях есть ряд задач, которые легко решаются стандартными функциями из стандартной библиотеки почти любого языка программирования — например, Максимум в массиве или Перевести символ в верхний регистр. Тем не менее, я всегда в этих задачах требую от учеников реализовать нужные действия вручную — в первом случае через цикл по массиву, во втором — работой с кодами символов. Недавно я доформализовал ответ на вопрос, почему я это требую.

Далее

Undefined behavior: как прострелить себе ногу в C++ (видео)

26.10.2018

Недавно я выступал на нижегородской C++ User Group с докладом про Undefined behavior. Сейчас огранизаторы мероприятия смонтировали видео и выложили на youtube. Настоятельно рекомендую посмотреть всем, кто более-менее неплохо знает C++.

Далее

Coffeescript — мой любимый язык программирования (не совсем)

20.09.2018

…Недавно меня спросили, какой мой любимый язык программирования. Вообще, конечно, этот вопрос некорректный. Языки отличаются по очень многим вещам, и нет какого-то одного идеального языка, у каждого языка есть свои достинства и недостатки.

Далее

Как отлаживать маленькие программы

4.05.2018

Пусть у вас есть небольшая программа, которая… не работает. Причем не просто как-то не работает, а у вас есть конкретный тест, конкретный пример, на котором она не работает. (Если у вас такого примера нет, то у меня есть отдельный текст про то, что делать в таком случае.) Как понять, что в программе не так, и как это исправить?

Далее

Почему в олимпиадах по информатике задачи только на программирование

21.03.2018

Довольно интересный вопрос — почему на олимпиадах по информатике традиционно дают задачи только на программирование (написание программ), при том, что в стандартной школьной программе программирование занимает лишь малую часть времени, и есть много других тем? Я попробую как-то ответить на этот вопрос. Все, что я излагаю ниже (да и выше тоже), конечно, является только моим личным мнением.

Далее

Думайте сразу над общим случаем

28.02.2018

Очень часто наблюдаю, как многие школьники, да и не только школьники, начиная решать какую-то задачу, начинают сначала думать с разные мелких частных случаев, которые на самом деле никак не помогают в общем решении.

Далее

Про Инфознайку и прочие странные олимпиады

24.01.2018

В наше время (в отличие, например, от того, что было лет 15-20 назад) существует огромное количество разных олимпиад. Олимпиады проводят все кому не лень, и поэтому, к сожалению, качество проведения олимпиад часто сильно страдает.

Далее

Про тестирование программы во время написания

25.12.2017

Тестирование программы, или точнее проверка верности программы в широком смысле, начинается не когда вы уже написали программу. Вообще, тестировать можно и нужно даже идею, еще до того, как вы начали писать код — но сейчас я буду говорить именно про тестирование конкретного кода. Так вот, серьезно думать о тестировании и корректности кода надо еще когда вы этот код только пишете.

Далее

Code that belongs in a problem

8.12.2017

If you want proof, Harry, that you belong in Gryffindor, I suggest you look more closely at this.

Harry Potter and the Chamber of Secrets, by J.K. Rowling

Далее