Comments 427
Если это не специализированный класс, где учащиеся уже имеют понятие об алгоритмах и языках, то Паскаль очень хороший и понятный выбор, чтобы донести основы.
А если специализированный, то тем более Паскаль.
P.S. Больше с точки зрения спортивного программирования
В PascalABC.NET есть. Среда разработки у него довольно убогая, к сожалению, но именно в языковом плане он достаточно свежий (недавно вроде бы локальный вывод типов и лямбды завезли; ну по сути они копируют фишки C#). Ещё одно немаловажное достоинство - достаточное количество учебных материалов школьного уровня и доступная опять же для школьного уровня графическая библиотека, которая позволяет сделать что-то интересное.
А можно узнать, в каком языке по-Вашему среда разработки "достойная"? И, заодно, что именно Вы разработывать предлагаете?
Для Питона есть хорошие варианты: PyCharm для более продвинутых, Thonny для совсем начинающих. C# и C++, конечно, с Visual Studio (единственный вариант, кстати, помимо Паскаля ЭйБиСи, в котором сообщения об ошибках на русском языке), но по ним маловато учебных материалов школьного уровня.
И нет, я ничего не предлагаю разрабатывать, всё уже давно есть, просто в школах мало людей имеют достаточный уровень, чтобы этим воспользоваться.
Вы странное пишете. Что такое есть в PyCharm (кроме изнурительно долгого старта), чего нет в PascalABC.NET, только в PascalABC.NET сообщения компилятора внятно и на русском языке? Литература по этому языку тоже есть. Материалов школьного уровня по C# и C++ мало потому, что массово изучать эти языки в качестве первых - безумие.
Автоформатирование исходного текста, удобный отладчик, проверка синтаксиса на лету, не дожидаясь запуска программы. А, и ещё PyCharm не падает в самый неудобный момент.
Физ-мат лицей в Тамбове уже давно преподаёт C++ в качестве первого, у них там это класса с 7, если не ошибаюсь. Ничего, полёт нормальный. Я пробовал преподавать и C++, и C#, нормально заходят, но Python в целом получше.
Не поймите меня неправильно, PascalABC.NET - вполне нормальная среда для обучения, помимо минусов среды разработки, у него есть немало и плюсов. Главный минус вот по моему опыту в том, что все прекрасно знают, что Паскаль используется только для обучения. Тем, кто изучает программирование только потому что оно есть в школьной программе, в принципе-то без разницы, а вот людей, которых программирование интересует, это напрягает. Когда я преподавал Паскаль, постоянно были вопросы, почему мы не изучаем что-то более современное, всё равно, мол, придётся потом переучиваться.
Так и в PascalАВС.NЕТ автоформатирование (если не отключать) работает автоматически при вводе. А если вставить в окно редактора неформатированный текст, есть опция меню (и кнопка на панели), выполняющая форматирование. Насчет "падений" - хотите верьте, хотите нет, Паскаль последний раз падал у меня года четыре назад. Хотя, по слухам, можно заронить программу, если пытаться работать с указателями - в .NET-среде это смертельный номер из-за сборщика мусора.
А в Питере DL Club учит на PascalАВС.NЕТ детей в 1-3 классе (можете на их сайте убедиться). А с 4 класса они на С++ переходят, ибо там олимпиадников готовят. Но что эта организация, что физ-мат лицей - это не массовое явление в школьной информатике, по ним нельзя равняться.
Про "современное". Школа учит не языку программирования, она должна учить конструировать алгоритмы (хотя и этому она не учит). От того, каким будет первый язык, зависит мышление ученика. Приучат на Пайтоне к динамической типизации - так и будет таращить глаза в вузе, услышав про С/С++ и ныть, что это все "дешманские языки". Я как-то попросил питонщика написать алгоритм обращения матрицы методом Гаусса. Бог мой, что это было... Гаусс бы сто раз перевернулся в могиле, увидев такую реализацию.
Посмотрел версию 3.8, действительно, автоформатирование завезли. Последний раз я смотрел версию 3.6, что ли, там ещё не было. Та же 3.6, собственно, и падала: что на уроках, что на олимпиадах постоянно приходилось напоминать, чтобы сохранялись. Нет, к указателям это отношения не имело, просто повисание на ровном месте. Если сейчас исправили, ну хорошо.
И знаете, вот ровно такую же аргументацию я использовал, когда ученики возмущались тому, что им предстоит изучать Паскаль. Не помогало. Как я говорил, кому не надо - тем пофиг что изучать, а заинтересованные всё равно самостоятельно начинали копать Си++, Джаву или тот же Питон. В итоге я сам в эту аргументацию перестал верить, почему и перешёл на Питон, как только появилась легальная возможность это сделать в основной учебной программе, а не только на факультативах (вышел учебник Полякова). Алгоритмы можно изучать на любом вменяемом языке.
Какое отношение динамическая типизация имеет к чисто алгоритмической задаче обращения матрицы, вообще непонятно. Если человек не умеет мыслить алгоритмически, он не умеет это делать вне зависимости от изученного языка. Пресловутый индусский код - это ведь вполне себе статическая Джава в основном. На информатиксе (informatics.msk.ru) я насмотрелся на самые разные решения, в основном там Си++ и Паскаль, Питон на далёком третьем месте - и что-то вот незаметна связь между выбранным языком и стройностью решения.
Динамическая типизация к обращению матриц отношения не имеет, я и не утверждал о какой-то из связи. Просто упомянул обращение матрицы, как еще один недостаток Питона.
И алгоритмы действительно можно изучать на любом языке. Только я считаю, что современный Паскаль для этого лучше подходит. Вы считаете, что в ваших условиях лучше Питон. Да это Ваше право, я же не отговариваю Вас, мне только видятся Ваши аргументы против Паскаля некорректными.
И еще. В ЮФУ, в команде разработчиков PascalABC.NЕТ в свое время работал некто В. Брагилевский. Сейчас он работает в Питере, в университете и в JetBrains (скорее всего это знакомая Вам компания по их продукту PyCharm). Вот он категоричен по поводу первого языка программирования: "Только не Питон!". В прошлом году была онлайновая видеоконференция для учителей, там и его выступление есть.
Сэты есть в самом языке, остальное в библиотеках (FPC/Delphi).
Может быть писать самому и неприятно, зато будешь знать как оно там под капотом устроено. Наличие готовой реализации таких вещей хорошо в промышленном программировании, но не в обучении. По моему так.
Как говориться "зачем другие языки, если есть паскаль?".
А если серьезно - подумайте про очень простую вещь, от того что мы начнем читать детям другой более "современный" язык никто ничего не потеряет - но при этом облегчится задача вузам, так как не будет ступора на уровне - "Эм-Эм, а где тут endif ставить?", условно мне преподавали плюсы - я не чувствую, что я что-то потерял, наоборот в первом семестре мне было проще, так как мне не нужно было переучивать себя на другой синтаксис (это если забыть что в паскале два деления и прочее, но это тема отдельного Халивара) - в общем, как-то так.
Когда-то и ламповые компьютеры были хорошим решением, но почему-то мы от них отказались.
Вы путаете тёплое с мягким. Ламповые ПЭВМ были хуже транзисторных из-за габаритов и энергоэффективности. А школьный выхлоп от крестов и паскаля одинаковый. Опять же, синтаксис, на самом деле, не имеет значения. Важны только парадигмы и возможности, предоставляемые языком.
Кстати, если со стороны обучения схемотехнике посмотреть на радиолампы, в сравнении с транзисторами, то они тоже хуже. Это надо дополнительно рассказывать про нити накала, особенности переходных процессов в процессе накала нити, когда процессы термоэлектронной эмиссии ещё не стабилизировались. Про транзисторы рассказать намного быстрее и проще, а результат - аналогичный.
Я не путаю - я просто перевожу пример в другую плоскость. Если вам кажется что использовать технологические решение прошлого, когда этому есть аналог - это оправдано, я не буду пытаться вас переубедить - у меня нет ни сил, ни желания. Но Паскаль рано или поздно закончится.
type
Fruit = (Apple, Orange, Kiwi);
X = set of Fruit;
заменить на плюсовые std::unordered_set<enum Fruit, std::hash<...>, std::allocator<..>...>
и такие же страшные итераторы?Python не предлагать, для обучения нужен строго типизированный язык, чтобы сразу прививать идеи, что нужно конструировать типы, чтобы нельзя было сложить фрукты и животных в одну коллекцию, когда это не нужно для задачи.
про строгую типизацию - дело вкусовщины и отдельного халивара, но и на python можно научить программировать.
Извините, но вы забываете самое главное. Преподаватель информатики работает по методичке и не является программистом. ЛЮБОЙ затык от паскаля не по методичке вызывает ужас в глазах учителя (поверьте, я видел его не раз). Вы осилите написать методичку, странички три на урок с четвертой с возможными ошибками в процессе? думаю нет.
Если у ученика в другом языке программирования возникает вопрос куда ставить endif, то проблема или в учитиле нового языка или учинике.
Что до типизации, если она вас не устраивает, то у бейсика с ним по проще, почему тогда не его?
Преподаватель информатики работает по методичке и не является программистом.
Если преподаватель информатики настолько не является программистом, что не способен даже отрабатывать нештатные ситуации — то это, мягко говоря, настолько хорошо иллюстрирует проблемы с системой образования, что дальше уже можно ничего не говорить.
Я немного не слежу, но в 2021 это уже норма, что школьные преподаватели являются главным образом читателями методичек, да?
Сам не слежу, но вот узнал что уже много лет как первоклассник при поступлении должен уметь читать.... что говорит о том как и что учат в школе.
блин, перечитал свое предыдущее сообщение, еще ошибок увидел. совсем разучился грамоте...
А люди, которые и пишут эти методички и одновременно преподают — ну, сеньор разработчик сможет позволить такую школу своему ребенку, в принципе. Одному.
А вы на зарплаты учителей давно смотрели? Особенно если это не какая-нибудь понтовая школа / гимназия / лицей? Это собственно одна из причин того, что преподаватели являются чтецами методичек.
Или вас в примере не Паскаль, или он принципиально изменился с тех пор как я его последний раз видел с полгода назад (у сына в среде Pascal Abc)
Согласен. Где обычные для Паскаля знаки присваивания ":=" ?
Интересно, откуда у сына В Pascal ABC, снятый разработчиками с поддержки в 2007 году (14 лет прошло)? С 2007 года идет PascalABC.NET и это совсем другой язык, его люто ненавидят все, кто пишут на Python, С++ и С#, потому что в нем есть практически все лучшее и из Python, и из C#, и из Haskell, но он в синтаксисе Паскаля, проще, лаконичнее и нагляднее для новичка.
Интересное мнение о том, почему его ненавидят конечно. Я дал себе обещание не спорить больше в комментариях, но тут я просто воздержаться не могу.
(Возможно там и есть что-то хорошее - не буду скрывать), но основная "ненависть" (тут точно не это слово, но менять его не буду) не в реализациях Паскаля, а в том, что это Паскаль.
С такими темпами мы можем учить на условном Ада/Алголе и прочем, и говорить, что его хейтят программисты за "функциональность" и "крутость".
Да даже условный Haskell - это крутой язык на котором приятно программировать (был год Haskell в университете), но его можно "ненавидеть" за монады и прочее (когда ты видишь в условном Kotlin много возможностей написать что-то функционально и не обмазываться монадами), в общем язык можно не любить за многие вещи, но вот не любить его за то, что "в нем есть практически все лучшее" - как минимум глупо. К Паскалю есть притензии на уровне "слишком много слов ради слов (end, begin и прочее)", переменные в начале или поддержания его (в некоторых версиях) по-факту для школы (и да я знаю про написание на нем продуктов, но все же).
Для меня стало удивлением насколько "сообщество" программистов на Паскаль стало защищать свой язык. Если он нуждается в такой защите возможно с ним что-то не так? Я бы условный Java не стал бы так защищать или (даже) Си - если ему на смену придет что-то более современное - подход простой - меняться за сферой, а не "оборонят язык от констатации факта его давности и (около) мёртвости"
Я вот тут ниже в комментарии пример кода написал https://habr.com/ru/post/569362/comments/#comment_23307170
Поищите там Ваши претензии на уровне ""слишком много слов ради слов (end, begin и прочее)", переменные в начале или поддержания его (в некоторых версиях) по-факту для школы "
слишком много слов ради слов
Расскажите мне автор, как без end писать повышающие читаемость проверяемые утверждения о том, что именно закрывает оператор.
with Ada.Text_IO;
procedure To_Be_Or_Not_To_Be is
begin
Reasoning :
for To_Be in False .. True loop
if To_Be then
Ada.Text_IO.Put_Line ("To be!");
exit Reasoning;
end if;
end loop Reasoning;
end To_Be_Or_Not_To_Be;
Как вы собираетесь loop Reasoning переписать без end? Меняем end на фигурную скобку, loop Reasoning оставляем? Смешно.
Кстати, у Java большой популярностью пользуется XML, и там проверяемое указание, что именно закрывается, почему-то программистам не мешает. Когда уже давно есть JSON, джависты всё равно выбирают многословный XML. А ведь программный код человеку читать тоже нужно, там читаемость нужна даже больше.
Ещё я интересовался Apple-аналогом JSON, Property Lists. Жаль, за пределы их экосистемы не распространился. Так вот, когда-то давно, в 90х, у них был ASCII-синтаксис, и они с него перешли на XML-подобный, где видно, что чего закрывает.
Вы точно мне вопрос задать хотели? PascalАВС.NЕТ позволяет в коротких программах не использовать внешний блок begin ... end. (c точкой на конце), но вовсе не отменяет его. Можно условно считать, что перед компиляцией конструкция ## текстуально заменяется на begin, а в конец текста приписывается end с точкой. Но и только.
Также разрешается не указывать begin ... end в описании подпрограмм, если тело подпрограммы представляет собой один оператор, например function fx(x: integer) := 3 * x * x mod 8;
Интересное мнение о том, почему его ненавидят конечно. Я дал себе обещание не спорить больше в комментариях, но тут я просто воздержаться не могу.Вау, супер объективная вышла статья у вас. Статья про неправильную информатику в школе, где в качестве аргументов к тому, что Паскаль надо заменить на что-то более «модное» — высказывания вида «Ненавижу Паскаль, потому что это Паскаль». Ок.
(Возможно там и есть что-то хорошее — не буду скрывать), но основная «ненависть» (тут точно не это слово, но менять его не буду) не в реализациях Паскаля, а в том, что это Паскаль.
С такими темпами мы можем учить на условном Ада/Алголе и прочем, и говорить, что его хейтят программисты за «функциональность» и «крутость».Ох, знаете, если по языку Ада нет 100500 курсов на площадках типо ГикБрейнс или СкилФактори, это не значит, что язык мертв, или не нужен. Вы летаете на самолетах? Знаете, о том что в Airbus и Boeing софт на Аде написан и продолжает писаться? Однако с Адой то все понятно — опять Паскальный синтаксис вам глаза режет.
К Паскалю есть притензии на уровне «слишком много слов ради слов (end, begin и прочее)», переменные в началеА к C/C++/Python/Go нет претензий никаких, они идеальны?
или поддержания его (в некоторых версиях) по-факту для школы (и да я знаю про написание на нем продуктов, но все же).А что плохого в том что есть удобная среда для школьников и студентов? PascalABC.Net — ДЕЙСТВИТЕЛЬНО создан для обучения, и хорошо выполняет свою функцию, впрочем его и для науки используют.
Для меня стало удивлением насколько «сообщество» программистов на Паскаль стало защищать свой язык. Если он нуждается в такой защите возможно с ним что-то не так?А вы попробуйте написать статью с посылом «Python — устаревший и мертвый язык», а я посмотрю на комментарии к этой статье и на вашу карму.
Ну typescript возьмите.
Я тоже начинал с паскаля (на самом деле со спектрумовского бейсика, но это детали), и главный существенный минус в нем я вижу в оторванности экосистемы от реального мира. Если во времена х286 и учебы без интернета это еще было неплохо (был небезынтересный turbo vision, а графику всё равно так или иначе надо было самому писать в те времена), то теперь картина мира радикально изменилась: есть множество способов сделать что-то забавное или полезное (прогу с GUI, игрушку, и т.д.) с очень низким порогом вхождения и довольно скромными программистскими навыками, но… это всё не имеет никакого отношения к паскалю. С паскалем — можно только сдуть пыль с окаменевающей Delphi, но во-первых Delphi сама по себе существенно отстоит от паскаля, а во-вторых — тоже уже мертвая.
А оторванность экосистемы наносит довольно сильный удар по мотивации делать что-то за пределами базового учебного курса. Выводить в консоль числа Фибоначчи — не особо вдохновляет в принципе, а уж в 14 лет — тем более.
В плюсах они хотя бы есть.
end()
. А не просто, как в Паскалеif (someItem in someSet) then ...
А всё потому, что в Паскале множество это 32 упакованных байта, и перечислимый тип для множества не может иметь больше 256 элементов (по крайней мере, так было в турбопаскале-7.0 о котором сабж). А в С++, особенно последних, коллекция основана как минимум на списке, а то и что посерьезнее под капотом спрятано (двоичное дерево скажем). В итоге паскалевское if (a in someSet) транслируется в test [someSet+15],0x04 (если а — переменная, то смещение и бит вычисляются в несколько инструкций, а если константа — то вообще на этапе компиляции), а в С++ громоздится вполне серьезный код на две абстракции.
Школьники старше итераторов в Паскалях, а ваши представления о Паскалях ещё старше этих школьников.
Синтаксис for-in-do появился в Delphi 2005, а в Delphi 2009 появились из коробки обобщённые контейнеры, к которым их интересно применить.
В языке Ада было в другом порядке: в ISO стандарте Ада 2005 появились контейнеры вместе с курсорами, а синтаксис for-of-loop подъехал только в ISO стандарте Ada 2012. Ну а в Ada 2022 list comprehensions.
Пишите на f#. Будет даже лаконичнее:)
Делаете enum и vector
Вектор - растущий массив, который можно использовать, вместо обычного, если есть такая необходимость. Это тип данных, который написан для разных типов - то, что вы используете напишите в скобочках.
Честное слово - придумать можно всегда как объяснить.
А зачем? Если продолжать учить в PascalABC.NET, можно работать со статическими массивами (для закостенелых учителей), с динамическими, а также со списками List (если хочется делать частые добавления / удаления). Причем делать это куда проще и понятнее в записи, чем на С++ с STL.
Vector, просто вектор - все решение этих проблем - заодно можно получить интересный навык - если что-то хочешь использовать, то нужно подключать Хедер, а не просто все что есть есть из коробки.
В современном Паскале мы просто пишем программу:
##
var n := ReadInteger; // введем 13
var a := new integer[n];
a[: n div 3] := |-1| * (n div 3);
a.Print // -1 -1 -1 -1 0 0 0 0 0 0 0 0 0
Все коротко понятно и читаемо (ну или почти все). В С++ на уровне школьника код будет намного менее нагляден. А ведь это примитивный пример.
Если Вам знаком тот же Питон, то Вы понимаете, что это повторение. Только не константы, а объекта. В данном случае - массива из одного элемента со значением -1. Но Паскаль - это не Питон, где те же "лямбды" ущербны, ибо реализованы не полностью. В Паскале, как и в Хаскель, функция - объект первого класса, т.е. ее имя может встречаться в выражении в качестве операнда. Так что |х| - функция, возвращающая массив из своих аргументов х. Синтаксический сахар для функции Arr(a1, a2, ...), просто тут мне понадобился только один элемент.
По поводу Вашего "|Random|" - да, выведет 5 раз повторенное случайное вещественное число из интервала [0, 1). Забавно, да? Не зная языка, Вы написали на нем работающую конструкцию, да еще и угадали, что она сделает. Что же тут неочевидного? С точки зрения функционального программирования - ничего. Но ведь так никто писать не заставляет, можно писать и иначе, и даже как на ТурбоПаскаль.
Если угадать, что делает |x|*n по контексту(как и большинство других конструкций в других языках программирования) может большинство более-менее опытных разработчиков, то для того, чтобы додуматься так написать без примера, нужно обладать ну очень богатой фантазией.
Во-первых, как я уже заметил, так писать никто не требует, но если хочется - почему нет? Во-вторых, современному стилю программирования нужно учиться и как раз по этой причине PascalАВС.NЕТ удобен: он позволяет писать код в любой парадигме и произвольно их смешивать при желании. Вот что и как проходим сейчас - так и пишем. А потом оставляем в памяти наиболее удобное.
Только тогда уж сразу enum class, чтобы не прививать вредных привычек.
Тем временем Rust:
enum Fruit {
Apple,
Orange,
Kiwi,
}
type X = HashSet<Fruit>;
Тем временем PascalАВС.NЕТ (полный работающий код):
type
Фрукты = (Яблоко, Апельсин, Киви);
X = HashSet<Фрукты>;
begin
var a := new X;
a += Киви;
a.Print
end.
В Rust не сильно больше:
#[derive(Debug, PartialEq, Eq, Hash)]
enum Фрукты { Яблоко, Апельсин, Киви }
type X = std::collections::HashSet<Фрукты>;
fn main() {
let mut a = X::new();
a.insert(Фрукты::Киви);
println!("{:?}", a);
}
Причём в этом случае компилятор ещё и предупреждает, что варианты Яблоко
и Апельсин
нигде в коде не используются. Впрочем, лично я не считаю возможность использовать идентификаторы из не-английских букв чем-то хорошим.
Имена, допускающие национальный алфавит, достаточно удобны. Особенно, для младшеклассников, которые с удовольствием используют их, записывая свои алгоритмы. Да и ученики постарше не брезгуют писать Vшара вместо Vsphere.
То, что компилятор предупреждает о неиспользованных вариантах в enum Вы серьезно считаете каким-то большим достоинством языка, таким, что ради этого надо тащить в школу более замороченные конструкции по типу let mut a = X::new() вместо паскалевского var a := new X ? Как то я не замечал в школах тенденции к массовому переходу на Rust.
Отбросим аргументы шаблона, которые и так дефолтные, ну и заменим unordered_set на set для читаемости:
enum class Fruit { Apple, Orange, Kiwi };
std::set<Fruit> X;
Паскаль — очень наглядный язык, на котором можно объяснить школьнику вообще все. И потом продемонстрировать. Начиная от работы с файлами, до полноценной работы с графикой.
Как человек, который преподавал Паскаль, могу сказать, что это совсем непростой язык для тех, кто учится. Хотя бы массивы, которые могут быть с 0 или с 1, а потом, внезапно, указатели, которые с 0. У людей сыпятся OutOfRangeException.
Да и сами указатели для изучения основ не нужны.
Я лично считаю, что C# идеальный язык для обучения в школе. Очень просто ставить инфраструктуру (студия уже содержит все нужные шаблоны для проектов), си-подобный синтаксис, с которого можно переходить на С++ или Java. Современный достаточно востребованный стэк. Просто нужно не упарываться со всяким синтаксическим сахаром и асинкам, а давать сначала лаконичную версию времен 3.5
На самом деле я тоже думал про что-то еще более современное - например Go, с его обширной библиотекой и еще чем-то - но вы сами можете видеть забавную реакцию людей - здесь большая часть комментариев про то, что "ПАСКАЛЬ ЭТО МОЯ ЖИЗНЬ" что Паскаль нужно сохранить и никогда больше не трогать. Мне страшно представить, что бы здесь было если бы я написал что-то вроде "давайте заменим на Kotlin или Java" (если честно C# мне не оч нравится, но я думаю тут чисто мой опыт работы с ним такой)
Вообще, если подумать, какой язык взять в качестве стартового для обучения программированию как таковому, то вероятно, подойдет приличное множество языков, если не влезать глубоко в объектные их части, а упирать на согласование типов передаваемых данных, чтобы не возникало гадского соблазна прибавить 3 к 'a' и получить 'd', а потом получить segmentation fault или error 0xC0000005 и потерять интерес, так как не успели научить тому, что такое менеджер памяти и как ей вообще управлять. И то потом будут проблемы научить писать слегка нетривиальные алгоритмы, так как в библиотеках уже всё давно написано, а к Паскалю их как раз нет и ЗДЕСЬ это имхо приличное благо.
Да и сами указатели для изучения основ не нужны.
Тех самых указателей, без которых вы не напишите любую сколько-нибудь серьёзную программу. И как вы, интересно, без хотя бы концепции указателей опишите var-параметры?
И как, кроме C/C++ много современных языков программирования работают с указателями? Практически ни одного. Они работают со ссылками, а это совсем не одно и то же. Все ООП-языки строятся на основе ссылочной модели данных. Кроме крайне неудобной "размерной" модели в С++, за что его кто только не ругал.
И как, кроме C/C++ много современных языков программирования работают с указателями? Практически ни одного. Они работают со ссылками, а это совсем не одно и то же.
Принципиальной разницы нет. Так и так надо объяснять, почему в одном случае изменения аргументов видны извне функции, которая их поменяла, а в каком — нет.
в первом семестре мне было проще, так как мне не нужно было переучивать себя на другой синтаксис
Синтаксис не имеет особого значения. Когда мы курсе на четвертом начали считать себя суперкрутыми программистами, и начали меряться пиписьками по количеству языков (надо было всего лишь практически нахэлловорлдить, но чтоб заработало) — поняли, что самое сложное — это научиться нормально писать на первом языке (какой бы он ни был). после этого первый переход на другой язык представляет собой лишь некоторую сложность (даже если первый — это ЯВУ, а второй — это ассемблер). остальные даются еще проще — нужно время лишь для изучения инфраструктуры (библиотек) и наработки опыта.
собственно, в студенческие времена у нас все более-менее
Когда-то и ламповые компьютеры были хорошим решением, но почему-то мы от них отказались.— но от вычислений в двоичной системе не отказались. Алгебру логики и примитивные логические элементы можно объяснять хоть на примере ламп, хоть на примере РТЛ -ДТЛ-ТТЛ…
(даже если первый — это ЯВУ, а второй — это ассемблер)
Вот здесь я с вами сильно не соглашусь. Резкие переходы вверх-вниз по уровням абстракции очень сильно добавляют сложности, и переход с ассемблера на ЯВУ, как и наоборот — это гораздо сложнее, чем просто "некоторая сложность". Другое дело, что осилив как-то верхний и нижний уровни абстракций — дальше, действительно, уже сильно проще.
Но в контексте школьного образования — тут дело не в синтаксисе, а в создании нужной мотивации.
Мне, в своё время, категорически не давалось объектно-ориентированное написание (из-за чего и не стал программистом в конце 90-х) - до сих пор, если надо что-то по-быстрому на php набросать, использую процедурный стиль. Вот, где засада. Как по мне, так типичный паскаль от ассемблера отличается намного меньше, чем от C# или Kotlin.
Чего категорически не хватило в школьном курсе информатики, так это объектной концепции и наследования.
Кроме того, даже у неплохих программистов встречал очень странное стремление строить велосипеды - ну, из самого свежего - есть обмен между двумя системами в XML - весьма типичная ситуация, но на стороне разработчика мобильного приложения этот XML почему-то обрабатывался не стандартными "фабриками", а парсился "вручную", из-за чего резко возросла требовательность к расстановке пробелов и разрывов строк (хотя XML в этих вопросах допускает колоссальные вольности).
Как по мне, на информатике надо обязательно обучать двум типам программирования (процедурному и объектному).
Максимально использовать библиотеки - это уже не совсем школьный уровень, хотя даже в Турбо паскале без system.tpu и dos.tpu - весьма и весьма грустно.
system.tpu
crt.tpu скорее, так как без system в консоль ничего напечатать не выйдет.
Безусловно, без system.tpu заметно больнее, чем без crt.tpu, но имел я в ранней юности опыт написания программ на Turbo Pascal с очень урезанной поставкой - был только компилятор, а turbo.tpl отсутствовал (со всеми библиотеками). Понятно, что это вырожденный случай, и в реальности такое маловероятно, но я почти полгода писал программы, так как был сильно увлечён (вывод на экран сначала реализовал через буфер экрана $B800:$0, затем с использованием asm-вставок через INT 21h, как и работу с файлами)... позже, конечно, "разжился" нормальной поставкой - когда в Дом Пионеров, наконец, завезли компьютеры с Windows for workgroups 3.11 и большие красивые коробки "Borland Pascal 7.1", но это уже было после окончания школы, и былой запал поутих... хотя в институте задачки сдавались на TP 6.5, если правильно помню.
Даже интересно, как отрабатывал TPC в случае полного отсутствия system.tpu. В Фаронове было написано, что если написать в программе uses System; компилятор ругнется на двойное подключение модуля, т.е. либо у вас TPC был правленный, либо какой-то урезанный system.tpu все-таки где-то лежал. Но без него больнее, факт, даже writeln не вызвать.
Ту "поставку" я вычленил из комплекта стрелкового тренажёра - там какая-то часть перекомпилировалась при изменении настроек (скорее всего, подпрограмма работы с лазерным целеуказателем, но за давностью не вспомню). Не могу исключить, что компилятор был патченный, а что ещё более вероятно, ещё и пережатый, чтобы вся поставка умещалась на дискетку 3.5"...
Хотя, как показала практика, нынешние школьники вполне нормально всасывают синтаксисы и си (ардуиновский диалект), и джавы («школа самсунг»), и 1с — «они знают много слов, но не знают, что делать с этими словами». поэтому язык — вторичен. Первично умение получить из идеи/потребности алгоритм. Имея алгоритм, можно уже выразить его практически. Но как сейчас заинтересовать алгоритмом — я даже не знаю. в 90-х у меня получалось (ученики говорят, что получалось, и неплохо), сейчас не возьмусь. Написать игрушку? для нас было круто, например — змейка и тетрис. сейчас на такое смотрят с, хм, недоумением… хотя некоторым действительно интересно «написать змейку самому». Писать «простое» уже не хотят, сложное еще не могут.
после этого первый переход на другой язык представляет собой лишь некоторую сложность
Исключительно потому, что большинство применяемых на практике языков программирования — это Алгол с нескучным синтаксисом. С Haskell, например, вот так в лоб не прокатит.
от того что мы начнем читать детям другой более «современный» язык никто ничего не потеряет
Только если этот язык будет не хуже чем Pascal, именно с точки зрения изучения основ. Каждый язык надо рассматривать в этом контексте отдельно, и не факт, что популярные языки не будут уступать Pascal, для задачи обучения. Даже при том, что во многом они его обогнали, и для работы, они могут быть, объективно, лучше.
Python — слишком много магии, динамическая типизация, сборщик мусора. Нет отдельного синтаксиса для объявления переменной (не отличается от повторного присваивания). Как по мне, не самые лучшие характеристики для первого языка. Добавим к этому ООП, со всей его сложностью, оправданность которой трудно показать на школьных задачах (а тут ещё и множественное наследование в придачу). Python хорошо подойдёт как второй язык, после школьного Pascal, например.
Java/C# — очень много фичей для промышленного программирования, которые не нужны школьникам. Тут не просто какое-то там ООП, а гораздо больше всего. Особенно в C#, но и Java догоняет в последнее время. На самом деле, даже в ВУЗе я не видел задач, которые бы позволяли раскрыть потенциал таких языков. В итоге, мы все эти фичи изучали, а зачем они реально нужны, понимания не было.
C++ — огромное количество сложных для понимания концепций, которых нет в других языках. Move семантика, шаблоны, SFINAE, множественное наследование, и проблема ужасного бриллианта, виртуальное наследование. СИ-шные указатели нервно курят в сторонке. Много легаси. Сложная, недружелюбная инфраструктура, в «хакерском» стиле. Извольте изучить CMake, чтобы что-то сложнее «Hello World» собирать. Куча компиляторов, не совместимых между собой. Школьникам всё это точно не нужно. А изучать C++ на 10% — не очень хорошая идея, как по мне. Уж лучше знать язык по проще, но знать его твёрдо. Особенно, если смотреть с прицелом на дальнейшее образование, ибо ВУЗовский преподаватель будет скорее рад наличию у всех студентов, чёткой, одинаковой базы, чем отрывочным знаниям, пусть и актуальным. В последнем случае, он как раз скажет знаменитое: «Забудьте, чему вас учили в школе» — и начнёт объяснять всё с нуля. Собственно, а какой у него ещё выбор? Без приведения к общему знаменателю, это задача не решается.
JavaScript — неявная, слабая, динамическая типизация. Вездесущая асинхронность (не нужная сложность для новичка). Сложная, «хакерская» инфраструктура, с кучей препроцессоров, транспиляторов и прочего. Наличие легаси в базовом синтаксисе (var, «use strict», использование function как конструкторов).
C — слабо типизированный и не безопасный. Много неопределённого поведения. Без указателей жить нельзя. Для массивов абстракция слабовата (её нет). Со строками всё не очень хорошо (их нет). Но если сравнивать с предыдущими вариантами, то это лучший кандидат, из-за своей простоты(не так много концепций в нём). Но всё же, чисто для обучения, Pascal подойдёт лучше, благодаря более мощной системе типов, более высокоуровневой концепции массивов, наличию строк, и тому что там можно жить без указателей. Любой специалист вам скажет, что на C не столько сложно научится кодить, сколько сложно научиться это делать правильно. А от плохого кода на C, будет больше вреда, чем пользы.
PHP — почти все те же минусы что и у Python. В добавок, концепции веб сервера, проникшие в язык, типа POST, GET, код в перемешку с HTML — не очень хорошо, для первого языка.
Go — сборщик мусора. А так, не плохой кандидат, благодаря своей простоте и строгости.
Rust — может быть сложно. Концепций много. И синтаксис своеобразный. Но, возможно, оно того стоит.
Вообще, лично я бы всерьёз рассмотрел вариант, с одновременным изучением двух разных языков, по принципу, один высокоуровневый и со сборщиком мусора, а второй с ручным управлением памятью. Например, Python/C или Go/Rust, Python/Pascal. Высокоуровневый лучше выбирать с точки зрения будущей полезности, но не слишком сложный, т.к. время не резиновое, да и не стоит людей мучить, если они не собираются становиться профи. А тот, который с ручным управлением памятью, нужен только для изучения более низкоуровневого программирования и основ работы с памятью. Можно тот же Pascal оставить. У него есть свои плюсы, с точки зрения обучения, да и учителя его уже знают. Но можно и заменить на Rust или на C. Rust, наверное, по интереснее будет.
З.Ы. все «недостатки» языков указаны с точки зрения их влияния на процесс обучения, и не обязательно являются недостатками «в общем смысле». Понятно, что вопрос, во многом, холиварный. Но если есть идеи или возражения, хотелось бы, чтобы дискуссия оставалась в рамках контекста обучения новичков. В частности, мне кажется, что динамическая типизация крайне плохо подходит для этой задачи. При том, что у неё есть свои применения, где она удобна. А неявный синтаксис объявления переменных — вроде мелочь, но реально мешает объяснить такую важнейшую концепцию, как область видимости. Хотя, может это только у меня с объяснением такой простой вещи проблема возникла — я не являюсь преподавателем, и опыт обучения других людей у меня не богатый. Но, в целом, у меня сложилось мнение, что чем строже язык, тем лучше это для обучения. Новички, вообще, очень грешат тем, что стремятся заставить свою программу работать «хоть как-то», и не понимают, что правильная работа программы, в конкретном случае, не гарантирует правильной работы в общем случае. Строго типизированный язык и строгий компилятор, хотя бы немного, заставляют их думать в концепции «общего случая».
Вы рассматриваете ситуацию с точки зрения "вырасту и буду программистом, нужен первый язык". Далеко не все будут программистами по профессии, при этом уметь накидать простые скрипты для простой автоматизации может пригодиться гораздо большему числу людей. Пайтон, ИМХО, прекрасно подходит для преподавания в школе из-за миллиарда библиотек, давая ученикам инструмент для решения задач во многих областях, от построения графиков до биоинформатики до обработки текста.
Ну и да, учить два языка одновременно — плохая затея. Время, понятно, плюс у многих в голове получится каша.
Далеко не все будут программистами по профессии, при этом уметь накидать простые скрипты для простой автоматизации может пригодиться гораздо большему числу людей.
Далеко не все будут математиками по профессии. Какая польза, большинству людей, от производных или пределов, например? Может не тратить на них время, а вместо этого научить высчитывать переплату по кредиту, или показать как оплачивать коммуналку в КВЦ? Но школьное образование должно закладывать фундамент, который поможет учиться дальше. Если в школе ограничиться базовой арифметикой, многие пути в жизни будут закрыты. В то же время, бытовые навыки тоже нужны, но они стоят отдельно. Учитывать надо обе потребности. Мы говорим о том, что стоит изучать на уроках информатики. А ставить единственным критерием пользу в быту — это про уроки труда или домоводства. Информатика, сегодня, включает две категории знаний: 1. теория, низкоуровневые, фундаментальные вещи, лежащие в основе всего; 2. практические навыки для работы с информационными технологиями. И даже в языках программирования эта двойственность проявляется. Какие-то близки к фундаментальным основам, другие — сосредоточены на решении прикладных задач. Именно поэтому я и предложил изучать 2 разных языка, относящихся к разным уровням абстракции. На мой взгляд, это не прихоть, а необходимость. Ведь это как два разных мира, и чтобы изучить их оба, надо изучать оба.
Ну и да, учить два языка одновременно — плохая затея. Время, понятно, плюс у многих в голове получится каша.
Не будет никакой каши. Наоборот, многое будет понятней. Во-первых, сам факт изучения двух разных языков, потребует грамотно составить программу обучения, отталкивающуюся от фундаментальных концепций, а заодно, давать нормальные объяснения, например, не «Всё есть объект», а «В ОО парадигме, все сущности, принято рассматривать как объекты». Во-вторых, ученик тоже будет мотивирован к пониманию именно фундаментальных концепций, как раз чтобы всё уложить в голове, в стройную систему. Когда ты видишь, что одно и то же, можно реализовать по разному, ты начинаешь задавать очень важный вопрос: «Почему здесь решили сделать именно так?» При изучении двух принципиально разных подходов, просто нет другого выхода, кроме как отталкиваться от фундаментальных понятий, отделяя их от деталей. Это касается как учителя, так и ученика.
Какая польза, большинству людей, от производных или пределов, например?
Никакой, даже с точки зрения какого-то "фундамента". Вы сейчас описываете ситуацию в идеальном мире, где каждый учитель — профи, программа составлена хорошо, все дети умные и имеют достаточно времени. Ну тут да, можно и фундамент давать во всех областях, лишним не будет. Но ни одно из этих допущений в реальности не работает. Производные и пределы половина тупо не понимает из-за хреновых объяснений или кривой программы (моей сестре, к примеру, давали производные без предварительных пределов). Посмотрите результаты ЕГЭ/ЗНО/… с математики и оцените уровень понимания среднего ученика. О каком фундаменте речь вообще? Пару формул/методов зазубрили, чтобы хоть что-то сдать, вот и всё понимание. Ровно то же самое и во всяких физиках/химиях, разве что они необязательны для сдачи, поэтому такая картина заметна в первую очередь на школьных контрольных, а не на профильных экзаменах.
Вы не можете строить систему образования для идеального мира и пытаться натянуть её на реальный: работать не будет.
Не будет никакой каши.
Опять же, моей сестре давали два языка сразу: Паскаль и Пайтон. Каша, полнейшая каша в голове каждого в классе. Всего один датум, конечно, но что есть у вас, чтобы подкрепить свою идею?
Можно предераться к неявному объявлению типов, но мне в Паскале это только мешалось. Конечно, скобки первое время могут раздражать, но бегины и энды как по мне ещё хуже.
Объясните мне, насколько на ваш взгляд мои слова оправданны, и какая в них доля ошибочности?
Вы забыли Лисп!
Я перечислил те языки, которые знаю, и использовал на практике, хотя бы немного. Кроме Rust, к нему я пока только присматриваюсь. Но те концепции, что там есть, я, хотя бы, в целом, представляю, и понимаю.
Про Лисп я знаю не много. По большому счёту, лишь то, что это такой «мета» язык, в синтаксис которого заложен необходимый минимум, а всё остальное, реализуется на самом языке.
Основным недостатком, я вижу то, что этот подход (насколько я его понимаю), сильно отличается от мейнстрима. И разница тут гораздо более глубокая, чем отличия между C и Pascal, например. Но мне сложно судить, насколько Лисп, в целом, мог бы быть полезен, при изучении в школе, и какие с ним могут быть трудности, потому что я его никогда не щупал.
Куча компиляторов, не совместимых между собой.
Прошу пардону, а этот ваш Lazarus, Pascal ABC, Pascal ABC.net, Delphi они разве на 100% совместимы?
Ха-ха..
У нас вообще не было никакого языка программирования.
А потом и самой информатики не стало. Не смогли найти препода.
По-моему, python выглядит понятнее. К счастью, на ЕГЭ и ОГЭ уже можно использовать C.
Я с вами категорически не согласен. Я поступал в университет 15 лет назад. И с тех пор непрерывно работаю в IT, в том числе руковожу сложными технологическими проектами, нанимаю людей. Так вот:
. Давайте просто сменим ЯП на современные
Зачем? Чтобы было? А что если я скажу что технологий которыми я сейчас зарабатываютна жизнь вообще не было во времена когда я учился. И языков таких не было. И даже C++ 2005 и 2020 года это просто разные языки. Современный C++ ужасен для обучения, но дело не в этом. Дело в том что обучение технологиям это база а не конкретные технологии. Идея поменять учебный язык похожа на идею поменять гантели в зале на что-то более похожее на ящики с фруктами в пятёрочке. Не имеет никакой разницы на чём вы учитесь, и паскаль неплох.
Про "современность" знаний
Может ещё определение предела убрать из универской программы, сколько там лет назад его сформулировали.
Про Word/Excel/PP Тут я смысл вообще понять не могу. Может вы знаете? Зачем детям несколько четвертей (а то и лет) рассказывают про возможности этих инструментов?
Для выражения мысли. Потому что экономика, реальная, та где счёт фактуры, договора и деньги всё ещё невероятно зависит от этих инструментов. И поверьте, даже после такого курса никто нихера уметь не будет, но хоть что-то.
"низкоуровневые" знания - давайте расскажем им про ассемблер и регистры.
Чтобы что? Чтобы показать что процессор не магия для избранных мне как раз очень хорошо продемонстрированли в школе сложением двух чисел 150 типа byte c записью в такой же байт. И прекрасно рассказали про переполнение. И про машинный код рассказали. А вот про ассемблерный не рассказали, как и про то как байтики в сетевой карте в импулсы превращаются, про то, какие волновые процессы в антенне wifi происходят. Это всё очень хорошие и интересные знания, но требующие базы.
Подождите, в начале я говорю про то, что информатика и математика это две разные вещи, собственно с этого и приступаю к проблеме.
От части информатика должна быть Интересной, понимаете? Читать информатику ради информатики это странно и глупо.
В общем я закончил школу 1.5 года назад, и общался со своими одногруппниками - у большей части из них были проблемы с тем, что информатика имела интерес на уровне 0, мы так просто людей от нее распугиваем. Изменением программы позволит сделать так, что каждый сможет найти для себя что-то интересное, а не давайте в 2021 году рассказывать про то, что есть Яндекс, Гугл, и Бинг. Это просто смешно
А ещё химия должна быть интересной. И физика. И математика, черт возьми (обожаю её, меня хлебом не корми дай диффуры порешать). Моя супруга тащится от географии. Коллега знает практически всё об истории России. Представьте себе, все предметы должны и могут быть интересными. И дело только и не столько в программе и преподавателе, хотя они очень важны. Я вот, например, очень любил химию в школе, сдавал её в качестве ЕГЭ в 2012 году. Но при этом 28 из 30 человек в классе ей совсем не интересовались. Так что это не косяк учителя или программы, а просто этим детям было интересно другое.
Спорный вопрос. Я влюбился в it сразу как увидел комп, изучал много всякого. Но в школе информатика была настолько скучна и ужасна, насколько это вообще возможно. Я учился более 15-ти лет назад, но ситуация изменилась незначительно.
Я до сих пор помню попытки понять "свернуть окно" по скриншоту и описанию. Которое нужно было заучить наизусть, но которое было совершенно непонятным и трудновоспроизводимым. И даже брал дополнительные книжки, где объяснения были столь же ужасными. А для понимания потребовалось 4 раза кликнуть мышкой (открыть, свернуть, развернуть и сверуть снова).
Про объяснения формата ячеек в Excel даже вспоминать страшно.
Ваш комментарий конструктивен, но позволю отчасти не согласиться :)
Школьная программа пишется по «среднему по больнице». В 2021 году ещё полно сельских школ, к примеру, в нашем крае, где компьютер — один-единственный на всё здание, и к нему записываются в очередь, чтобы поработать, выложить домашнее задание и журнал. И ради одного этого компьютера в школу тянулся интернет. Тем самым полевым кабелем :) А детей учить чему-то надо, вот и пишут учебники с учётом ЦА :))
Вам повезло больше, поздравляю с поступлением на отличнейший факультет.
Интерес дело наживное. Мне в школе на информатике тоже было не интересно в рамках школьного курса и мы самостоятельно выходили за рамки. И это не хорошо и не плохо - это как есть.
Не знаю как вы начали с того что математика и информатика это разные вещи, но слово математика в вашей статье не встречается. А я считаю ровно наоборот, информатика неразрывно судествует как приложение математики. Очень многим людям из моей школы нравился Бивис и Баттхед, нравилось клея нюхнуть. И то что людям интересно гораздо больше зависит от воспитания и примера родителей чем от программы.
В общем я закончил школу 1.5 года назад, и общался со своими одногруппниками - у большей части из них были проблемы с тем, что информатика имела интерес на уровне 0
Ну с этого и надо было начать. Проблема понимания материала всегда кроется в преподавателе, а не в самом материале. К сожалению вы ещё не преподвали, сами раз так говорите. Попробуйте научить школьника программировать. Я могу это сделать за два -три часа используя Excel и Паскаль, а вы?
P.S. критика школьной программы мне понравилась, но вот касаемо ЯП в корне не согласен, паскаль - лучший яп для обучения.
Я учил детей программировать - плюсы им заходят прекрасно, правда иногда мои вступления про то, почему условно массивы с нуля нумеруются и тд не понимались, но в целом всем понравилось.
Да я не преподавал в школе.
А я могу научить ребенка рисовать на стенах маркером всякие пошлости за 4 минуты, но должен ли я это делать?
Паскаль и прочие «простые» языки дают базис и понимание того как что работает, именно благодаря тому, что обязывают тебя делать базовые вещи руками, а не это любимое в современном програмировании — «Я подключил библиотеку Math для того что бы сложить 2+2, я пограмист» (и потом у нас hello world занимает 150 мегобайт и кушает ресурсов как будто в нем трасировка лучей работает, а она там работает, только вот даром никому не нужна). Я сейчас не спорю с тем что умение пользоваться библиотеками и фреймворками важно, однако надо и понимать как оно работает внутри них и так же понимать где и что применять, и желательно не как в примерах выше.
PS А програмировать можно и на простом исполнителе который может только рисовать линию и поворачивать в одну сторону на произвольный угол — шикарный тренажер для понимания как работают программы и как это быть программистом.
Процентов 80 современных выпускников не умеют пользоваться поисковыми системами, впринципе. Про языки запросов, того-же гугля, я вообще молчу. А уж умение пользоваться встроенной в систему документацией, это вообще какой-то «Rocket Science».
Проблема Паскаля не в языке как таковом, а в том, что его изучают в среде TP7, работа в которой, по нынешним временам, это боль и страдание.
Тем не менее огромное количество школ уже давно сидять на http://pascalabc.net/ и там всё лучше.
Какой TP7 ?
Уже давно есть Lazarus, PascalABC.
Разве что в школе оборудование старое и не тянет, но вроде с этим уже нет проблем.
Это в какой стране "изучают в среде TP7" ? У Вас есть статистика или это как у М. Жванецкого "Я тоже видел у одного японский транзистор!" ?
а зачем тратить время на изучение мёртвого языка?
почему тогда не Лисп? ну или Smalltalk -- хотя бы ООП понимать будут
для обучения важно получать обратную связь как можно раньше, и видеть практически-значимый результат: JS/HTML, Python(+pyGame?),
для тех кто хочет вгрызаться и ИТ можно взять embedded + Rust (для приучения к аккуратной работе с памятью и типами).
Где-то выше говорилось о проблеме - отсутсвие стандартной библиотеки с решением всяких стандартных вещей. Условно - мне понадобилась хеш-таблица - пора ее искать (если компилятор конечно поддерживает включение сторонних библиотек). (Это утверждение рассматривать со стороны олимпиадников).
С этой точки зрения, конечно, больше подходит С++, чем Си, но это тема отдельного разговора.
2) docwiki.embarcadero.com/Libraries/Sydney/en/System.Generics.Collections
...и куча госсофта, который пишут на отъ*сь и ради распила
Эм, я бы не сказал, что я с госсофтом очень много сталкивался, но из того, что сталкивался - там C# или Java. В особо клинических случаях сразу и то и другое (справочник избирательных участков из комплекта ПО для проведения выборов - там сам справочник на C#, но для парсинга XML использовалась Java, судя по тому, что я увидел в дистрибутиве).
Паскаль нужно изучать затем, что он простой и придуман именно для обучения. Но всегда вылезет какая-нибудь личинка и будет орать "Паскаль мёртв, дайте <что-нибудь новое и бесполезное для изучения основ>!"
для обучения есть Python и Rust:
Python не долбает мозг лишними для начального этапа вещами -- типами, выделением памяти,.. -- и максимально понятен со своим ООП + универсален: он уже стал базовым языков для неспециалистов для решения внутренних и прикладных задач
Rust вторым этапом -- он обеспечивает гарантированное битьё по рукам за всю ахинею, которую ты пишешь в Паскале, начиная от глобальных переменных, до модификации памяти из нескольких потоков, очень строгая система типов; главное свойство для обучения -- максимально жёсткая обратная связь по ошибкам в коде + максимально низкий уровень + отсутствие сборки мусора и упоротый контроль типов и работы с памятью
тех шизиков, которые начинают новые проекты на Паскале/Delphi -- считаю будущими клиентами, с которых можно стричь бабло за legacy raking
Python не долбает мозг лишними для начального этапа вещами — типами, выделением памяти,… — и максимально понятен со своим ООП + универсален: он уже стал базовым языков для неспециалистов для решения внутренних и прикладных задачОт того что Python не долбает мозг типами они никуда не пропадают, в дальнейшем отсутсвие этих знаний может сделать очень больно.
Rust вторым этапом — он обеспечивает гарантированное битьё по рукам за всю ахинею, которую ты пишешь в Паскале, начиная от глобальных переменных, до модификации памяти из нескольких потоков, очень строгая система типов; главное свойство для обучения — максимально жёсткая обратная связь по ошибкам в коде + максимально низкий уровень + отсутствие сборки мусора и упоротый контроль типов и работы с памятьюОх, страшно представить обучение Rust как первому языку, есть примеры?
тех шизиков, которые начинают новые проекты на Паскале/Delphi — считаю будущими клиентами, с которых можно стричь бабло за legacy rakingМмм… а вы кто?
Как реформа информатики, так сразу паскаль не нужен, а регистры с ассемблером нужны. Ну вы хоть ради разнообразия попробуйте набросать цели и компетенции, приводящие к этим целям.
Тут к этому у меня достаточно простое отношение - я выразил свое мнение, если формулировка "целей и компетенций" (по факту размазывание одного и того же по листу а4 - знаем, проходили) является единственной причиной почему мы не можем поменять программу, то видимо нам не нужны данные метрики.
Вот меня удивляет ровно одно - система бюрократии сама создала себе что-то, (или заимствовала), а потом люди которые предлагают идеи должны разбираться в этом. Тут простите - сами придумали, сами или объясните другим как это использовать или сами напишите. Будет странно если вы придете к врачу с проблемой, а он заставит вас план операции себе определять, не считаете так?
по факту размазывание одного и того же по листу а4
— Да что тут предлагать?.. А то пишут, пишут… Конгресс, немцы какие-то… Голова пухнет. Взять все, да и поделить…
Ради интереса, вы видели, как рабочие программы для преподавателей пишутся? Я вот видел очень много. И да, там именно "размазывание одного и того же по листу а4", еще и по 4-5 раз.
Тем более что рпд часто пишет тётя-методист 60 лет, которая в гробу видела что исторю России, что теорию графов, что эконометрику. Ну может не в гробу видела, но различие между ними представляет себе довольно смутно. А профессору неинтересно писать рпд (как и программисту документацию, всё же из кода понятно!).
Как показывает мое наблюдение, то необходимо не реформы информатики делать, а выровнять её с программой математики. Очень часто обращаются знакомые с просьбой помочь решить задачи по информатике в 5-6 классе, а там все решение основано на мат анализе, а это алгебра и это я про простую школу говорю. Ведь не просто раньше в старшей школе(в конце средней) появлялся предмет в программе.
Так, случайно отправил кусок, чтож, продолжу.
Многие люди вообще не понимают чем занимаются программисты (глубже "пишут программы") и почему они так нужны всем.
В задачи школы не входит производство программистов и не должно. Как бы вам сейчас не казалось, мир не состоит из программистов.
Поскольку я сдавал ЕГЭ, и ОГЭ по информатике, могу с уверенностью сказать - там проверяют все что угодно, кроме информатики, которая потом пригодится в ВУЗе.
Поскольку я сдавал ЕГЭ, и ОГЭ по информатике в 2003, 2005 и прорешивал в 2017 уже будучи специалистом, я очень приятно удивлён качеством нашего ЕГЭ по информатике. И задачки про двоичные представления и булеву логику и базы данных. Всё там нормально. Это опять же учебный инструмент, его задача развить ученика, а не быть использованным потом в реальной жизни.
Как это сделать? - все просто - выбрасываем задания в которых нужно делать большие вычисления в голове - Смысл данного экзамена проверить знания по информатике, а не проверить умеет ли ребенок считать (что в целом странно проверять у человека в 11 классе, не находите).
Нахожу. Большинство людей считать в уме и думать с длиной логическиех цепочек больше двух не умеет. И этот экзамен это проверяет.
Итого:
Учебные цели на то и учебные. ПРограмма меняется и развивается. Подобный радикализм ни к чему хорошему не приведёт, в просто в силу возраста и жизненного опыта взгляд ещё пока слишком узок. Закончить хочется цитатой:
If you’re not a liberal when you’re 25, you have no heart. If you’re not a conservative by the time you’re 35, you have no brain.
Ждём предложения выпилить матан, линейку и прочие дифуры из курса прикладной информатики, пусть этим математики занимаются, а я на реакте форму хочу верстать.
"Нахожу. Большинство людей считать в уме и думать с длиной логическиех цепочек больше двух не умеет. И этот экзамен это проверяет."- вы с неправильными людьми общаетесь - те, которые сдают информатику, обычно сдают и профильную математику, там этого достаточно, да и вообще "большенство людей - это сколько?", можно какую-то статью научную или что-то вроде такого?
Вся эта идея делает так, что ребенок получит хорошие знания связанные с информатикой, а не вот это вот все. До тех пор, пока мы рассказываем детям что такое поисковик (учитывая, что они им пользуются лет 5) - мы получаем только отторжение и ненависть. Проведите эксперимент и спросите у детей нравится ли им их школьная информатика.
Проведите эксперимент и спросите у детей нравится ли им их школьная информатика.
А что-нибудь другое в школе массово нравится? Я ещё и в университете слышал что матан не нужен, дайте мне php или питон с джангой.
хорошие знания связанные с информатикой,
устреют к моменту окончания школы. Рулят не конкретные знания а именно способность их добывать.
Зачем вы путаете Университет и школу - тут цели разные. Иногда и на некоторых специальностях матан реально не нужен. (Хотя лично мне было интересно прослушать ее курс, применения правда пока на стажировке не нашел) Но это не освобождает школьную информатику от того, что она предполагает преподавать что-то странное. Мы просто "окукливаем детей" давая им знания, которые они знают, и умения, которые было бы проще получить с помощью другого ЯП.
Я вчера открыл программу учебника, который мне выдавали в школе - там из программирования - сложите два числа в консоли (и еще пару заданий), ну это смешно - все дети, вместо того, чтобы семестр (2 Четверти Карл, 2 Четверти) переводить числа из разной системы счисления, лучше бы сели и написали несколько программ - от этого просто пользы будет больше.
Понимаете дети выросли из учебников раньше, чем стали по ним учиться, а мы сейчас сидим и серьезно обсуждаем, что все хорошо.
Всегда у детей было мнение, что они умнее поколения старше. Это пройдет.
Не стоит думать, что если вы с пеленок пользуетесь телефоном, то вы все умеете.
Если вам повезло до школьного курса информатики разобраться в офисных приложениях, научиться пользоваться всеми особенностями поисковиков и правильно фильтровать входящую информацию, то я очень за вас рад. Но школьная программа создана привести всех к единому знаменателю, а не сделать всех гениями. Это не возможно.
Если я с пеленок пользуюсь телефоном, то я знаю что такое Яндекс, вы просто вдумайтесь в это. Возможно с поиском информации мне помогает кто-то из родителей - типо хочу такой-то мультик или что-то такое, но все равно я вижу то, как он это делает.
Давайте еще детей в школе дышать учить, ведь это всего-то рефлекс. Просто почитайте школьную программу - это будет вместо тысячи сообщений. (Так как насколько я понимаю из вашего комментария - релевантного 2021 году опыта у вас нет)
Если я с пеленок пользуюсь телефоном, то я знаю что такое Яндекс
Нет, вы даже сейчас понятия не имеете что такое Яндекс. Вы не представляете как сделать такой поиск, что под ним лежит, какие там существуют проблемы. Вы не сможете сделать ничего подобного, даже на одну тысячную. И опять же, правильно дышать при беге и контролить пульс вполне бы стоило учить в школе. Это очень положительно сказывается на здоровье.
Им не рассказывают в школе про то, как работает поисковик и про сложности его реализации. Их тупо пытаются учить тому, что они умеют лучше, чем учитель!
Мой релевантный опыт строится на наличии детей. Я вижу чему их учат в 21 году и как они к этому относятся. Безусловно у меня есть вопросы к программе, но к детям у меня вопросов значительно больше.
А еще у меня есть опыт набор на работу студентов. Самомнение зашкаливает, а база болтается в районе плинтуса. И на это у них есть ответ. Когда в школе рассказывали было не интересно и не понимали зачем. Потом наступила реальная работа и внезапно знания стали нужны )
> Но школьная программа создана привести всех к единому знаменателю, а не сделать всех гениями. Это не возможно.
Вот вы очень хорошо облекли в слова то, чем, видимо, руководствуются чиновники из министерства. И грузчик, и программист должны знать и уметь ровно столько же! В том числе и по информатике. А поскольку, как вы правильно заметили, сделать всех гениями нельзя, то это «столько же» исчисляется величиной в районе нуля. Однако ж результат такой стратегии вам отчего-то не нравится.
Вопросы к школе есть, но не в рамках "отменить паскаль".
Вы ещё скажите, что в школе учат их добывать. Не знаю как у вас, а я учился в пяти школах, и всё это обучение сводилось к фразе. Всё остальное было направлено скорее на то, чтобы отучить учиться.возможно, вам не повезло (возможно даже, что повезло мне). по разговорам с сокурсниками — у них у всех ситуация была противоположная: школа как минимум заинтересовывала, учила по-мелочи (докладик-рефератик-демонстрация опытов-интеллектуальные игры-олимпиады). Хотя не всех — многим вполне хватало спортивных игр. Да, это были еще советские времена… Хотя и сейчас, когда учителя возмущаются «образованием как услугой» (сын окончил школу в 2017) — часть учителей тоже/еще пытается…
У нас в школе Учитель географии говорила, что "вот вы с девушкой пойдете в кафе, о чем с ней будете там разговаривать?)".
Основная проблема школы - то, что там прям совсем разные люди, у которых разные интересны - одноклассников (почти всегда) не объединяет ничего кроме "ну мы в одном классе".
Тут конечно вопрос, что делать, если ребенок не хочет добираться в каком-то предмете на "средний уровень" и как быть в этом случае. Если опираться на это, то да - информатику (впиши любой предмет) менять не нужно, там все и так круто. Возможно мне стоило отразить это в статье, но я уже не буду ее перекраивать.
У нас в школе Учитель географии говорила, что "вот вы с девушкой пойдете в кафе, о чем с ней будете там разговаривать?)".
Да, от т.н. гуманитариев (особенно историков) такое можно услышать почти от каждого первого. Справедливости ради, нечто подобное ("вот подойдет к вам в троллейбусе человек, и спросит ка квзять интеграл по контуру - что вы ему ответите?") я слышал от математика, но ему было уже в районе 80 лет...
Основная проблема школы - то, что там прям совсем разные люди, у которых разные интересны - одноклассников (почти всегда) не объединяет ничего кроме "ну мы в одном классе".
отдногруппников в садике ничего не объединеяет кроме "ну мы в одной группе". Сокурсников тоже объединяет не так много (однипришли учиться, другие просо за дипломом, например). Из тех, кто пришел учиться - будут интересующиеся разными отраслями, разными стеками, разными технологиями. После ВУЗа вы попадете в коллектив, где у людей тоже будут разные интересы. Ваши интересы наверняка отличаются от интересов родителей, а интересы ваших детей будут отличаться от ваших.. и "не будет объединять ничего кроме"...
Тут конечно вопрос, что делать, если ребенок не хочет добираться в каком-то предмете на "средний уровень" и как быть в этом случае.
Это основной вопрос и есть - как сделать большинство максимально образованным, дав возможность талантам расти выше, не ограничивая их... Но на мой взгляд, проблема достаточно надумана: кому интересно (вот прям реально интересно) - тот посмотрит ютюбчик, почитает интернетик. Для идеальности картины - он должен спросить "что почитать" у учителя, а тот должен ему ответить. Но этой идеальности не было в силу неидеальности людей и опять же ограниченности ресурсов.
Ваши бы слова — да нашему государству в уши. Только есть разница между «вот „мёртвые души“ — клёвая книжка, там про то-то, кому интересно почитайте, а потом обсудим» и «вот тебе мёртвые души, к следующему уроку будь добёр прочитать и накатать рецензию не хуже белинского, в противном случае ты говно». Конечно, в первом случае далеко не все прочитают и не все пойдут в филологи, вот только во втором случае результат куда более печальный — люди тратят своё время на заведомо бесполезный труд (ну или переписывают всё из решебника, что ещё менее полезно) и заодно получают отвращение к литературе, а в филологи всё равно не идут. Не говоря уже об том, что филологов много и не надо.
> Научить всему всех в рамках школьного курса невозможно. Хотя бы потому, что в классах есть и потенциальные грузчики, и потенциальные программисты.
Вот и я об том же. А вот предыдущий оратор, видимо, имеет другое мнение.
> Поэтому «в среднем» чуть лучше вместо вытягивания «верхней половины» школе приложить усилия для дотягивания совсем уж «плохих» до среднего уровня.
Вот этот переход как-то не вполне ясен. По-моему как раз из этого следует, что надо давать каждому те знания, к усвоению которых у него есть способность и желание.
> Ибо в результате получим двух не совсем уж тупых грузчиков, и «интеллектуала»
Вот уж не уверен. Ежели не насиловать «грузчиков» тем, что им не интересно, быть может, из них и не грузчики получатся, а, скажем, спортсмен и столяр-краснодеревщик. А юного математика можно в сэкономленное время обучить чему-либо, что обычно в вузе проходят.
> возможно, вам не повезло (возможно даже, что повезло мне)
Похоже, что это вам повезло. Всё, чем я заинтересовался, я заинтересовался ещё до школы из научно-популярных книжек. А затем все эти интересы только последовательно отбивали (в том числе и родители, ещё недавно подсовывавшие мне означенные книжки). Что-то похожее на человеческое отношение было только в последней школе (в неё ажно конкурс был). Только было уже поздно.
только есть разница между «вот „мёртвые души“ — клёвая книжка, там про то-то, кому интересно почитайте, а потом обсудим» и «вот тебе мёртвые души, к следующему уроку будь добёр прочитать и накатать рецензию не хуже белинского
увы, со школьниками так не работает. И хотя я преисполнен ненависти к "русской классической литературе", но скорее из-за учителя, нежели из-за подхода. Ибо если не заставить школьников -то 95% что моих сверстников(1985 выпуска), что сверстников моей младшей сестры(2002), что сверстников сына (2017) не притронулось бы к 95% школьной программы... На младших детях еще работает "игровое обучение". на младшем школьном оно заканчивается. Плюс, как у ТС, начинается юношеский максимализм. и он вполне может выразиться как "нафига читать в век ютуба". Ну и это приводит как к забавным фактам (еще в 1985 было "Наташа Ростова танцевала на балу со Штирлицем"), так и к не очень забавным ("Тема сочинения: Драма Астровсково Граза").
По-моему как раз из этого следует, что надо давать каждому те знания, к усвоению которых у него есть способность и желание.
Если не давать - даже насильно - часть этих знаний всем подряд - большинство (даже вполне способное) просто не узнает, что таковые знания существуют.
насиловать «грузчиков» тем, что им не интересно, быть может, из них и не грузчики получатся, а, скажем, спортсмен и столяр-краснодеревщик.
Не получатся. Ибо тогда надо иметь профессиональных спортсменов по всем видам спорта, и столяров-плотников во всем их многообразии. Увы, но ресурсов - ограниченное количество. Опять же, нас на физре вполне учили бегать-прыгать (в длину, высоту, через козла), волейбол-баскетбол-лыжи-плаванье. Не ахти, но парочка попробовала себя в спорте. На трудах в 5-6 классах была работа с деревом (от табуреток до маркетри), в 7-8 - с металлом (напильники-токарка-фрезерка. хоть и болты, но собственноручные). И основы электромонтажа. И когда в 9-10 пришла пора УПЦ, многие относительно осознанно пошли на специальности слесаря-металообработчика, СМСР, ССРА... Хотя, насколько я знаю, никто за станком так и не стоял (хотя слесарями-сборщиками успели поработать). Т.е. если бы у нас были люди, склонные к краснодеревянью - они бы вполне могли попробовать (еще в 6 классе), осознать и стать в свободное от основной учебы время.
А юного математика можно в сэкономленное время обучить чему-либо, что обычно в вузе проходят.
Тоже не получится. Не хватит ресурсов. уже у учителя. Ну вот мне посоветовали книжку про комплексное исчисление, и то я кучу вопросов позадавал (потому, что полез в прикладную область, где его уже нужно знать, а я хотел все и сразу) и не на все я получил ответ.
Понимаете, жизнь сильно разрослась в стороны. Если раньше был "крестьянин-кузнец-торговец-военный", то с промышленной революцией появились рабочие, и сильно разные. появились ученые и тоже сильно разные. потом ученые как-то разделились на прикладных (инженеров) и фундаментальных. потом... собственно, луче Азимова (Вид с высоты) я не скажу.
Хотя, может, и попытаюсь на примере ИТ - когда мы стали студентами - фактически, общедоступные компьютеры только появились. Ну и мы, как почти первопроходимцы, могли не только спаять себе компьютер (Микро-80, РК-86, синклер), но представляли как он работает (некотрые и свои пытались придумать. собственно, на многих заводах сделали свои уникальные реплики с единственным интерпретатором бэйсика, которые без программ тихо ушли в тину истории). Могли не только "собрать по схеме", но и починить/заменить недостающее на аналоги. Могли реассемблировать операционку, интерпретатор бейсика или шахматы, и адаптировать, перенести или улучшить. Ибо cp/m хотела для себя и программ всего-то 16 к. интерпретатор бейсика - 6К... ну и все эти языки - си, бейсик, паскаль, фортран - это всё, что было... Т.е. одному человеку это вполне можно было знать всё. Сейчас только конфигурационые файлы занимают мегабайты, а числами "кило..." уже исчисляется число параметров... сложность растет. И уже никто не делает это всё целиком от начала до конца. Даже команды не делают все целиком. И в этот момент появляется ТС и говорит, что если во всем этом дереве знаний где-то заменить паскаль на си - все волшебным образом изменится и улучшится...Впрочем, не так давно (с 88 почти поголовно до 1995-1998 примерно учили на бэйсике. и ершоле) заменили бэйсик на паскаль. что, полегчало?
все эти причитания "в первом семестре мне было проще, так как мне не нужно было переучивать себя на другой синтаксис" - чушь. Ну, пришлось бы переучиваться во втором семестре. Или в третьем. И еще не раз придется. И, если ТС свяжет себя с ИТ - может,и не один десяток раз...
эх, раздухарился, извините, кого задел...
возможно, вам не повезло (возможно даже, что повезло мне). по разговорам с сокурсниками — у них у всех ситуация была противоположная: школа как минимум заинтересовывала, учила по-мелочи (докладик-рефератик-демонстрация опытов-интеллектуальные игры-олимпиады). Хотя не всех — многим вполне хватало спортивных игр. Да, это были еще советские времена…
Вам не просто "повезло", а повезло невероятно, если школа у вас заинтересовывала.
У меня вот крайне хорошая (для регионов) школа в городе с большим количеством инженеров с оборонки и физ-мат класс — при всей своей почти что "элитности" нифига не заинтересовывали, просто показали путь в жизнь (школа -> физтех -> там-то из вас людей сделают, в крайнем случае забугор свалите). Ровно один.
Что-то не нравится? Ну, сам копай. Единственный человек, которого реально волновали вопросы "учитесь учиться" и "думайте своей головой" был историк старших классов. Один на всех прочих учителей.
Вот вы очень хорошо облекли в слова то, чем, видимо, руководствуются чиновники из министерства. И грузчик, и программист должны знать и уметь ровно столько же! В том числе и по информатике.
По-моему, справедливо. Школа - это не специалитет, и школу заканчивают и будущие дворники с грузчиками, и синхронисты-переводчики, и программисты. И давать в школе коллоидную химию, гистологию, технологию конструкционных материалов, и прочие циклы Карно, думается, столь же избыточно, как и навыки программирования в современных средах разработки - те, кому это нужно, изучат в рамках профильного образования, а те, кому это не нужно,.. ну, потратят несколько часов впустую.
Тут просто понимаете - людям, которые не свяжут свою жизнь с программированием - в целом нет разницы что учить, для них чисто слова отличаются, а вот людям, которые хотят заниматься углубленно - можно сразу дать современный язык, на котором они (скорее всего) и будут заниматься дополнительно. Таким образом можно просто сжать время на "затуп" при переходе с одного ЯП на другой и помочь вторым пропустить задачи начального уровня, так как они уже были решены в школе.
Хочется ответа адекватного, а не «на форумах прочитал что бегин енд уже не модно».
Си я считаю более современным, так как он используется в разработке (хоть и его использование снижается), тут на самом деле можно и С++ поставить, если честно - я тут скорее всего переборщил с Си.
Так же есть строгая типизация, но добавляется дополнительная гибкость на уровне алгоритмов (см пункт про "чем мне не нравится Pascal")
А что мешает заниматься на Pascal дополнительно
Я подразумеваю дополнительно - это какие-то курсы выше школьной программы, тут найти хороший курс по условным "алгоритмам и структурам данных" или 3d игровой движок (например для курсов по играм) уже сложнее (если не невозможно).
Чем мне не нравится Паскаль?
Мне не нравится синтаксис и всякие фишки на уровне "давайте инициализировать переменные до begin". Это просто ограничение, смысла в котором я не вижу.
Так же мне не нравится его "школьность" - условно после написания проекта - будет странно показывать его при устройстве на работу (иногда даже при поступлении, но зависит от ВУЗа). Т.е. я хочу чтобы люди, которые пошли потом на программирование, уже сразу владели каким-то языком - это позволит в условном ВУЗе чувствовать себя увереннее в первые дни и, что самое главное, получить больше знаний в курсе, так как мы пропустим "распаковку" студента
Но я решил исправиться - думаю к завтра/послезавтра напишу статью про сравнение этих языков при решении школьных задач (благо у меня остались знакомые, которые еще не закончили школу) - я не программировал на Pascal, так что могу предположить, что я просто не понял его "фишку" и хочу честно "прочувствовать" и "распробовать" данный язык.
Так же мне не нравится его "школьность" - условно после написания проекта - будет странно показывать его при устройстве на работу
Могу возразить - у нас вполне успешно используются мобильные приложения, написанные в RAD Studio на Delphi, являющемся прямым потомком "школьного Паскаля", так что обсуждаемые школьные навыки могут быть вполне полезны. Плюс встречались мне, ещё пару лет назад, компьютерные классы, оборудование которых не способно тянуть RAD Studio. Да, таких классов становится всё меньше, но они пока составляют значительную часть, а школьная программа обязана быть воспроизводимой в каждой школе. Безусловно, где матбаза позволяет, можно организовать факультативы по более современным средам разработки и языкам программирования, но именно факультативы - для тех, кто потенциально планирует связать с этим дальнейшую жизнь, но вываливать тонны библиотек и фрэймворков на человека, который ну совсем не планирует это использовать - явно избыточно.
Что ж, вот Вам современный паскаль, пробуйте фишку.
## (1..1000).Where(A -> (1..5000)
.All(x -> (x and 30 <> 4) or ((x and 35 = 1) <=
(x and A = 0)))).Last.Print
Это решение пробника для ЕГЭ-2021. В одну строку.
Вот условие задачи: Определите наибольшее натуральное число A, при котором выражение
( x & 30 ≠ 4) ∨ ((x & 35 = 1) → (x & A = 0))
тождественно истинно (то есть принимает значение 1 при любом натуральном значении переменной x)?
Вау, на паскале можно в python-style :D А perl-style тоже завели? ;)
Вынужден Вас разочаровать. Во-первых, точечная нотация (в C# она называется fluent-interface) пришла из Unix-конвейеров и ООП. Во-вторых, лямбды пришли из функционального программирования, которому ого-го сколько лет. Так что это взято вовсе не из Питона. А что Вы называете "cтилем Perl" ? Фигурные скобки нельзя, потому что когда-то решили, что в Паскале они обрамляют комментарии. Четыре пробела отступать? Ну так пробелы в Паскале вне строковых литералов незначимы, пишите где и сколько хотите.
Так ваш код проверяет, что условие тождественно истинно не для любого натурального x
, а для любого натурального в диапазоне от 1 до 5000
Верно. И этого в данном случае с лихвой достаточно для переборного решения. Многократно подтверждено репетиторами ЕГЭ. Можно вместо 5 000 написать 5 000 0000 - это ничего не меняет, а поскольку Паскаль - не Питон, то и для 5 млн. результат 58 будет получен примерно за 1с.
Где-то вдалеке плачет один Дедфуд
Кто-то (видимо, питонщик) не выдержал и минусанул. Это если за то, что на питоне 5 млн будет крутиться долго - это любезному Ван Россуму минусуйте. Если за то, что переборное решение - это Константину Полякову (он и на питоне, тем не менее перебирает) и всем-всем репетиторам по информатике. Если от того, что на современном Паскале так просто решается задание - ну это человек минусанул свою зависть))
Не путайте школу и институт. В школе знания именно общие и усреднённые. А хочешь стать программистом - или учиться дальше и в желаемом направлении
Вы ещё скажите, что в школе учат их добывать. Не знаю как у вас, а я учился в пяти школах, и всё это обучение сводилось к фразе «учись учиться
в общем и целом, мысль здравая - для "письма и грамоты", особо для челобитных в думу али мытарям, компании нанимают особых писарей, называемых секретарями. Которые оформляют письма, и не только - еще результаты совещаний (порой уточняя и оттачивая формулировки, чтоб каждому дураку было понятно однозначно) и т.п. И,кстати, хороший секретарь - нечасто встречается. Не "секретутка для полового обслуживания", а именно секретарь.
Грамота и от бухгалтера требуется, но не до красоты сложносочиненных предложений. И математика требуется - но на уровне арифметики. И если сейчас (ну, лет 5 минимум) современные версии 1с считают себестоимость с помощью СЛАУ - это совершенно не означает, что бух должен знать "линейку". Зато это должен знать программист (который, в общем, не обязан знать ставки налогов. Или формы отчетности, которые нужно считать и сдавать) Это и называется разделением труда. А еще программист (и бух) не обязан знать, как соединить компьютеры в сеть. Этим занимаются админы. а еще он не должен знать как электричество приходит в розетку. А вот бух должен знать, от кого приходит это электричество, и сколько это стоит (ибо если электричество придет от поставщика, не имеющего соотв. прав, или сильно дороже норматива - его не возьмут в затраты, и компания попадет на штрафы. а могут квалифицировать и серьезнее..)
Да, и если бухгалтер начнет программировать, то иногда получается алгоритм O(n^3) и весьма часто для их задач (ищем перебираем документы, ищем соотвествующий текущему по неким критериям документ, делаем некоторые действия) - O(n^2). А экс-бухгалтер искренне не понимает - он же лично проверял, один день считался 2 минуты, в месяце примерно 30 дней, 2*30=60, значит месяц больше часа считаться не должен.... Забавно, когда он пытается найти ошибку - он пересчитывает все дни помесячно - каждый день считается 2 минуты. запускает за месяц - ступор. считает по дням, пишет результаты в эксель - отдает заказчику... заказчик проверяет - по дням результаты сходятся, за месяц - не дождался.... "вам сервер новый нужен".
Вы мне сейчас возразите, мол, если он и научится — то плохо, посредственно.
Да, это верно! Но что если он не научится? Что тогда?
А тогда программировать за него будет штатный программист. Тот самый человек, который подключает принтеры, оплачивает домены, ставит тексты на веб-сайте, прокладывает оптический кабель, привозит мониторы из магазина, перепаивает конденсаторы на материнских платах, фотографирует, монтирует видеозаписи, оцифровывает кассеты, снимает бекапы по кабинетам, распечатывает на широких листах, запускает антивирусы, ищет регистрационные номера для программ, чистит почтовые ящики при переполнении, настраивает Oracle, подключает пользователей к файловому серверу, разделяет подсети ЛВС, устанавливает датчики температуры…
А теперь, кроме того, он ещё и будет программировать за бухгалтера.
И всё-таки, будет ли это лучше, если штатный программист будет программировать за бухгалтера?
штатный программист. Тот самый человек, который подключает принтеры, оплачивает домены, ставит тексты на веб-сайте, прокладывает оптический кабель, привозит мониторы из магазина, перепаивает конденсаторы на материнских платах, фотографирует, монтирует видеозаписи, оцифровывает кассеты, снимает бекапы по кабинетам, распечатывает на широких листах, запускает антивирусы, ищет регистрационные номера для программ, чистит почтовые ящики при переполнении, настраивает Oracle, подключает пользователей к файловому серверу, разделяет подсети ЛВС, устанавливает датчики температуры
Вы идиот. Это не вопрос, это утверждение. Не оскорбление ни в коем случае, а всего лишь констстация факта.
Правда, нечто подобное (правда, в меньших масштабах, ввиду отсутствия веб-сайтов, нераспространенности оракла, и единых подсетках в компании) делали "компьютерщики" в конце 90-х. Но с тех пор идиоты в бизнесе вымерли (просто потому, что программист, и даже сисадмин - стоят гораздо дороже эникейщика, а вменяемый бизнес умеет считать), и остались, судя по всему, только в отдельных заповедных местах ярославля (потому, что знаком с некоторыми ярославскими программистами, которым такое в голову даже в коронавирусном бреду не придет...). Видимо, вы тоже из тех, кто "не осилил арифметику, и поэтому считае себя гуманитарием"...
Одно только не понимаю. Почему вы делаете вывод не о теме нашего обсуждения, а обо мне?
поэтому нанимают обычных людей, чтобы не платить «гораздо дороже».
Программист не является необычным человеком. Просто он человек, который занимается программированием. Если человек занимается погрузочно-разгрузочными работами, то он грузчик. Ели он занимается доставкой из магазинов - он курьер.
Одно только не понимаю. Почему вы делаете вывод не о теме нашего обсуждения, а обо мне?
видимо, потому, что мы обсуждаем программистов и программирование. Обучение программированию. Но не работу мальчика на побегушках (в абстрактной идиотской конторе, где программисты грузят, бухгалтера программируют. Директор, видимо, развозит там товар, курьер ведет бухучет, а грузчик принимает управленческие решения.). И мальчику на побегушках совершенно безразлично, что ему давали на информатике - ни паскаль, ни питон не помогут ему ни грузить лучше, ни помешают этому.
Отчасти повторюсь: по моему глубокому убеждению, школа - это не специалитет, и школу заканчивают и будущие дворники с грузчиками, и синхронисты-переводчики, и программисты. И давать в школе коллоидную химию, гистологию, технологию конструкционных материалов, и прочие циклы Карно, думается, столь же избыточно, как и навыки программирования в современных средах разработки - те, кому это нужно, изучат в рамках профильного образования, а те, кому это не нужно,.. ну, потратят несколько часов впустую.
Черчение, вон, выкинули из программы, астрономию, вроде бы, тоже. У меня эти предметы были. Черчение пригодилось, а астрономия - в необходимом "по жизни" объёме она вполне в природоведение укладывается. Ещё нам на "трудах" давали выжимки из металловедения и технологии конструкционных материалов - мне эти знания пригодились, кому-то - нет, но не считаю их совсем уж бессмысленными.
По-моему, на "основах информатики и вычислительной техники" (именно так этот предмет назывался в мои школьные годы) надо больше делать упор на вопросы компьютерной безопасности (фрод, скам, цифровая гигиена) и прикладных навыков, необходимых "всем и каждому" (да, те самые Libre Office Calc, Writer, Impress, на худой конец, Google Docs; полезным считаю давать навыки по конвертации и минимальной обработке графических файлов)... и самое забавное - во время моей учёбы примерно эта информация и давалась (с поправкой на отсутствие интернета), а вот уже после "этого всего" было примерно четыре четверти, посвящённых алгоритмам и программированию.
"Плюсовать" не могу, поэтому — "+100500"! :)
В том числе и с учётом опыта преподавания информатики в десятом классе.
Вот качество учебников — тех, что я видел 16 лет тому назад, во всяком случае — я бы хотел видеть заметно лучшим. Благо, что для десятого класса тогда на выбор было то ли три, то ли даже четыре учебника. Я все их прочитал и... учил по-своему... ;) :))
ЕГЭ с этого года сдается на ПК. На этом ПК можно пользоваться всеми установленными программами для решения задач. Сильно больше половины этих задач можно решать написанием программы.
Вы в каком году сдавали экзамен?
Нет времени объяснять, но это .......... убрать, а это ......... вставить (нужное по усмотрению внести).
Очень много экспертов в образовании, которые знают как правильно реформировать отрасль. Но в то же время острый дефицит экспертов в области электроэнергетики.
Почему так? Потому что если в результате реформы на электростанции что-то жахнет (а оно жахнет!), то отвечать за это придется головой. Поэтому там действительно разбираться надо.
А если в образовании что то станет хуже, то ну подумаешь, большое дело.
Да, в образовании определенно станет хуже, если мы сократим количество (устаревшей) теории и дадим практические навыки. Да они не станут программистами, но просто поймут. Переведу в формат энергетиков - давайте им вернем курс про лошадей, ведь раньше для получения энергии использовали лошадей (условный пример).
Вы считаете практический навык превалирует над фундаментальным? За годы работы в ИТ я понял, что ЯП это всего лишь инструмент, а вот база ± одинакова. Отсюда вывод. Мы хотим сформировать полноценную личность с широким кругозором, которая способна сделать осознанный выбор или зашоренного подростка, который не знает о существовании простейших алгоритмов?
Я как бы и с вами, и с автором одного поколения. Но я среди своих знакомых и знакомых моих знакомых такого не замечал. Может быть, это связано со страной (живу в Германии, но есть знакомые и в России), высоким качеством знаний, полученных в школе (как практических, так и теоретических) и спецификой сферы деятельности (критические системы т/с), но теория все равно для всех стоит выше практики.
Да, я предлагаю отказаться от устаревшей теории и похерить устаревшую теорию. Мы же сейчас не проходим на серьезных щах то, что земля плоская? Так давайте и не будем проходить устаревшие вещи в информатике.
Просто понимаете - прах к праху, а не в головы школьников. Это как если мы начнем преподавать в университетах программирования для компьютеров времен 50 годов на перфокартах и тд - смысла 0. Но зато будут люди, которые будут говорить "если отменим - все похерим".
Система памяти никак не изменилась... Только объем. Как и протоколы передачи данных на базовом уровне не изменились. Или давайте сразу рассказывать детям про Ethernet 802,1QD и TSN. И пофиг, что из обычной школы только процентов 10 из выпуска пойдут учиться на программистов
Практика вам ничего не даст, если вы не понимаете базы. Учить питон, в котором можно сложить людей с инопланетянами, ввод это всегда строка, которую надо переводить в другой тип, без понимания в чем вообще эти типы различаются, как они устроены в памяти (даже в простом варианте объяснения).
С тем же форматом энергетиков. Они в школе так же проходят базовую термодинамику и базовую механику. У меня в силу направления так же в университете базовая термодинамика есть. А у энергетиков еще два курса по термодинамике будет. Но у всех была базовая в школе. Без нее не уедешь никуда.
Информатика в школе это не устройство компьютера, а база, простое объяснение, что есть память, есть типы с разным количеством байт в памяти, есть структуры с аттрибутами, есть простые алгоритмы сортировки O(n^2), есть графы, есть передача данных. Теория не устарела. На старые технологии насадили новые, но новые основаны на старых. Старые проще чем новые, их проще объяснить, их проще понять. Так зачем их убирать, если через них проще объяснить принцип информационных технологий?
Представьте себе, но информатика != программирование. Более того, если я правильно помню, то этот предмет вообще правильно называется "информационные технологии", что правильно. Ну или назывался так раньше. На этом уроке, после булевой алгебры, общего устройства ПЭВМ и проч., не учат программировать, а учат использовать (именно использовать) различное ПО, куда входит навык использования компилятора.
В качестве обучения программированию Паскаль - прекрасный выбор. Питон хорош кучей библиотек для различных прикладных целей, С/С++ хороши, чтобы писать что-то сложное и производительное, но это всё школьнику не надо! Задача научиться, пользоваться инструментом, а не создать какой-то законченный продукт, ну и, параллельно, развить собственный инструмент - мозг - в сторону алгоритмического и логического мышления.
Более того, программировать вас и в ВУЗе учить не должны, так-то. В ВУЗе вас должны научить разрабатывать программы, для чего, собственно, компьютер не очень-то и нужен, достаточно листочка с ручкой (на самом деле тонны листочков). А стучать по клавишам, набирая всякие if-while-for, вас прекрасно научат и в ССУЗе. Хотя ладно, признаю, уровень обучения в ССУЗе отвратителен, поэтому эту обязанность требуют от ВУЗов, хотя в теории всё должно быть несколько иначе...
Во времена когда я учился в школе, у нас стоял класс Корветов 8010/8020. На нём мы изучали бейсик и основы программирования. В те времена ещё справедливо было равенство. 1024 Байт = 1 КилоБайт. Сейчас даже эта аксиома уже изменилась.
В 95м я закончил школу и поступил в университет. Во времена обучения в университете появился ООП и паскаль.
Наверное лучше было бы в то время изучать c# и Unity3D, на чём я теперь работаю. Но боюсь 8088 компы не потянули бы такой набор. Даже хорошие практики сильно изменились.
Автору двойка за легкомыслие. На примере того же юнити могу смело заявить - технологии устаревают задолго до того, как стать стабильными и надёжными. Флешки и те уже отходят как носители, хотя появились кажется совсем недавно.
Да и 95% учащихся не изберут своей профессией IT, а пойдут в иные сферы деятельности.
За сим, изучение нужно начинать с простых и доступных для неиспорченного мышления приёмов, демонстрирующих общие принципы.
Ну так вы же не остались на Бейсике и Паскале? - Вы ушли дальше, а школа почему-то осталась на Паскале - причем Бейсик почему-то медленно умер, а Паскаль прям идеально подошел для системы образования. Единственное что меня успокаивает - все больше учителей переходят на Python/С++, так что "не пытайтесь победить нормальные языки программирования прогресс"
Понимаете, я вот недавно сделал огромный проект на Typescript под webGL 4 года делал. Так вот, во время обучения меня в школе ничего этого не существовало, совсем. Ни тайпскрипта, ни быстрых интерпретаторов JS ни того шейдерного пайплайна которым я всё рисовал ни WebGL ни алгоритма сжатия Brotli которым у меня пожаты данные. Ничего этого просто не было в природе. Да в тот момент только вкладки появлялись в браузерах и интернет модемный был. Ровно также как сейчас мы наблюдаем рождение такого языка как Rust и его концепций. Почему бы кстати не изучить в школе Rust, с Эрлангом и Хаскелем до кучи? И через 10 лет будут другие технологии, такие каких сейчас нет. И есть только один шанс подготовить сейчашних учеников к ним: учить базе, учить самому найти информацию. Потому что учебные языки программирования это игрушки. Игрушки ровно на столько же насколько детский молоточек пластиковый и цветной а не кувалда с завода. На столько же насколько детский велосипед не является карбоновым шоссейным снарядом. А игрушки это инструмент, инструмент обучения, и он заточен чтобы обучать концепциям, а не чтобы потом игрушечным молотком гвозди забивать.
Давайте учить детей сначала ходить на руках - так они получат важный и полезный опыт, и только затем переучивать на ноги. Вот это вы сейчас предлагаете?
Ну ващет дети именно так и учатся, на четвереньках, с помощью рук, потому что ни мозг ни нервная система ни мышцы не развиты достаточно. Потом дети учатся вставать держась за опору, ходят в ходунках. И только потом учатся нормально ходить, потом бегать и прыгать. Вы предлагаете сразу мледенцев ставить на ноги?
А по существу я ответил на ваш вопрос тут: https://habr.com/ru/post/569362/#comment_23298484
Мой посыл в том, что детям в школе не нужен ООП, SOLID, управление памятью / прочее. Скажите, чем бейсик / паскаль уступает c++ / python / PHP в плане первого знакомства с переменными или даже функциями? По мне, так главное чтобы интересно было.
Надо использовать язык, который не позволяет легко делать ошибки. Pascal на этапе компилятора отловит довольно много вещей, которые тот же питонист/пэхапер напишет и не отловит до момента выполнения.
проблема в том что придумать интересные задачи для программирования на паскале в разы сложнее. считать чтото что выводится в консоль скучно. Если яваскриптом данные из формочки в таблицу перекладывать это уже интереснее. Если на питоне мжно написать какой-то простой алгоритм управления персонажем это ваще зашибись.
Это покажет, что процессор это не магия для избранных, хоть низкоуровневое программирование это и сложно.
Переход с одного языка на другой ничего не покажет. Нужно объяснить принципиальную электросхему процессора и памяти.
принципиальная электросхема процесора и памяти ничего не покажет. Нужно обьяснить квантовые эффекты
Я долго про это думал - возможно стоит просто сказать, что существуют регистры, с которыми оперирует процессор, а дальше про то, что к каждому типу памяти доступ будет все медленнее (регистры, кэш, ОЗУ и ПЗУ). Возможно в целом объяснить, что сложить два числа - это не просто "число по адресу 1 + число по адресу 2" (в максимально прямом смысле), и то, что тут используются регистры и все такое.
Я так же не уверен, что это хорошая идея вообще ничего не говорить про компилятор и то, как он работает - вопрос только насколько поверхностно идти и насколько в этом будет смысл, как говориться.
Паскаль прекрасный язык для . По крайней мере тот Паскаль, который я изучал 25 лет назад. 1. Строго типизированный, т.е. нельзя объявить переменную как целочисленную, в одном месте положить в неё вещественное значение, в другом вообще строку.
2. Синтаксис у него пусть и многословный, но в отличии от C/C++ читается однозначно. Я как сейчас помню что можно объявить указатель на функцию, которая в качестве параметров принимают указатели на фунции и возвращают указатели на функции. Это можно записать в одну строку, но я не уверен, что каждый человек с многолетним опытом кодинга на C/C++ сможет такую запись понять.
3. Помнится Паскаль, пишешь программу, компилируешь, запускаешь, всё. На C нужно было знать какие то модели памяти, понимать что там как компилируется и зачем нужно это скомпилированное потом собирать. И как вообще сделать "модуль". Как сейчас помню, я 11-классник спрашиваю друга оканчивающего 1-й курс, мол, а как в C сделать модуль. Он отвечает без затей: просто "h-файл". Ладно, сейчас мне 41, я 27 лет что-то как-то программирую, при писать на C/C+ разберусь. Но зачем эта ерунда школьнику, который либо книжку почитает, либо до конца жизни будет только "вордом и экселем" пользоваться? А если это не давать, то зачем C/C+?
У автора формируются новые нейронные связи ) Происходит переоценка прошедшего опыта. Это нормально.
Что касается сути статьи. В преподавании информатики ничего менять не надо. Необходимо заложить понимание об информатике(неплохое определение в вики есть.) и с этим школьный курс справляется в целом.
Проблема в том, что до сих пор есть школы в которых информатика начинается с 7-9 класса, а это оч поздно. Как бы я не любил, в свое время, Фигурнова, но сейчас я могу сказать что это весьма не плохой учебник был )
Если вы считаете, что рассказывать детям, которые с +- 3-4 лет пользуются интеренетом, что такое поисковик - это нормально, то я умываю руки.
К счастью не все дети так испорчены. Старшая у меня познакомилась с телефоном и играми в 1м классе.
Максимализм в вашем возрасте это нормально. И да, я считаю, что рассказать что такое поиск и как он работает нужно. Безусловно рассказывать о факте наличия поисковика нет смысла.
У вас это пройдет. Через какое-о время вы научитесь решать задачи любыми инструментами, которые вам доступны здесь и сейчас, а не только современными. К сожалению в реальной жизни желание делать нечто новое пресекается различными требованиями (к примеру. существующая инфраструктура, требования ИБ, ФСБ, ФСТЭК, пром. безопасность и многое другое)
Если вы считаете, что рассказывать детям, которые с +- 3-4 лет пользуются интеренетом, что такое поисковик — это нормально, то я умываю руки.
Нужно рассказывать. Обязательно. А то потом маугли-самоучки в яндекс-браузере в строку поиска вбивают «google», в том что открылось — «mailru», а если что-то идет не так — жалуются что почта сломалась.
В целом, тема эта сложная и очень дискуссионная, но как студент третьего курса(не так и далеко от школы) могу сказать, что почти ничего не запомнил со школьной информатики. Конечно, мой личный опыт нельзя распространять на все учебные заведения, но я сменил несколько школ разного "уровня" в свое время. Да, в информатическом классе лицея программа у нас в какой-то момент началась университетская(то, что я на своей прикладной математике проходил в первом семестре на программировании), но даже оттуда остались немного смутные воспоминания. Как бывший школьник могу сказать, что часто школьная информатика выглядит непонятным каким-то предметом, чтобы покошмарить детей ещё пару часов в неделю. В основном, в моих классах интереса к ней не имел практически никто и даже отличники делали задания только для галочки. И сейчас оглядываясь назад я, наверное, понимаю, почему. Мне это все вспоминается каким-то жутким месивом. Уроки "программирования" на лазарусе или вижуал бейсике, что, как по мне, не дает о собственно программировании никаких толковых знаний(хотя в лицее были паскаль и плюсы, за что спасибо), перемешаны с чем-то отдаленно напоминающем книги типа "Компьютер для чайников/с нуля/..."(я такого в детстве успел начитаться) и какими-то обрывочными знаниями о том, как оно там все работает в этом вашем компьютере/кабеле/интернете. Можно ещё добавить три правила из булевой алгебры и два о системах исчисления. И вот вроде как знания и неплохие, но не выходит системы (даже по школьным меркам, я уж не говорю об университетах). Обидно, но по моим ощущениям такой предмет остается в головах школьников не лучше, чем какие-нибудь мистические "технологии". Ну тут следует упомянуть и учителей, ведь это тоже отдельная и, в моём случае, тоскливая история, ведь большая часть тех, что учили меня, не были в этой истории так уж заинтересованны. Например, я хорошо запомнил свой 11й класс, когда мы учили лазарус и на вопрос типа "А как тут строки складывать? я хочу, чтобы выводилось не "30", а "30 грн"." я вполне мог получить ответ вроде "оставь так". И мое любимое из всей школьной информатики - это, конечно, постижение красот MS Office. Это, могу сказать, просто песня. Песня, слов которой я не запомнил. Сколько мы не вгрызались(громко сказано, но я ведь уже говорил о заинтересованности школьников) в гранит бесконечных лабораторных по ворду или аксесу, толку в этом я в упор не замечал. Вот это самый яркий пример "Руководства по использованию кремниевого скакуна для чайников и прочей кухонной посуды". Нет, инструменты несомненно полезные и хорошие, но тоска и безнадега бесчисленных заданий, которые, как последние пожелтелые листья к зиме, улетят из голов безразличных школьников (между прочим, школьников, чьи офисные мышцы были залиты сталью десятков докладов и рефератов) сразу после окончания школы, и сейчас не выходит из памяти. Ну ладно ворд, это еще хоть как можно понять, ведь он очень нужен. Хотя это же и аргумент за то, почему уроки по нему не нужны, ведь все и сами разберутся к моменту появления этого на информатике. Но вот остальной набор мне вообще непонятен(особенно аксес, смысл существования которого я понял только на втором курсе университета, хотя в школе мы исправно выполняли задания). И подводя итог не могу не повториться, тема эта действительно сложная и решение найти не так просто. А вот увидеть, что дела плохо пахнут, как мне кажется, можно и даже нужно. Ведь самое тоскливое в этом, по-моему, как раз вот это тотальное безразличие школьников к этой сборной солянке, которое уж вряд ли может само перерасти в интерес к этим вашим компьютер саенс и прочим. Да, всё-таки хорошо бы с этим что-нибудь сделать.
что почти ничего не запомнил со школьной информатики
Это нормально. Понимаете, навыки и знания это разные вещи. Это можно метафорически сравнить с тренировкой в зале и работой грузчиком. И там и там человек поднимает грузы. Задача грузчика переносить груз, поднимать его на этажи. В задачи грузчика не входит его развитие. Грузчик переместил груз, вынес с работы деньги, и оставил часть здоровья. В задачи спортсмена входит развить себя, а не унести гантели в соседний зал. Итоговая работа над гантелями равна 0. Их взяли с полки и вернули на полку. Спортсмен вынес из спортзала своё тело, а снаряды оставил в зале, и вообще заплатил деньги за это мероприятие. Неэффективно качаться ящиком с картошкой. И инструменты грузчиков и спортсменов очень разные. Также как спортсмен оставляет в зале гантели, учебные технологии должны быть оставлены в школе. Их миссия научть вас мыслить, это мыслительный тренажёр. И эти технологии созданы как мыслительные тренажёры, и никто пока лучше не придумал. Придумают - заменят, но это всё ещё не будут продакшн технологии.
Не могу с вами не согласиться в отношении того, что школа учит в первую очередь думать, а не работать. Те же более серьезные знания можно получать в университете. Но в отношении, например, математики у меня не было таких проблем с нужностью предмета, как у многих школьников(по крайней мере в старшей школе), ведь она там правда нужна, чтобы держать мозги в тонусе и учить думать и решать задачки, и на неудачности в программе по ней можно в таком случае закрыть глаза. Но разница в том, что математику за эти потуги заставить думать многие не любят, а до информатики просто дела никому нет. Это вот был как бы мой основной посыл что ли. С ней создается ощущение какой-то ненужности, ведь происходит там часто что-то несвязное и просто "заполняющее эфир". И вот тут выходит ещё одна задача школы - показать будущему студенту разные направления. И часто(все это, конечно, основано на моем опыте и опыте моих знакомых) информатика представлена откровенно несерьезным предметом, что, как мне кажется, вряд ли пробудит к ней интерес.
Тут я смысл вообще понять не могу. Может вы знаете? Зачем детям несколько четвертей (а то и лет) рассказывают про возможности этих инструментов? Здесь можно сильно сократить программу до базового уровня и просто попросить детей воспользоваться этими инструментами для подготовки выступления/чего-то еще дав какие-то критерии.
Базовый уровень, это какой? Форматирование абзацев пустыми строками?
Базовый уровень, который понадобиться каждому - нужно знать как по методичке отформатировать Документ из Форда - все что выше обычно опирается на умение подогнать документ под методичку.
Вы вот лично давно пользовались Красной буквой? (которая на несколько строк в начале каждого параграфа). Я лично не разу.
Если мы даем базу, то давайте давать базу, а не учить людей инструментам, большая часть из которых им не пригодится.
Когда вам нужно будет создать документ на несколько тысяч страниц по правилам дело производства, которое занимает пару сотен страниц, то рано или поздно вы создадите шаблон, который будет читывать все эти требования и скорее всего процентов 99,9 вашего поколения тупо не сможет этого сделать.
Вы можете убедить меня в обратном, но кнопочка "отобразить все знаки" в ворде говорит об обратном ) Большинство форматирует пробельчиками и в лучшем случае табом.
Вспоминая себя в студенчестве: тогда мир воспринималься статично. Вот есть технологии, одни современные, другие устаревшие, одни хорошие, желанные, а другие старое говно. А потом ты видишь, как что-то приходит и уходит, а что-то остаётся. Из примеров всплыл в памяти flash и его язык actionscript 3.0 который появился в 2006 году, как раз когда я школу закончил. Строгая типизация, байткод машина, невероятная, по сравнению с JS скорость вычилений и ещё более невероятная скорость отрисовки. В 2009 году я уже зарабатывал деньги написанием кода на нём. Никто в универе даже не знал что это, а в коммерческой разработке это уже было. Что мы имеем сейчас? Технология умерла. Всего за 15 лет технология родилась, достигла пика и умерла. И так будет происходить. А навыки полученные на Pascal никуда не денутся.
Если это ирония, то мое почтение.
Если вы серьезно, то вы серьезно? Те же самые навыки можно получить на C++/Python и не учить что-то чисто чтобы учить что-то.
Можно. Пожалуйста. Только к моменту использования эти плюсы и этот питон устареют. 15 лет назад был другой питон и совсем другие плюсы. И через 15 лет они все будут очень другие. И что бы вы не выбрали сегодня, через 15 лет это будет груда устаревшего хлама. Вы сейчас думаете что то, что сейчас новое и хорошее таковм останется. Нет не останется.
Дело не столько в Паскале, сколько в понятии "алгоритмы и структуры данных", ИМХО. Паскаль здесь как один из самых простых, жестко типизированных, но в то же время богатых возможностями языков, на котором прекрасно показываются структуры любого уровня. А в реализации — можно использовать любой подходящий под платформу язык, от JS до какого-нибудь Rust, от Java до Python, от плюсов до "черепашки", если она к чему-то хорошо подойдет :D
PS: отдельное спасибо за AS3, весьма вероятно, я во что-то из вашего играл, да и в какой-то момент сам начал трогать, но тут как раз начала накрываться поддержка фич адобом и всё полетело по наклонной (FP 11.8 оторвал JIT для пиксельных шейдеров, понизив их скорость в десятки раз, а я как раз в них "игрался").
Новичок на паскале будет плакать от указателей и искать где счетчик за рамки массива ушел. И это практика преводавания, а не мысли вслух
Будет, и правильно будет — нечего вылезать за отведенные рамки, надо тебе ещё памяти — попроси, но сам не бери, не твоё. Указатели даются сильно после массивов (которые к ним по факту приводятся), но вначале только массивы, {$R+} ибо нефиг, и до тех пор, пока во всех режимах программа отработает, не выдав runtime error, включая проверку вводимого значения (разве что это по программе позже, тогда эти проверки опустить), до указателей данного индивида не пущать. К сожалению, сейчас гонят вперед всех, включая тех, кто до сих пор не умеет шнурки завязывать.
Вообще, отладка собственного кода — это то, что должен уметь программист, а контроль диапазона значений нужен вообще везде, только он обычно далеко не на поверхности при формулировке бытовых задач. Вот пусть заранее привыкают, что если у них что-то за границы убежало, его надо ловить с сачками.
Проблема в том, что программирование в России вроде бы обязательно для всех технических специальностей и люди не очень понимают где связь плача о потерянной памяти и специальностью технолога.
Я не против указателей для айтишников (хотя нафиг паскаль я бы брал сразу ASM/C ибо он ближе к железу и удобнее объяснять), но я против вызывания чувства отвращения от программирования у всех остальных
Так а где не будет? В C/C++? Паскаль хотя бы от указателей позволяет абстрагироваться в параметрах функции человеческим методом с помощью var, и объявления/разыменования указателя используют один и тот-же символ ^. Вот от мешанины * и & у новичков в С/С++ явно льются слёзы в три ручья. А уход счётчика за рамки лучше отловить на стадии ошибок в рантайме, чем в итоге так и не понять, почему программа делает не то, что от неё предполагалось. В конце-концов Паскаль позволяет индексировать массивы от нуля, что и стоит прививать ученикам изначально, чтобы они потом не страдали при переключении между языками. А сама необходимость объявлять переменные и типы в отдельных секциях лишний раз заставляет начать продумывать алгоритм на начальных стадиях и оптимизировать количество переменных.
А сама необходимость объявлять переменные и типы в отдельных секциях лишний раз заставляет начать продумывать алгоритм на начальных стадиях и оптимизировать количество переменных.
Спасибо, но нет. Эта самая практика предварительно объявлять все переменные приводит на практике к тому, что одна и та же переменная с подходящим типом начинает переиспользоваться для разных смысловых значений. Вдобавок, это попросту неудобно. Захотелось добавить переменную? Мотай к секции var
, дописывай туда, возвращайся обратно.
Скорее не Паскаль, а Турбо-Паскаль (т.е. не язык, а имплементация), в нем по умолчанию range checking был включен в опциях компиляции. Возможно в Борланд-Си ключ тоже существовал, но на него жаловались больше в те времена, а мы си учили уже на каких-то фрибсд-машинах с cc и gcc — не трогал, не знаю.
В любом случае, это ещё один момент, который можно записать в плюсы Паскаля как языка для обучения программированию: простые директивы, которым можно (и нужно) обучать мимоходом, как само собой разумеющемуся. Не углубляясь в дебри ключей компиляции Cи-компиляторов.
Преподавайте на dev-cpp (любой другой софт) - там у вас не будет флагов компиляции, а будет одна кнопка "compile & run". - вот и решение ваше
й проблемы (да и кто вообще преподает школьникам компилирование из консоли, хотя после такой любви к паскалю я вообще ничему не удивляютсь)
При чём здесь компилирование из консоли, если эти директивы компилятора для range check указываются прямо в коде для участков кода, где их требуется применять (либо для всего модуля целиком)? Это и просто и наглядно.
Я возможно что-то не понимаю - мы в школе спокойно программировали без этого - складывается ощущение, что или мы в школе были "чуть выше среднего уровня" или учитель у нас был какой-то хардовый.
Определенно были проблемы с массивами и прочим - чаще всего учитель просто просил проверить это, перед тем как подходил и проблема сама решалась.
Как вы понимаете я не до конца сторонник обкладывания школьников подушками - и так и так будет возможность удариться. Возможно это какой-то неправильный подход, но меня учили так и хуже мне (и моим одноклассникам) точно не стали, только остались приятные воспоминания про дебаг кода, где ты сам понял в чем проблема.
Безусловно в трудной ситуации помогал учитель (странно бросать ученика в такой ситуации), и в этом и смысл учителя в такой ситуации - он может сколько угодно преподавать с методички, но это точно не про "хороший учитель", так как в такой ситуации теряется смысл в данном человеке.
В целом, меня, как и многих подростков, бесило, когда ко мне относились как к чему-то несознательному, что нужно защищать и толкать в нужном направлении - это только отбивает желание учиться и учиться учиться, так как складывается ощущение, что так будет всегда.
Что от этого меняется?
Соотнесите процентное соотношение кода, написанного за последние 10 лет на Паскале и на условном Си, это про "мертвость" и "не актуальность".
Так же ученые все еще программируют и поддерживают код на Fortran (или переписывают его) - становится ли он от этого живее - спорный момент. Мало того, ученые (почти) не цепляются за этот язык и с удовольствием его отказываются, так как стремятся к современным решениям.
В целом стоит понимать, что сейчас почти ни какой язык (в нормальной ситуации) не становится полностью мертвым, но вот живым его уже нельзя назвать. Так что я не вижу противоречия между написанием кода на Паскаль и его мертвостью, даже если учитывать выпуск новых компиляторов и тд.
Меня если честно удивляет насколько люди цепляются за Паскаль - если (вдруг) так выйдет, что условная Java "умрет" - я не вижу смысла оставаться в числе последних программистов и, тем более, под каждую статью, где будет написано про то, что Java не актуальна не буду писать (максимум чутка про ностальгию) - смысла просто нет - рейтинги ЯП и вакансии на них сами расставят все на свои места
Или под рейтингами имеется ввиду посты в пабликах ВК вида «ТОП 5 САМЫХ КРУТЫХ ЯЗЫКОВ ДЛЯ ХАКЕРА»?
TIOBE Index — самый авторитетный рейтинг ЯП
Количество запросов в поисковики "<language> programming" — "самый авторитетный индекс"? А развернуть этот тезис не хотите?
Ну то есть вам норм делать вид, что если ничего нет лучше, то и мусор сойдет за "самый авторитетный рейтинг". Вопросов больше не имею. Быть technically correct иногда очень удобно, ага.
https://habr.com/ru/news/t/531070/, мне кажется рейтинг ЯП на гитхабе - это источник, так как там отражается сколько создается репов\пишется кода на каждом ЯП и сколько в целом кода на данном ЯП есть
Окей, если вы продолжаете не понимать (или делать вид), я поясню на пальцах.
Вы привели "известный" рейтинг, спорить с тем, что TIOBE широко известен — действительно, нельзя. Далее легким движением руки вы добавили туда "самый" и "авторитетный", несмотря на то, что это буквально всего лишь статистика строго определенных поисковых запросов, и к "популярности" имеет крайне опосредованное отношение (чего стоит, например, рейтинги того же TS и JS, которые в отрыве друг от друга практически не имеют смысла, но согласно методике TIOBE идут как два совершенно разных языка, и их взаимосвязанность не учтена вообще).
Несмотря на это, вы спокойно объявляете это всё "самый авторитетный рейтинг ЯП", и теперь продолжаете удивляться. Типа, а в чем проблема-то?
Вас и вправду интересуют рейтинги ЯП, а не поиск способа макнуть автора статьи? Возьмите, например, StackOverflow Developer Survey. Там, по крайней мере, реальные разработчики программного обеспечения отвечают на вопросы по используемым языкам. Разумеется, такой опросник тоже не отражает всей полноты реальной картины, но хотя бы собирает на достаточно широкой выборке информацию о используемости тех или иных технологий напрямую, а не через несколько слоёв опосредованности.
Вот такой у меня круг общения. Однако я ведь не считаю, что он у всех такой.
Соотнесите процентное соотношение кода, написанного за последние 10 лет на Паскале и на условном Си, это про «мертвость» и «не актуальность».Да на Си пишут больше чем на Паскале в 2021, однако так можно признать мертвыми еще 100500 языков. И где это соотношение можно увидеть, с пруфами? Чтобы сказать «да — не пишут на Паскале.
Так же ученые все еще программируют и поддерживают код на Fortran (или переписывают его) — становится ли он от этого живее — спорный момент. Мало того, ученые (почти) не цепляются за этот язык и с удовольствием его отказываются, так как стремятся к современным решениям.Фортран активно используется в науке и не куда не пропадёт, модные Питоновские NumPy и Pandas внутри на Фортране частично написаны.
Мало того, ученые (почти) не цепляются за этот язык и с удовольствием его отказываются, так как стремятся к современным решениямГде об этом можно прочитать?
Так что я не вижу противоречия между написанием кода на Паскаль и его мертвостью, даже если учитывать выпуск новых компиляторов и тд.Т.е. несколько платных компиляторов Pascal, куча популярного софта написанного на Pascal, использование Pascal для обучения — этого недостаточно, чтобы язык был „живым“? А что тогда?
Где можно почитать об этом?
И вообще вы так любите требовать пруфы, что создается впечатление, что возможно у вам есть какие-то аргументированные доказательства, что Паскаль НЕ мертв? Так приведите их, не стесняйтесь!
Где можно почитать об этом?Заглянуть в документацию, или глянуть сорцы не пробовали?
numpy.org/doc/stable/user/building.html
To build any extension modules for Python, you’ll need a C compiler. Various NumPy modules use FORTRAN 77 libraries, so you’ll also need a FORTRAN 77 compiler installed.
И вообще вы так любите требовать пруфы, что создается впечатление, что возможно у вам есть какие-то аргументированные доказательства, что Паскаль НЕ мертв? Так приведите их, не стесняйтесь!Аргумены есть выше, но специально для вас: вы слушаете музыку созданную в FL Studio(которая написана на Паскале), на девайсе который вероятно спроектирован в Altium Designer(написан на Паскале), возможно в плеере Aimp(который тоже написан на Паскале). Достаточно?
Нет, зачем. Когда вы нечто декларируете, обязанность подтверждать пруфами на вас. Ваши пруфы убедительны, не спорю. Я собственно не то, что бы вам не верил — просто ответил в вашем стиле. ;)
>>> Достаточно?
А вы как думаете? Нет, ну серьезно, я же вижу что вы разумный и знающий человек. Вы же понимаете, что тот факт, что существование неплохих программных продуктов, написанных на каком-то языке (первая версия FL Studio — 1998 год, Aimp автор написал на Delphi, когда учился в школе, Altium написан не только и не столько на Delphi) не делают язык актуальным. Delphi/Pascal на текущий момент не актуальны, не развиваются, не имеют активного комьюнити, и рынок труда имеет минимальный спрос на специалистов, и тот в основном за счет сурового legacy… Вы не согласны? Если таки не согласны — ну значит мы с вами живем в разных реальностях, и не вижу смысла об этом спорить. Если согласны, но считаете что Паскаль тем не менее хорош для обучения — тут можно дискутировать, но… Я как бы с этим в целом-то не спорю, просто согласен с автором, что актуальность языка ВАЖНА.
PS плюс вашему ответу — от меня, если что. ) Хорошо ответили.
Я, может, уже подзабыл детали, но как раз паскаль вроде умел контролировать выход за границы массива и кидать исключение.
… Которое никак нельзя перехватить. Удобно, да.
Указатели умерли вместе с ТурбоПаскаль. В современном Паскале ссылочная модель данных. Лишь для сложных объектов требуется отличать var a := b от var a := Copy(b). Но и только.
В 88-м году обучался информатике учительницой по-математике. Конечно никаких компьютеров не было, и как работает компьютер - всё расказывала на пальцах. Но так, как она и сама его отродясь не видела, то и рассказывала так неинтерессно, что этот предмет терпеть не мог. В 89-переехал в другой город город и там информатику преподавал инженер из компьютерного центра, отвечающего за погоду. Он рассказывал, как работают компьютеры, учил програмированию на FORTRAN(е). Да так увлекательно и интересно, что это стало судьбоносным влиянием на многих из нашего класса. Для меня очень сильно.
После прочитаного могу добавить ко многим, кто здесь уже высказался. Информационные технологии - это база. Она нужна. А вот сверху, и програмирование, и наброски каких-либо веб-страничек и многое другое - учитель должен по ходу дела интегрировать. Если класс продвинутый и в состоянии это переварить, то всегда стоит увлекательно показать, дать "пощупать".
Со отступом на то, что это не школа, но приведу пример из области моего преподавания в университете (в Германии). Преподаю модуль "BigData" - так вот по ходу дела, если студенты в большинстве своём не осилят, то и програмироваие под Hadoop, Kafka, NoSQL базы данных , AWS, Machine Learning итд. - только вскольз и без практики, но для понимания - хватает. Если-же сильный состав (а такое тоже иногда бывает), то и написание MapReduce функций не проблема.
с модулем, который тоже предлагаю - "Harware и информационные технологии", так вот некоторые доценты предлагают студентам метериалы, как работает компьютер на примере ламп и реле. Потому что так сами учили. И посмотришь их конспекты, мало чего из проекции на сегодня. И описание работы компьютеров или алгоритмов с помощью картинок из 70-годов.
Надо быть чуточку гибким. Но в одном соглашусь с автором - учителя должны свои навыки обновлять и увеличивать. Смотреть по сторонам. Потому что только так появляется увереность в использовании технологий и та сама гибкость в выборе того или иного пути будет всегда возможна.
А предложил свеому сокурснику, который в школе в Казахстане преподаёт "Информатику" сделать видео-мост, где могли бы поделится опытом, позадавать друг-другу вопросы - то никакой реакции.
Ох, у меня есть что сказать, часто размышляю на эту тему...
Учить Паскаль было тупостью еще 15-20 лет назад, когда его учили мне. Возможно мне плохо его преподавали, но когда после паскаля я открыл книжку по С - был шок и общее ощущение "А что, так можно было???". Си, без плюсов, без тройных пойнтеров и прочей магии вполне дружественнен к новичку, то есть простые программы на С - простые. Но при желании можно и с битиками поиграться, и с памятью, да и синтаксис поможет перейти потом на любой другой язык вполне легко. Из альтернатив - питон, js, - чтобы быстро начать. Но поскольку я считаю что типизация важна - то я больше за Go тогда уж.
Что из программирования нужно давать? Сомневаюсь что алгоритмы. Переменные, операции с переменными, ифы и циклы, функции. Ну и подключение библиотек/фреймворков и какой нибудь +- большой общий проект, допустим игра. А то я сталкивался с фразами - ну ок, я тут могу программку написать, которая строки сравнивает или консольный калькулятор, но как программировать то? Народ не понимает, как им из базовых примеров перейти к изготовлению "Настоящих Программ".
Про изучение вордов с экселями - а давайте тогда пейнт год учить, тоже ж может пригодится! Как по мне - дать детям вводные, чтобы понимали за какой конец браться. А потом уже требовать их использование, к примеру сдаем домашку как презентацию или таблицу в экселе. Если же тупо зазубривать все функции ворда, записывая в тетрадку текст двадцатилетней давности, то это будет попросту потраченное время всех участников процесса.
Железо - тут сложно сказать. Если не придумать какой нибудь интерактив, то и интереса к железу не возникнет. Возможно ардуинки как-то поправят положение, можно будет помигать светодиодиками к примеру.
Безопасность - я и не знал что сейчас не рассказывают про вирусы и спам. Можно взять виртуалку и/или линукс и пройтись по всем письмам, чтобы наглядно показать что там шлют и к чему это приведет.
Ну и проблема учителей присутствует. Нельзя рассказывать о предмете интересно, если ты сам не увлечен им. А где найти по программисту, который будет тратить довольно приличную часть своего времени на обучение детей, в каждую школу - я не знаю.
Я знаю школы в которых реально учат Paintу - рисуют кружочки и все такое)
И это - ХОРОШО (возможно)! Я могу дать пример хорошего курса для начальных классов с графическим редактором, где объясняются базовые понятия дублирования, симметрии, алгоритма и пр. на примере графических объектов. Если класс старше 5 - го, то конечно это жесть, но для младших классов - почему бы и нет?
Язык программирования и технология = инструмент, при помощи которого юный человек учится делать некие вещи - в данном случае понимать алгоритмы "нажми на кнопку, получишь результат" и несколько большее понимание компьютера, нежели "переустановить виндовс". Изменять инструменты без изменения цели, бессмысленно.
Я бы добавил в школьную программу более раннее изучение алгоритмов на визуальном уровне (скратч, "Черепашка"). И добавил бы детишкам следующие направления для изучения: дивиргентное мышление, критическое мышление и поиск достоверной информации. Они будут более полезными для большинства, нежели сортировка пузырьком.
Каждый год перед первым сентября на Хабре появляется статья "Что не так со Школьной информатикой"...
Позвольте как специалисту с 25-летним стажем работавшим в этой области кое-что пояснить для тех, кто такой наивный рвется порулить тем, что видел только с позиции пассажира.
Кризис образования всеобщий. И он связан с тем, что современное образование выросло из юнкерских училищ Германии 19 века. Где-то более, а где-то менее, но в целом это так. И до конца 20 века система в целом справлялась. Она хорошо подходит для индустриальных обществ, где нужны однотипные взаимозаменяемые юниты. А вот пост-индустриальные вызовы ей уже не по зубам...
На это накладывается кризис образования в РФ. Была разрушена система образования СССР, которая была именно СИСТЕМОЙ (сущностью, превышающей механическую сумму своих разрозненных частей). Части системы, лишённые сопряжения, работают в холостую. Промышленность криком кричит об отсутствии специалистов, Вузы гонят никому не нужных юристов/экономистов, школы не дают реальных знаний на натаскивают на ВПР и ЕГЭ.
Преподавательский корпус. С распадом системы школьное образование превратилось в вещь в себе, сутью которой является предоставление отчетности вышестоящей организации. ВСЁ! Учителя в массе не заинтересованы в обучении детей, а только в выполнении требований ФГОС. Обучение идет как репетиторство, НО в большинстве случаев сводится к натаскиванию на ЕГЭ.
Школьное образование в РФ низведено до фактологии и зубрёжки. Мыслить редко какой предмет заставляет. Даже естественно-научные задачи решаются шаблонно. Мыслить за пределами шаблона ни кто не учит. В гуманитарных вообще творится "ад и израИль". Заглядывал недавно в пособие девочки готовящийся к ЕГЭ. Там была классификация (не помню уже чего). Так вот дана была эта классификация сразу по двум параметрам без деления. С точки зрения науки Логики - это грубая ошибка. НО детей заставляют это заучивать наизусть.
Собственно "информатика". Точнее два предмета "Информационные технологии" и "Информатика". В принципе там не все так плохо и если есть интеллектуальный потенциал и желание можно составить образовательный маршрут по ФГОСовским учебникам, который будет учить детей полезным вещам, НО "Достигается тот параметр, который измеряется"!!! А измерительные материалы ЕГЭ составлены так, что там всё выхолощено. Зайдите на сайт Полякова, там есть разбор заданий ЕГЭ и посмотрите. Задачи на "Сети" не имеют ни какого отношения к маршрутизации. На "рекурсию" - никакого отношения к программированию. И т.д.
+++
В общем что то меня прорвало. Тут либо пост писать отдельный и большой, либо сидеть тихо под веником.
Немножко личного, никому не нужного, мнения выпускника матпрофиля московской гимназии и ныне студента.
1) Паскаль необходим хотя бы один или два года к изучению, как в математике изучение базовых операций. Сам язык интуитивно понятен и более прост. С 5го по 7ой класс, как мне кажется, Паскаль должен быть.
2) Изучение Python или С++ бесспорно нужно. Но тут еще нужно и правильно построить программу, чтобы в 100500ый раз не изучать сортировку пузырьком. Но и писать детям алгоритм Хоара тоже не самое адекватное задание. А вот объяснить про указатели в том же С++ очень даже полезно.
3) Про ЕГЭ по делу лишь задание на программирование, логику (особенно 23) и передачу данных. Наверное, самый адекватные задания для ЕГЭ - упрощенные задачи олимпиады ИТМО.
Менять надо, но осознанно: не пытаться впихнуть в школьный курс сложные алгоритмы из университетского курса (сортировка Хоара или ассемблер и устройство микропроцессоров с подробностями архитектур фон Нойманна и Харварда как пример), но и выбрасывать многое тоже не надо (тот же Паскаль).
Вообще если ЕГЭ заметить на расширенную олимпиаду ИТМО, ИМХО, будет только лучше... НО не для этого ЕГЭ придумали, чтобы дети чему то реально учились :(
И про программирование в 5 классе. Не нужно оно. Просто дети в этом возрасте еще только начинают мыслить вербально. А рулит у них образное мышление. Там Scratch может быть к месту. Потом добавляем Черепашку и уже потом программируем при помощи слов какие-то абстрактные цифры и строки. И там Паскаль может пригодиться.
Ну, возможно я бы хотел увидеть уроки в 10-11 классе в формате изучили что-то, давайте сделаем проект - так и алгоритмам сразу применение найдется и все такое (но тут точно думать нужно).
Си, на уровне алгоритмов интуитивно понятен и прост, так как имеет с Паскаль +- одинаковый функционал (единственное с передачей массивов в функцию). И синтаксис там простой - просто вместо END пишешь скобочки. Да, нужно контролировать типы данных которые ты считываешь/пишешь, но с этим можно справиться.
Про ЕГЭ - если вы про 23 задание которое было в прошлом году, то это бред сумасшедшего (в плане давать это школьникам) - возможно вы думаете что люди в этом разбираются, когда готовятся - нет( - они просто заучивают алгоритм и все, а после экзамена забывают. Мы можем сколько угодно усложнять ЕГЭ, но знаний этим мы не добавим - только сделаем так, что дети зазубрят чуть больше, а потом забудут.
Мало того, про си - к нему есть документация - если я после урока в школе захотел не только считывать строку, а например отобразить еще что-то из сети (например время) - я найду с легкостью пример/документацию о том, как это сделать - к Паскалю (сейчас вроде используется PascalABC - я такое не нашел), что сковывает возможности простого проектного роста.
Нет доступной для школьника документации о том как на си скачать что-то из сети. Просто нет. Он не в состоянии её прочесть. PascalABC работает на .NET и ко пнему есть вся документация. PascalABC вообще опенсурс. Как и популярные компиляторы сей и плюсов. И то что вы не нашли этой документации проблема ваша а не инструмента. А для школьника ничего из этого не нужно, это всё нужно после освоения базовых концепций и структур данных. Не сможете вы скачать файл из сети пока не научились писать функции и циклы, а если сможете то с этим файлом ничего ен сделаете.
По PascalABC или .NET? Если по PascalABC, то при чем тут тот факт, что он написан на .NET? Если по .NET, то какое это имеет отношение собственно к Паскалю?
К тому что этот PascalABC написан и интегрирован с .NET. Хотите дотнетовую сеть, да пожалуйста, хотите файловую систему - тоже есть, хотите вебсокеты - их есть. Надо разбираться? Конечно надо. Но я ставлю что один хрен проще чем для сей вебсокеты подключить и использовать.
Не, я согласен — не вы начали про «документацию» (если уж на то пошло, то для ABC Паскаля документация неплохая и на русском ), но… Информация о том, что Паскаль АБС написано на .NET и предложение использовать возможности .NET в нем, мне кажется неподготовленному ученику средней школы взорвет мозг. А подготовленный резонно спросит: почему бы тогда просто не учить .NET и будет прав.
По факту же автор больше имел ввиду скорее не документацию как таковую, а пример решения практической задачи, т.е. по сути сообщество, способное подсказать как реализовать ту или иную фичу: в живых языках такие сообщества активны и можно найти пример практически на любой случай из жизни…
Мало того, про си - к нему есть документация - если я после урока в школе захотел не только считывать строку, а например отобразить еще что-то из сети (например время) - я найду с легкостью пример/документацию о том, как это сделать - к Паскалю (сейчас вроде используется PascalABC - я такое не нашел), что сковывает возможности простого проектного роста.
Вот конкретно на это я отвечаю. Не найдёт школьник как сходить в сеть ни на си ни на паскале.
2 секунды поиска и я нашел по паскалю информацию про датувремя...
В школе говорить о проектном росте как минимум смешно. Какой проектный рост без базовых знаний. Изучите основы, а потом уже растите. Хотите расти - кружки, курсы и так далее. Возможностей миллион.
23 задание, кажется, было про логическое выражение (в 2018 году по крайней мере). Такое же есть и на ИТМО. Но булева алгебра нужна.
Си, на уровне алгоритмов интуитивно понятен и прост, так как имеет с Паскаль +- одинаковый функционал (единственное с передачей массивов в функцию). И синтаксис там простой — просто вместо END пишешь скобочки.А строки и объединения в голом Си тоже есть?)
Да, нужно контролировать типы данных которые ты считываешь/пишешь, но с этим можно справиться.А зачем, если это может делать компилятор в языке с очень строгой типизацией?
Про ЕГЭ — если вы про 23 задание которое было в прошлом году, то это бред сумасшедшего (в плане давать это школьникам) — возможно вы думаете что люди в этом разбираются, когда готовятся — нет( — они просто заучивают алгоритм и все, а после экзамена забывают. Мы можем сколько угодно усложнять ЕГЭ, но знаний этим мы не добавим — только сделаем так, что дети зазубрят чуть больше, а потом забудут.Лол, почитайте последние посты по устройству на работу в FAANG, то самое заучивание: habr.com/ru/post/569522, вполне себе реалистичный и жизненный кейс.
А строки и объединения в голом Си тоже есть?)
Кстати да. Попробуй объяснить 6класснику, что строка это массив из char. А еще про указатели и работу с ними. Будет кромешный ад.
Как интересно… Т.е. бывает строгая типизация, а бывает, видимо «очень строгая»? И наверное еще не очень строгая тоже бывает!
И так, на минуточку, Python — язык со строгой (так же еще принят термин «сильной»), но динамической типизацией. Паскаль — со статической. Строгость у них одинаковая. ;)
В результате опроса выяснилось, что большая часть студентов учила в школе Pascal. Я не противник этого языка, но считаю что пора бы уже что-то менять.
Отлично. На что? С и С++ сложнее (одна магия на указателях чего стоит, а появляется она там очень рано). Python не статически типизированный, а понимание типов данных важно.
Про Word/Excel/PP
Однозначно нужно. Не сами word/excel, а опенсорсные аналоги скорее (по религиозным соображениям и бюджету школы). Но рассказать как правильно форматировать
И в отличие от языка программирования, это именно тот инструмент, которым люди пользуются. В частности, страдают, когда пришел криво отформатированный куриной ногой официальный бланк, в который надо вписать свои данные.
Да, тут определенно очень спорно, но я считаю что мы должны давать детям более «низкоуровневые» знания — давайте расскажем им про ассемблер и регистры.
В основной программе школы все же не нужно. На кружках / факультативах другое дело. Там можно и роботов собирать, и на ассемблере кодить, и игры делать. Но для общего представления об информатике это все же не нужно.
А вот что стоит добавть, так это командную строку. То есть саму идею программирования не из операторов языка, а из установленных программ. Собирание конвейеров, скриптование. Хорошо бы подошло вместе с обычным программированием в смысле написания своей утилиты и встраивании ее в конвейер или демонстрации как работают системы тестирования олимпиадных задач и почему нельзя им писать «Vvidite 4islo A:»
Я не предлагаю отменить Word/Excel/PP или его opensource аналог, но нужно понимать когда какой-то навык регулярно нужен в жизни (например межстрочные интервалы и тд), а когда это просто для того, чтобы было. Например, вместо этого можно рассказать про то, что такое open source
А про опенсорс… это придется рассказывать и о клозед-сорсе, и о копирайтах, пиратстве и других извращениях. Впрочем, немного об этом рассказать стоит в любом случае — про то, что пиратство это плохо и лучше поискать опенсорсный аналог, а то придет злой правовладелец и начнет ныть про недополученную прибыль или о чем им там сейчас модно ныть. И про то, что во взрослом мире нельзя просто так поставить фотошоп на рабочий комп, а вот со всяким гимпом оно гораздо проще.
Молодой человек, я понимаю ваше негодование по поводу преподавания информатики. Вам понравилось программирование на этом уроке, но его давали строго в том объеме, в котором он прописан в плане обучения, что утвержден минобрнауки. Естественно, что вам хотелось больше времени от всего обучения информатики уделить именно своему интересу.
Однако, у учителя есть свой интерес. Зарплатка(точнее будет сказать, альтруизм :С ). И эта его зарплатка напрямую зависит от того, насколько качественно он донесет до ваших молодых умов программу обучения, что, напомню, утверждена минобрнауки.
Как в комментариях выше, и в вашем опусе тоже, уже описывалось, задача школы, это выдать базис в основных предметах современного мира. Математика, языки, история, геометрия, физика, физподготовка, информатика, химия, право, труды(электротехника/табуретки/шитье фартуков/готовка блинчиков), биология.
Как было в мое время, так, судя по вашим изысканиям, осталось и в нынешнее время. Предмет информатики в школе дает базовые представления об устройстве систем на базе процессоров, их участия в современной жизни, базовые навыки работы с пэвм, краткий курс работы с наиболее распространенным/востребованным ПО. Рассказывает на пальцах об устройстве сети интернет и его истории. А так же дает базовые знания в предмете логика.
Соответственно, как и в любом другом школьном предмете, план обучения не заточен для подготовки специалистов, а лишь дает базу, на которой будет строиться ваше дальнейшее обучение и жизнь.
Поэтому, если какой-либо из разделов того или иного предмета в системе общего образования вам приглянулся и вы понимаете, что школьного курса вам недостаточно, то в таких случаях записываются на кружки, элективные занятия, курсы для школьников или изучают самостоятельно.
На данный момент времени, общаясь с молодыми кадрами или студентами, я вижу, что общий уровень владения пэвм, понимания его устройства и устройства интернета, находятся на хорошем уровне в среднем по больнице. Что характеризует современный план обучения информатике с положительной стороны. А как мы все хорошо знаем, работает- не трогай.
Оно не работает, по-этому и трогаю. Если вы считаете, что мы сейчас реально должны уделять время тому, где используются процессоры (и устройства на их базе), то у вас ошибочные представления о детях.
Если минобрнауки считает, что мы должны говорить о том, где используется техника с процессорами, то у минобрнауки неправильное представление о детях.
На самом деле тут смешная ситуация - учителям говорят как учить предмету люди, которые по этой же программе и учились. Вот только времени прошло минимум лет 20, а нового (а ведь новое есть) - не появилось.
Да и давайте честно - ссылаться на минобрнауки - это просто отговорка. Если бы учителя хотели что-то поменять - можно что-то придумать и хотя бы провести эксперимент. а не ссылаться на министра сверху.
Любой эксперимент - только через минобрнауки. Учителя в моей школе с этим много раз сталкивались. Вы хотите из информатики сделать программирование. Но программирование без основ не имеет смысла.
Не дошло.
Хорошо, я попробую иначе донести простую мысль.
В школе дают базу, а не обучают работать с инструментами профессионального уровня. Как говорили ранее, молокососу никто болгарку в руки не даст, пусть сначала принцип совка и ведерка изучит.
Сейчас базовый принцип работы эвм не меняется уже больше 80 лет. Единички с ноликами как были, так и остались. Лет через 15-20 к ним туда присоединятся кубиты и в зависимости от их участия в современной жизни, будет принято решении об обновлении плана обучения.
Аналогично интернет/связь/сеть, базовые принципы сетей на пальцах объяснят, возможно даже расскажут об RFC и IEEE, покажут пару ошибок http и нарисуют шаблонный вид странички на HTML5, но не более. Все остальное это уже специализация, которая только из этого абзаца может разрастись на пару-тройку десятков разных профессий.
Конечно новое будет появляться, прогресс не стоит на месте и человеческая лень толкает его вперед. Однако, базовые вещи при этом меняются очень неспешно. Инструменты тоже совершенствуются или отмирают. Но прошу заметить, это профессиональные инструменты, на изучение некоторых из них люди тратят всю свою жизнь (саксофон-тенор), и тратят осознанно. А без пяти минут шеф-повариха Маня из 11Г, будет очень недовольна, что ей приходится изучать странные закорючки на мониторе, вместо дополнительных 5 уроков труда, на которых она сбацает отличный рамен.
В итоге. Общая база, в среднем одинаковый уровень подготовленности к жизни, знание простейших инструментов (которыми тоже вполне неплохо зарабатывается на жизнь). Школа дело сделала, школа может уходить.
P.S. выше уже писали, что ссылка на министра, это проблема кашляющей кровью системы образования.
Зачем учить школьников языку, который им не пригодится. Давайте просто сменим ЯП на современные, например Python… и Си/С++… В целомНу раз может быть почти любой — почему бы не быть паскалю? Как язык для обучения — он весьма хорош тем, что имеет строгую типизацию. И не имеет goto :-).тут может быть почти любой ЯП.
Про Word/Excel/PP
Тут я смысл вообще понять не могу. Может вы знаете? Зачем детям несколько четвертей рассказывают про возможности этих инструментов?
затем, что это много лет было стандартом де-факто. И еще потому, что на школьной информатике не готовят программистов — там учат пользоваться уже готовым софтом (лично я за то, чтоб заменить MSO на свободный. но это замена совсем не принципиальная). К сожалению, даже после «нескольких четвертей» большинство «уверенных пользователей Майкрософт офис» выравнивают текст пробелами, а у «уверенных пользователей Excel» уверенно используется только суммирование (копирование формул руками — обычное дело. самый ужас, который я видел всего 5(!!!!!) лет назад — считали на калькуляторе и вписывали результат).
Да, тут определенно очень спорно, но я считаю что мы должны давать детям более «низкоуровневые» знания — давайте расскажем им про ассемблер и регистры. Возможно даже покажем на каком-то «детском языке ассемблера» и попросим их просто сложить два числа.зачем это детям? тем более — всем детям? Не, я, конечно, помню, что Юрий Пичул вообще предлагает FPGA включить в школьный курс… :-) но вот зачем среднему школьнику ассемблер и регистры? это не всем программистам нужно. (я понимаю, что это полезно знать всем программистам. Но количество полезностей большое, а учебный курс не резиновый).
Но про практику я не уверен, тут только «эээкперименты» (Из Галилео, если кто-то еще помнит те времена) покажут, как говорится.для начала обеспечили бы нормальный лабораторный практикум по тем предметам, где он действительно крайне необходим (физика, химия) — чтоб понимали, что физика — это не «про формулы», а про то, как устроен мир (и химия тоже). Пока по моим наблюдениям, «советский» лабораторный уровень есть лишь в единичных школах (по крайней мере, в нашем Челябинске).
Еще как имеет!
Я не знаю… Тут уже столько раз было про строгую типизацию — как это хорошо и необходимо и обязательно… Я этого не понимаю просто! Строга типизация есть благо на проектах, разрабатываемых большими командами на десятки тысяч строк кода — когда ошибка в результате неправильного типа параметра может быть не выявлена вообще или ценой крайне больших трудозатрат (что в принципе не мешает Python быть мейнстримом разработки довольно сложных библиотек и прекрасно себя чувствовать!).
На кой черт грузить лишними синтаксическими элементами людей, которые только начинают в программирование? Уж в учебных задачах серьезных проблем с типами быть вроде не должно…
Про строгую типизацию — дети ещё не умеют думать в тех же понятиях, что и взрослые, поэтому систему типов нужно задавать "сверху", и язык со строгой типизацией в этом наилучший помощник -захочешь не сложишь апельсины с днями, а если и сложишь, будет заметно. "Землекопа полтора" возникло не на пустом месте, а решение задач по математике по факту является предтечей объяснения этого же решения компьютеру, и если человек позволяет себе нарушать типизацию, далеко он не уедет, и вот тут надо его научить.
PS А можно мне пример получения значения 1.5 с типом INT — очень интересно поглядеть, тот же питон увидев 3\2 вполне себе безнаказанно и без последствий преобразует выход в double и будет прав — мы же не использовали операцию целочисленного деления?
Вот именно, что мы УЧИМСЯ! А строгая типизация не «позволит придумать, назвать и определить», а заставит! Т.е. не даст без этого двигаться дальше. А python как раз позволит без этого, но не даст себе «выстрелить в ногу» там, где это критично. Поймите: неявная типизация, не есть отсутствие типизации как таковой! Pyton строго типизированный язык, как и Паскаль, но он позволяет не определять типы: оные определяются автоматически в процессе. Но при попытке сложить число со строкой система выдаст ошибку несоответствия типов:
print(1 + '7') # TypeError: unsupported operand type(s)...
А давайте рассмотрим вот такой код новичка на Питоне:
n = int(input())
m = n / 2
a = []
for i in range(n):
a.append(int(input()))
a.sort
print(m, a[m])
Допустим, у нас 25 значений. Вводим 25, затем эти 25 значений... и потом Питон нас радует сообщением "List indices must be integers or slices, not float", после чего школьник обычно лезет в телефон за переводом. Да блин же, зачем было 26 чисел тогда вводить!
Аналогичный код на современном Паскале (специально написан максимально близко к питоновскому)
##
var n := ReadInteger;
var m := n / 2;
var a := new List<integer>;
foreach var i in n.Times do
a.Add(ReadInteger);
a.Sort;
Print(a[m])
При попытке откомпилировать код сразу получим сообщение: "Нельзя преобразовать тип real к integer" с подсветкой места ошибки.
Вот этим Паскаль для школьника лучше Питона. У меня есть и с динамической типизаций примеры... просто они длиннее.
Но суть даже не в этом. Холивар на тему типизации — отдельная специальная олимпиада. Но все сходятся во мнении, что плюс-минус пофиг на чем учить базовые принципы. Вопрос: зачем это делать на языке, умершем 20 лет назад (когда я учился — Паскаль уже не был мейнстримом, а это было… Давно! ;) )? Когда есть синтаксически простые, дружелюбные к пользователю и главное СОВРЕМЕННЫЕ языки? Из за строгой статической типизации? Серьезно?
но вот зачем среднему школьнику ассемблер и регистры? это не всем программистам нужно.
Особенно это полезно javascript-программистам ;-) которые понятия не имеют, на какой архитектуре их код будет выполняться...
Пока по моим наблюдениям, «советский» лабораторный уровень есть лишь в единичных школах (по крайней мере, в нашем Челябинске)
В нашей Москве такой уровень встречается не чаще, чем в вашем Челябинске - последние лет 20 лабораторные работы искореняются из школьной программы. Да даже 30 лет назад на химии не было лабораторных работ, описанных в учебниках 70-х годов, а в учебниках 70-х годов отсутствовали лабораторные опыты из учебников 50-х (я очень увлекался химией в юности, и перечитал массу редакций школьных учебников).
Как мне кажется, помимо того, чему учат, проблема ещё в том, как учат. Возможно, обучать пользованию Word/Excel/PP, имеет смысл - но только если уж делать это, то делать нормально. С тем, чтобы, к примеру, если человек работает в Word-e, то он привыкал бы настраивать и использовать стили. Потому что у нас по-прежнему учат документы создавать на печатной машинке, зачастую используя пробелы для форматирования отсупов и т.д.
По поводу Word, Excel, PowerPoint и так далее: сейчас, по сути, государство выделяет деньги на изучение конкретных зарубежных коммерческих программ в государственных же школах . Есть ведь Gnumeric и Abiword, набор LibreOffice - для школьных целей вполне достойные программы. Можно на их примере даже показать сходство и различие разных программ: вот, в Gnumeric вон та функция реализована немного по-другому, чем в Calc, но суть такая же... А для изучения конкретно Word и Excel есть специализированная литература и курсы.
С наибольшей вероятностью MS Office будет и дома, и в учебном заведении, и на рабочем месте.
Вы скажете: пользуйтесь заменой! Замените два пробела на один, повторите это много раз!
Я не хочу много раз. Я хочу один раз одну кнопку нажать.
Следовательно, я должен стать программистом и написать для моей верстальной программы такую функцию.
Почему люди, побывавшие на приёме у терапевта, не пишут потом посты о том как надо было меня лечить и обслуживать?
Школа - это общедоступное образование, а в общей массе современные дети глупые, инфантильные и ленивые. Школьный курс для многих сложен. А Вы предлагаете его усложнить и убрать некоторые простые вещи. Дети учатся от простого к сложному. И то если только им нравится, а нравится только если получается.
Я могу много писать, почему Ваши предложения ошибочны. Но лучше скажу так, если хотите учить преподавать, идите работать в школу с обычным детьми лет на 10. Получите опыт, сравните разные УМК, посмотрите на динамику в течение нескольких лет. А то наломаете дров, а результат только через года увидите. А захочется починить, и ещё столько же ждать результатов.
Да, дети не подарок - вы сами можете вспомнить себя. И, вы меня уж простите, как человек который недавно закончил эту самую систему образования - я имею полное право лезть в нее и говорить какие замечания я заметил. Только так она станет лучше. А еще у меня есть опыт преподавания - да не 10 лет, но поверьте - подросткам интересно, когда к ним относятся не как к детям. Попробуйте после 14 лет, как это рекомендует литература - обращаться к ним на Вы, не орать и объяснять в том числе и почему вы рассказываете то, что рассказываете. Вопросы отпадут - так как регулярно я не слушал учителя, когда просто не понимал зачем.
Сначала у нас в школе выстраиваются отношения, где учитель все, а ребенок придаток для зарплаты, а затем мы удивляемся почему они себя так ведут. Да, не все дети такие - но почему-то условный Быков может держать аудиторию и его уроки всем нравятся, а тут мы ссылаемся на нервы учителя.
Если система образования не может обеспечить учителям нормальный отдых и заработную плату, чтобы в пед шли люди не по остаточному принципу, то это не моя проблема, как ученика.
как человек который недавно закончил эту самую систему образования - я имею полное право лезть в нее и говорить какие замечания я заметил
Сколько бы дети не негодовали, но построить детский сад, организовать питание, отопление и крышу над этим садом они не могут. И спустя 20 лет не могут.
Представьте, что вас посадили в тюрьму на десять лет. И вывалили вам гору книжек и сказали — вот это вы должны выучить за десять лет (причём каждую книжку вы будете учить строго по расписанию, тюремщик следит). И ежели вы выучите их хорошо, то вас выпустят с положительной характеристикой, а в противном случае — с отрицательной. Как вы думаете, насколько вы рьяно возьмётесь за изучение? И какими эпитетами вас будет награждать тюремщик? Что-то мне подсказывает, что «глупый, инфантильный и ленивый» — это самое вежливое из того, что он скажет. Между тем это почти ровно то, что происходит с детьми в школе.
> Дети учатся от простого к сложному. И то если только им нравится, а нравится только если получается.
Вот здесь соглашусь. И ещё добавлю, что изначально дети только и хотят, что учиться, просто в большинстве случаев они хотят учиться не тому, чему их хотят учить «педагоги». Только это надо не ставить детям в вину, а учитывать при организации учебного процесса. Для начала хотя бы не отбивать у них означенное желание, а в идеале позволять каждому ребёнку учить то, что он хочет в настоящий момент (ну, в рамках уголовного кодекса).
А теперь представьте что все дети разные, и кому-то такой подход идёт во вред, кому-то в пользу. Причём мотивированных и трудолюбивых детей меньше, а мозг развивать надо всем.
Как сказал один очень умный человек: "Учёба - это труд. И кто-то должен следить, чтобы его выполняли." Большинство детей хочет не учиться, они хотят играть и узнать новое. А узнавать новое и понимать разные вещи.
Мы слегка отходим от темы поста, автор говоря о содержании начал упрекать за подношение. Тут как бы либо одно, либо другое. Либо Вы критикуете минобрнауки за содержание, либо ВУЗы за подготовку кадров.
То бишь вы не против, чтобы вас учили так, как я описал? Принуждали к невольничьему труду, пользуясь вашей терминологией. Или вы себя относите к
> Причём мотивированных и трудолюбивых детей меньше, а мозг развивать надо всем.
Серьёзно? Вы считаете, что без Учителя с розгой мозг не разовьётся? Вы можете привести хоть один пример, как из «бездаря» путём принуждения к «труду» вышел хотя бы средний специалист? Я вот вижу только обратные примеры. Когда в школе, как учителя ни стараются, львиная доля выпускников забывает всё сразу после выпуска (а то и раньше), а все действительно хорошие специалисты (и здесь на хабре, и различные великие учёные, про которых в википедию пишут) научились своей специальности исключительно по собственному желанию. На мой взгляд, это однозначно говорит об том, что научить против желания обучаемого невозможно, а значит, и не нужно. Как говорится, не можешь срать — не мучай жопу. Вам даже в педе должны были об этом рассказывать в виде отлитого в граните афоризма «научить нельзя, можно только научиться». Ну или там «можно привести лошадь к водопою, но нельзя заставить её пить».
> они хотят играть
Игра — это разновидность обучения. Ежели человек всё уже в игре изучил, он не будет продолжать в неё играть. А ежели человек в игру играет — значится, она ему развивает нечто, что он (быть может, неосознанно) считает важным.
> и узнать новое. А узнавать новое и понимать разные вещи.
Вы хотите сказать, что дети не хотят понимать? Да вы издеваетесь. Дети только и хотят, что понимать, а им говорят — вырастешь — поймёшь, а сейчас пойди и нарисуй ещё сто крючков.
> Мы слегка отходим от темы поста
Я пост вообще не читал. Я говорю об том, что считаю важным.
А как современные дети ходят в школу учиться? Зачем студенты поступают в университеты? Родители заставляют, диплом нужен. Да 90% школьников хоть завтра бросили бы школу, если бы их не заставляли. И дело чаще всего не в конкретном учителе или коллективе, а просто лень. Лень учить, лень разбираться, лень искать логику.
Мозг как мышца, и его надо упорно тренировать. Выполнять упражнения, придерживаться режима и программы. Но встречаются конечно гении, у которых как в спорте есть талант, таким и мозг помогать тренировать не надо, они сами его качают. Достигают больших успехов, потом говорят что образование бесполезно, в школе ничему не научили. Конечно, ведь школе надо с обычными детьми как то разбираться.
А теперь почему из школы не выходят конвеером одарённые дети? Все из-за обрыва производственной цепочки, раньше школа учила и готовила, а родители помогали и следили. Сейчас же, все роли отошли только школе. Школа должна и учить, и следить и воспитывать, а родителям только и остаётся жалеть детятку.
Школа давно не учит никого против воли, так как проблем потом от родителей и прокуратуру не оберешься. Сравните учебные материалы современной школы и советской. Все упростили, чтобы хоть как-то создать видимость обучения.
В хорошем педагогическом университете учат многим вещам. Разным технологиям, методология, подходам и ситуациям. Если ребёнку подходит данная методика лучше всего, то почему её не применить? Можно подумать у кого-то не было ситуации, когда мы говорили родителям или учителям, спасибо, за то что заставили нас что-то сделать и нам это пригодилось.
Игра - это не образование и не обучение. Есть игровой подход в обучении, но он совсем о другом. Игры это больше про развлечение, расслабление или азарт, то что мы сами себе придумываем отговоркиидля игр - это совсем другое. Я играю много в LOL, это развивает тактическое мышление, но кого я обманываю, мне просто нравится играть.
Вы действительно верите что обычный школьник хочет понять как квадратное уравнение связано, например, с уравнение движения?
Ваше право считать важными свои убеждения, ваше право воспитывать и учить своих детей как хотите. Ваше право пойти к обычным школьникам и учить как Вы считаете правильно. Только вот глобальная проблема образования от этого не изменится. Если все получиться, то Вы останетесь при своём мнение, а тысячи школьников так и будут забивать на учёбу по разным причинам. Если не получиться, то вы поймёте что финская система образования не реальна пока в наших условиях.
Мозг как мышца
Citation needed.
Очередная "народная" бессмысленная и беспощадная точка зрения. "Упорными тренировками" можно прокачать навык решения заданий из состава этих упорных тренировок. Шаг влево, шаг вправо — навык оказывается бессмысленным. Создадите 100 таких навыков — все 100 окажутся бессмысленными, если входные данные немного не будут подходить. См. про бразильский подход.
Ага, а ещё от армии косят. Только вот ежели что-то существует — то это не значит автоматически, что это хорошо.
> Да 90% школьников хоть завтра бросили бы школу, если бы их не заставляли. И дело чаще всего не в конкретном учителе или коллективе, а просто лень.
Нет, всё дело в том, что школа сейчас — это разновидность тюрьмы. 100% зеков хоть завтра бы ушли из тюрьмы, ежели бы их не держали, но их держат ради «высшей цели». И точно так же, как российская тюрьма не исправляет заключённых, российская школа не учит учеников.
> Можно подумать у кого-то не было ситуации, когда мы говорили родителям или учителям, спасибо, за то что заставили нас что-то сделать и нам это пригодилось.
У меня не было (и не потому, что не заставляли). Ежели у вас было — то мне очень интересно узнать, в чём это заключалось.
> Вы действительно верите что обычный школьник хочет понять как квадратное уравнение связано, например, с уравнение движения?
А вы действительно верите, что каждому школьнику жизненно необходимо это понять и именно в девятом классе? А главное — ни в коем случае не надо понимать ничего из того, что не включено Очень Умными Людьми в школьную программу? Я вот, например, очень хотел понять, отчего меня все в школе опускают, а васю с соседней парты — нет, хотя с виду у нас обоих два глаза и два уха. Но никто мне на этот вопрос не давал ответа, и до сих пор я его не знаю. И ещё много всего я хотел понять, в том числе и по школьной программе, только вот почти всегда так оказывалось, что проходили мы это совсем в другое время, а не тогда, когда я это хотел понять.
Возвращаясь к квадратным уравнениям — школьник наверняка (хотя и не гарантированно) захочет это понять, ежели ему показать, как это связано с, например, стрельбой из танков в игрушках, киданием снежков или выкидыванием бомбочек из окна. Банально сделайте настольный требушет — и всё, вот вам внимание и желание понять. А потом ещё можно на компьютере это смоделировать — вот вам и программирование, и численное интегрирование.
Я вам настоятельно рекомендую (заставить не могу, уж извиняйте) послушать лекции Димы Зицера. www.youtube.com/results?search_query=дима+зицер Вот, например: www.youtube.com/watch?v=S6IUDBnW6nQ. Он в отличие от меня настоящий сварщик, у него и школа есть, где он преподаёт ровно по тем принципам, которые проповедует (и которые я здесь пытаюсь пересказывать). Так что ежели он вас не сможет переубедить — то я тем более не смогу. Только придётся смириться с чудовищным звуком, ибо у него чем хуже звук — тем лучше лекция.
Какая связь между предложенными Вами замечаниями к УМК и моим посылом к осторожному отношению к содержанию с Вашими замечаниями об отношении к детям? Как преподносить учебный материал - это целая наука. А мы говорим о содержании, о том что ломать не строить, все виражи в этапе образования отражаются только через несколько лет.
И при этом нет гарантий, что прошлый казалось бы бесполезный опыт, не повлек за собой развитие фундаментальных навыков.
Можно сколько угодно бить себя в грудь, что я лучше всех знаю, уж я то точно все провально понял. Но проблема в том, что это Ваш опыт, ваш путь, он может не подойти остальной массе.
Вот у меня есть опыт преподавания более 10 лет и в обычной школе и в школе для одарённых, и в колледже, и в ВУЗе, и то я не берусь смелости ломать УМК лучших практивов российской педагогики. А Вы тут разбрасываетесь.
Я не противник этого языка, но считаю что пора бы уже что-то менять. Зачем учить школьников языку, который им не пригодится.
Это наивный подход. На уроках информатики ученик должен получить представление о глобальных концепциях этой науки. Например, о машине фон Неймана. Паскаль для этого прекрасно подходит. Приведу показательный пример - Дональд Кнут с его глобальным трудом "Искусство программирования". Откройте ради интереса и посмотрите - какой язык программирования там используется.
Мне в 10-11 классе выдавали учебник в котором рассказывалось про поисковые системы для интернета. Я считаю что этого вообще не должно существовать - давайте лучше больше расскажем про спам/важность доверия к ресурсу, где ты соглашаешься с лицензией/да просто примерные алгоритмы работы этих самых поисковиков.
А вы сами пользуетесь дополнительными командами поисковых систем?
Про Word/Excel/PP
Это необходимо знать. Большинство выпускников школ никогда не столкнутся с программированием, а вот с документооборотом столкнутся практически все. И как то неприятно, что бухгалтер не умеет сложить 2 + 2 в экселе и сделать правильно отступ в документе.
Многие люди вообще не понимают чем занимаются программисты (глубже "пишут программы") и почему они так нужны всем.
Только практика может показать, что они должны знать многие вещи и в целом, что небольшую программку для "сложить 2 и 2" можно написать самостоятельно за вечер. Определенно здесь не стоит перегибать палку, так как наша задача дать базу, а не выпустить дипломированных специалистов.
И вот тут вы сами противоречите тому, что писали ранее. Вы правильно понимаете конечную задачу обучения - дать базу. Но вы не понимаете элементарной вещи, что язык программирования - это не есть базовые знания.
язык программирования - это не есть базовые знания.
Здесь Вы и правы и в тот-же момент нет. Обьясню. Какой-то язык програмирования Со всеми его возможностями и функциями - да, он может быть и не должен быть базой. И не каждый учитель сможет выбрать именно те базовые элементы из языка, чтобы заинтересовать, а не охладить интерес к програмированию/ит-технологиям.
Но сами принципы языков, логическое мышление - может быть без практики или на примере того языка, которым в состоянии показать учитель - это я считаю сегодня всё равно базой. Програмирование - оно такое разное. От установить будильник на часах, запрограмировать адрес в навигации, расчёт в excel, организация базы данных на примере листа контактов в том-же мобильнике, logo черепашку, lego mindstorm, scratch итд. до настоящего програмирования на ассемблере. Я делал практику ученикам на платинах Arduino. Были просто рады, что под моим указанием, но всё равно своими руками - научили устройство вкючать/выключать светодиоды по нажатию кнопок, измерять и показывать на дисплее растояние до предметов или температуру в помещении. Поэтому именно понятие програмирования - оно должно быть всё равно основой. А ответвления влево и в право - это уже удел учителя по его усмотрению.
В Германии в старших классах изучают програмирование например с помощью www.greenfoot.org и могу сказать, что очень продуманно - от основ, до ООП - разная сложность в языке позволяет каждого ученика по своему заинтересовать.
Какие-такие языки... Мы в школе несколько лет текст в ворде перекрашивали, а в институте - рисовали в тетради морду системника и окно винды, подписывая все части на уровне "это кнопка включения", "это кнопка закрытия окна". Мне 99 из 100 на зачете поставили за то, что файл в экселе открыла.
Меня учили Паскалю, и я этому рад. С/С++ в любых школьных задачах(в институтах для 95% личностей так же) абсолютно бесполезен. Можете попросить в 10-11 классе познакоить преподавателя с любым другим языком, который не имеет динамической типизации. Java/Go отличный выбор. Имхо - питон вообще не нужно учить, как и ts(js)/lua. Для школьников есть скрач и матлаб. Зачем вам в школьном проекте контроль памяти и асм вставки, сложности с потоками i/o. Если вы супергений - вы и сами без препода все выучите и поймете, но тащить остальной класс на 3 изза 1 человека не будет ни 1 преподаватель. Имхо, программирование необходимо вывести из ЕГЭ/ОГЕ/ГосЭкз и тд и тп. Нечего там проверять еще. Любая разработка на любой языке идет на твоем настроенном компе, с заготовленными отлаженными сниппетами, документацией, и Stack Overflow/https://github.com/. В школьный курс 10-11 достаточно включить svn по выбору преподавателя(скорее всего git)
Я тоже учился на Паскале и я сам учил Паскалю отработав 10+ лет разрабом. И со своей экспертизы я могу сказать, что Паскаль сейчас плохой язык для обучения программированию. Во времена, когда второй альтернативой был С/С++, очевидно, что Паскаль был идеален.
Сейчас Паскаль непонятно какую задачу решает. Он достаточно сложен для новичков с его указателями (которые не нужны 97 процентам обучающихся) и при этом не понадобится 100% в реальной жизни.
Я не знаю как в школе, но в техническом универе не для IT специальностей начинать учить нужно на современном, но классическом стэке - что-то типа C#/Java. Вполне можно начать с классических алгоритмов постепенно показывая стандартные классы типа списков и методы из библиотеки типа Linq
Тогда люди будут знать как работает сортировка вообще и будут знать, что обычно в реальной жизни все используют Linq. А завершить все это можно простым Rest Api сервисом и БД через EF, чтобы люди не думали, что в разработке есть магия.
Главная задача - это не напрячь людей, а чтобы они полюбили программирование. Если полюбят, то уже сами выучат что хотят, а если нет, то бесполезен любой язык.
А как вы собираетесь например деревья делать на паскале без указателей? Или список?
Т.е. массивами статическими можно, но это же не то, чему стоит учить?
Деревья — институтский уровень, в моем 11м классе дальше сортировки массива пузырьком мы не добирались, плюс рисовали примитивы в graph.tpu. Однако в использовании компьютера иные успехи одноклассников приводили меня в трепет — один умел в 3D-моделирование, другой в асм-вставки для работы с CRT, и им базовый курс был уже неинтересен. Я, помнится, тоже умел что-то за пределами рассказанного (по меньшей мере умел делать new-dispose), но на таких обычно школьная программа и не рассчитана.
Сортировку массива пузырьком можно на примере яблок разного размера показывать и записывать простым русским языком алгоритм. Если же хоть немного пойти вглубь, то мы столкнемся с указателями и управлением памятью, что очень нежелательно. Поэтому сразу надо брать что проще и комфортнее. А то у нас тут вроде бы массив динамический, но на самом деле внутри статический на 256, вроде нумеровать можно и с 0 и с 1, однако с памятью только с нуля.
Зачем нужна эта борьба?
Турбо-Паскаль позволял массивы длиной до 65520 байт, и общий размер сегмента данных 65520 байт. Но да, такого понятия как динамический массив в школе не было, а было "считаем, что нам больше N массив не дадут" и N честно писалась в константы и массив писался типом array[1..N] of чего-то, а фактическая длина массива лежала рядом в переменной. И только сильно потом появлялась хотя бы record с массивом и длиной в "одном флаконе". А до борьбы, сколько помню, в школе не доходило, она начиналась на первом курсе, когда ставились задачи, требовавшие сильно больше 64Кбайт данных. И вот там я с указателями маялся, но, быв научен (правда, вне школы) контролю границ, на чушь на выходе нарывался редко.
Это Вы так о Паскале, потому что Ваши сведения о нем застыли на уровне максимум 2000 года.
Указатели - да, сейчас они не нужны. Совсем.
Списки Вам на C# хочется? LINQ? Итераторы? Сортировку? Ну получите на Паскаль
##
var a := Lst(5, 8, 12, 7, -4);
a.Println; // 5 8 12 7 -4
Println('Размер списка равен ', a.Count); // Размер списка равен 5
a += 9;
a.Println; // 5 8 12 7 -4 9
a.Sort;
a.Println; // -4 5 7 8 9 12
a.RemoveAll(t -> t in 3..8);
a.Println; // -4 9 12
a += Lst(8, 11, 6);
a.Println; // -4 9 12 8 11 6
var b := SeqGen(5, i -> 2 * i + 1).Where(t -> t < 10).ToList;
b.Println; // 1 3 5 7 9
a.Intersect(b).Print // пересечение списков, результат 9
Если писать на дотнете, то я выбирать буду C#
А речь не о том, на чем лично Вы писать будете. Вам напомнить Вами же написанное, Вы же о человечестве печетесь:
Сейчас Паскаль непонятно какую задачу решает. Он достаточно сложен для новичков с его указателями (которые не нужны 97 процентам обучающихся) и при этом не понадобится 100% в реальной жизни.
Я не знаю как в школе, но в техническом универе не для IT специальностей начинать учить нужно на современном, но классическом стэке - что-то типа C#/Java. Вполне можно начать с классических алгоритмов постепенно показывая стандартные классы типа списков и методы из библиотеки типа Linq
Тогда люди будут знать как работает сортировка вообще и будут знать, что обычно в реальной жизни все используют Linq. А завершить все это можно простым Rest Api сервисом и БД через EF, чтобы люди не думали, что в разработке есть магия.
Главная задача - это не напрячь людей, а чтобы они полюбили программирование. Если полюбят, то уже сами выучат что хотят, а если нет, то бесполезен любой язык.
Речь не вузах идет, - о школе. В которой, Вы пишете, "я не знаю как". Там давать массово C# - это пустая затея. А вот давать все прочее, Вами перечисленное можно и без всяких C#, на привычном Паскале, в котoром все это есть и реализовано нагляднее, короче и понятнее, чем в C#. Для того этот современный Паскаль и писался, чтобы на нем отработать современные технологии программирования, а потом за 1-2 месяца свободно перейти на тот же C#. Поэтому не надо поминать TurboPascal - это все равно, что рассказывая о современном самолете, сравнивать его с планером начала 20 века.
хех... а меня в 9 классе (1999 год) учили печатать вообще... одним пальчиком, с поиском нужной клавиши по минуте...
А с программированием вообще забавно вышло. Учитель рассказал про синтаксис, основные операторы, формат программы. Продемонстрировал разные красивые графические эффекты типа шариков летающих по экрану ну и т.д. Написал даже на доске пример который заполняет массив из 10 ячеек по очереди от 1 до 10. И говорит "А теперь напишите такую же программу но что бы заполняла в обратном порядке от 10 до 1" и мы такие луп-луп глазами. Чего??? Что он от нас хочет??? В итоге он плюнул на нас и выдал листик А4 на котором было кратко написано что-то около 50 подобных стандартных алгоритмов.
Когда я уже был в 11 классе (2002 год), в 5 классе обучали детей в пейнте не бояться мышки и смотреть в монитор, а не на стол.
Когда я в 2003 зашел в класс информатики я увидел вместо пяти "Поиск 2", и по парочке двоек, троек и пеньков - штук десять дюрон 600 и старые компы объединённые в терминальную сеть, сервером в которой выступал пенек аж с 384 МБ памяти!!! И все это работало на Мандриве... в 2003 году!!! Представляете? Ученики писали свои программы на Паскале в KLite и компилить через Taurus (вроде такое название было) в консоле. Еще и в ОпенОфисе сдавали зачет с учетом времени на печать + оформление текста в 9 классе. А больше всего меня поразил на тот момент факт, как они с умным видом по ssh подключали свой личный домашний каталог, расположенный на фиг знает каком винте к текущей машине. И ко всему к этому были написаны подробные методички, а преподаватель по факту только принимал лабы. Вот что лень животворящая творит. Ну и преподаватель который закончил вуз по специальности информатика+математика, а не "трудовик". Правда вот все это ну никак не улучшила способность учеников в написании программ или построению связных таблиц в БД. Потому как даже 2-4 часа в неделю это очень мало, что бы научиться с компом полноценно работать. Я в банальном тренажёре мышки (на скорость отмечать (ЛКМ/ПКМ/дабл клики/одновременные клики на выбор) нужные объекты на время) побил текущий рекорд более чем в 3 раза. Просто пользуясь компом по 3+ часов в день в режиме браузера предыдущий год.
А тут... Паскаль не угодил... пф... в школе хорошо если алгоритмику нормально расскажут. Мне то в институте Паскаль ну совсем не пригодился. Первый семестр - Си, второй - Асм, третий - Си++ под Линукс-кластер, четвертый - Java, пятый+шестой - вычматы. На Факультете Молекулярной и Биологический Физики. Ага... хорошо хоть разных ТРЯП не было %)
Кстати претензии к Офису не понятны... нас заставляли оформлять лабы (по ГОСТу) в печатном виде с правильно оформленными таблицами значений (за 6 знаков после запятой можно и кол схлопотать было) и диаграммами (графики не от нуля - бо-бо!!!) с расчетом статистической погрешности и линии тренда. Причем не через встроенные инструменты, а самим через формулы в таблице. А уж итерационный метод подбора значений - это вообще первый инструмент открытый для себя :)
И вообще... сравнивать реалии 2021 года с программой которую адаптировали с времен массового появления компов у населения... ну такое... в школьном разделе Истории для этого придумали такое понятие как Новейшая История, которая охватывает ближайшие 10-15 лет. А информатике как школьному предмету дай бог 30+ лет будет. Пройдет еще лет 20-30 - будет уже выверенная методика подачи базиса который не будет привязан ни к определенным ОС, ни к ПО, ни ЯП.
Есть одно высказывание, которое мне очень нравится.
Образование - это то что останется, когда вы забудете всё, чему вас учили.
Умение программировать это не знание синтаксиса определённого языка. Совершенно не важна применимость первого языка. Я студентам вообще Brainfuck рекомендую посмотреть (не как первый, а скорее как 3-4 язык). Да и не совсем понимаю, зачем вообще всех учить программировать, большинство всё равно не справится.
В результате опроса выяснилось, что большая часть студентов учила в школе Pascal. Я не противник этого языка, но считаю что пора бы уже что-то менять. Зачем учить школьников языку, который им не пригодится. Давайте просто сменим ЯП на современные, например Python (для любителей выражать свои мысли без заморочек) и Си/С++ (для любителей строгости и лаконичности). В целом тут может быть почти любой ЯП. В целом тут можно долго обсуждать про то, что важнее навыки, а не реализация, но я считаю что если мы не учим гуманитариев счету только на римских цифрах, то почему мы не делаем так же с информатикой.Смотрю на хабре неделя ненависти к Pascal. Можно указать конкретные проблемы языка, в разрезе обучения «программированию» и «алгоритмизации», а не «тяп—ляп подключили AAA подключили BBB — поздравляю уважаемые ученики, вы написали свою нейросеть»
Давайте просто сменим ЯП на современные, например Python (для любителей выражать свои мысли без заморочек) и Си/С++ (для любителей строгости и лаконичности).И да, когда Си — стал «современным» языком, C и Pascal — ровесники.
Сказ о том, что стоит поменять (удалять) в школьном курсе информатики
Может, "удалить" будет более по-русски? ))
Давайте просто сменим ЯП на современные
давайте сделаем хорошие и бесплатные курсы
давайте лучше больше расскажем про спам
А давайте! Поступайте на службу в соответствующее министерство и займитесь там на досуге вот этим вот всем.
Постепенно, очень медленно подходит Время, когда молодые учителя уже естественным образом сами не готовы к Паскалю, поэтому возможно Pythonу все-таки быть… Без серьезных реформ, а как бы постепенно, само-собой.
Очень странное понимание школьной программы... Математика - это база для химии, физики и информатики. Ее не грех повторять во всех этих предметах. Информатика без математической базы... Ну, возможно, что в современном программировании востребованы и такие кадры, типа формы клепать или что-то подобное, но, если честно, мне сложно это считать программированием.
Возможно, что действительно паскаль из школьной программы стоит заменить... На Ершова:). Чтобы избавиться от подобных статей...
По поводу же обучения информатики как школьного, так и вузовского стоит почитать статьи Арнольда по математическому образованию. Дорогие любимые Бурбаки на самом деле загадили не только математическое образование, но и информатику. Мне вот очень интересно, много ли таких, кто с первого раза въехал по учебнику в основные концепции ООП? Когда дается определение и пара абстрактных примеров, которые студенту не близки... Или же уже есть учебники, где это более или менее прилично на пальцах разъясняется?
Ну а автору и всем его последователям мой совет - не надо топить за преподавание на "современном" языке программирования. С большой вероятностью к моменту устройства на работу будут уже более актуальные, а этот может вообще сгинуть.
Ну а правильное обучение - это дать небольшую базу ученику (в частном порядке, от родителей детям, например) и посадить его на биржу заданий, где он будет за небольшую плату писать маленькие реальные программы и учиться на живых примерах. И начинать ему это стоит за 3-5 лет до поступления в вуз. И к институту у него уже будет представление о своем базовом языке программирования, на котором он будет делать все задания, которые не требуют конкретного изучаемого языка. Если же по уму, то в институте вообще не стоит изучать больше пары-тройки языков, при этом давая возможность написания проектов на любом удобном (в том числе и не изучаемом) для студента. Все равно выпускник пойдет искать работу, связанную с его основным языком.
Хотите посмотреть, как можно "въехать в ООП" c нуля и "без Бурбаки"? Попробуйте почитать тут со стр. 445: http://pascalabc.net/downloads/OsipovBook/КнигаДляСайта.pdf
Например, на основе чертежа скворечника можно делать только объекты одного типа – скворечники. Разного размера, по-разному раскрашенные, даже из разного материала.
Я не знаю, что было в оригинале, но на основе ЧЕРТЕЖА нельзя получить разного размера. Это вообще из явных косяков. Чувак очевидно программист и далек от производства.
А сам текст не пойдет для начинающих просто никак. Да он вообще никакой. Автор скачет с одного на другое, приводя левые примеры, которые могут быть понятны уже знающему ООП, но для начинающего нужны объяснения. А судя по приведенной ошибке, автор вообще не сильно задумывался при написании и на логику объяснения просто клал.
Дискутировать не буду, просто рекомендую это попробовать объяснить тому, кто не знает ООП.
Видимо, ни одно объяснение, кроме написанного лично Вами, не будет признано достойным внимания )))
О "скврешнике". А как по-Вашему, выглядят чертежи для строительства сооружений той или иной серии? Ну там сарайчики, навесы и т.п. Они внешне могут выглядеть одинаково, но отличаются размерами и раскраской. Как выглядят выкройки одежды конкретного фасона для разных размеров и разных материалов? Одинаково. Для каждого размера там масштабирование делается. Неправильно сводить все к сборочным машиностроительным чертежам.
А дискутировать и правда Вам не стоит. Вы не даете объяснений, приводя свои оценки не вместе с ними, а вместо.
В немецких школах большинства земель стандартным ООП-языком является Java. С 10 класса в форме Greenfoot, затем BlueJ (основы ООП, алгоритмы сортировки и поиска). В 8 классе по программе HTML/CSS/JavaScript, Lego Mindstorms EV3 и Python. В 9 Arduino. В старших классах (11,12,13) есть SQL, совсем немного Haskell и Prolog.
После возвращения к девятилетней гимназии (G9) программы продолжают изменяться и у 5 класса в этом году, к примеру, уже будет один час информатики в неделю.
Использование прикладного ПО вроде офисного пакета и графических редакторов — ITG (Informationstechnische Grundbildung) основый «компьютерной грамотности» должны быть интегрированны в основные предметы (математика, немецкий, иностранные языки). По факту до этого ещё далеко.
>> Давайте просто сменим ЯП на современные, например Python (для любителей выражать свои мысли без заморочек) и Си/С++ (для любителей строгости и лаконичности).
Ничем не лучше, в случае с C нужно еще будет объяснить кучу системно-зависимых вещей (например про сигнатуру main() или про компоновщик) или оставить это как «магию» (что крайне непедагогично).
>> Они сами разберутся с тем, что им нужно и просто воспользуются инструментами — я считаю что тут важнее база, которая позволит в будущем быстро разобраться, а не то, как поставить «красную» букву.
Во-первых, эти инструменты проходят в 5-6-7 классах, там реально важнее уметь быть «пользователем ПК», нежели чем программистом. Причем пользователем ПК сейчас нужно быть ВСЕМ, а программистов единицы. Вот где-то в этой секции возможно стоит добавить про спам, SSL, фишинг и все такое.
>> В идеале нужно полностью поменять ЕГЭ — в моем мире в нем все еще есть первая часть, где все еще нужно посчитать размер файла или то, чему будет равно какое-то число при неравномерном двоичном коде.
То есть про регистры и IEEE754 автор хочет рассказать детям, а про two's complement нет? Это как, раздвоение личности?
Да, паскаль бы я давно заменил на что-то более актуальное, в идеале на типизированное C#/Java/Kotlin. Первым все же меньше всего возни.
Про Word/Excel/PP. То что большинство программистов используют Word для документации, РР для презентации клиентам, менеджменту или колегам, а в Excel используют в лучшем случае сводные таблицы. Не значит что эти инструменты не нужно изучать.
Во первых не все будут программистами, во вторых Excel, это очень мощный инструмент в руках опытных пользователей. С добавлением туда PowerQuery, стал ещё более мощный.
Плюс на базе Excel можно показать алгоритмы и как программирование может помочь в решении ежедневных задач.
Excel очень широко применяется и часто является чуть ли не единственным инструментом для решения определённых задач, где разработка/покупка ПО за весь срок эксплуатации не окупится. Я часто был свидетелем того, когда от замены Excel в определённом процессе отказывались. Чисто из-за стоимости разработки замены или невозможности существенно уменьшить обьем работы выполняемой пользователем.
Я бы в программу добавил Access, отличный способ выучить БД, и понять что можно своими руками сделать простую систему например для учёта склада, или регистрации торговых операций и т.д.
Так что лучше пусть детально изучать те инструменты, которые потом будут нужны даже в обычной жизни, а не то что им потом в жизни будет не нужно. Школа это не только подготовка к университету и не только программистов . Для многих это последний шаг в обучение.
Нужный язык базово можно выучить на курсах, даже бесплатных, с большей эффективностью чем в классе.
Многие люди вообще не понимают чем занимаются программисты (глубже "пишут программы") и почему они так нужны всем.
"Незаменимость" программиста, это результат того, что люди не умеют пользоваться тем ПО что есть и считают, что программисты могут решить любую проблему.
Я не считаю, что нужно убрать Office вообще - в моем представлении его нужно сократить - так как там регулярно проходятся вещи, которые обычному (рядовому) пользователю не нужны.
Примерно ту же задачу должны преследовать естественные науки — привить научное мышление, что чудес не бывает, и если что-то ведет себя не так, как мы ожидаем, надо не лоб разбивать, а голову напрячь.
Минусов что-ли отхватить? :-)
Давным давно информатика в школе была странной хренью для гиков и ботаников и была настолько оторвана от реальной жизни, как впрочем и многое другое в школе. Поэтому по большому счету было совершенно не важно как и чему там учить. В реальной жизни оно все равно не встречалось.
Сейчас, когда компьютер используется всеми и постоянно, всё обучение можно замечательно приземлять на реальный пользовательский опыт, разбирая и показывая как работают реальные вещи. От Тиктока и Ютюба, как представителей веб-технологий, до компьютерных игрушек.
В школах очень любят учить через синтез. В реальной жизни, ты учишься через анализ. Яркий пример, тебя кинули на незнакомый проект и тебе нужно разбираться как он работает.
Хочу ответить как учитель информатики (РБ). Давайте все же начнем с того, что многим из нас может казаться "ой, так это же совсем просто, зачем это детям?". На самом деле это далеко не так. Многие даже банальные темы, у детей могут вызвать действительно затруднения даже в тех местах которые нам кажутся очень простыми. У нас есть в наши годы какой-то минимально накопленный опыт, исходя из которого мы можем делать определенные логические заключения, выводы и так далее. В головах детей такого чаще всего нет (если иметь в виду среднестатистического школьника).
Ничего не имею против Паскаля в школе. Его главная цель это дать понимание детям что такое алгоритм и как его записать на "языке компьютера". Совсем не важно на каком языке вы будете это делать. Главное дать основу. Почему не C/Java/Python? Просто потому что для этого придется переписывать учебники. В рамках школы звучит не так уж и страшно, а вот если подумать немного шире - то уже в рамках города возникают трудности с согласовать/напечатать/доставить/ознакомить преподавателей с новыми методиками обучения учащихся. Но, вот в этом году заметил что появились факультативные занятия с использованием C#, Python. Двигаемся вперед, пусть и немного медленно.
Про офис и все что с ним связано. Лично я категорически против убирать это из школьной программы. Придя даже в среднее специальное учебное заведение ученики моментально сталкиваются с таким фактором как требования к оформлению работ и для многих это действительно очень трудно.
Я не говорю убрать - я говорю сократить. Когда дети несколько четвертей занимаются условным вордом - это не нормально, как минимум убирает желание ходить на информатику, как максимум просто бесполезная трата времени.
В моем представлении уровень ворда должен быть на уровне "есть гост, давайте оформим по нему работу" (естественно не прям в таком виде, но все же), когда детей учат ставить "красную букву" (которая в начале параграфа и имеет размер больше чем 1 строка - как в древних книгах) - это не нормально и физически никому не нужно - если кому-то потом понадобиться, то ребенок сможет найти это где-то сам. Основной смысл школы дать базу, а сейчас получается - мы не учим детей программированию (что правильно - смысл просто показать что такое алгоритмы), но при этом учим детей владеть офисом на уровне секретаря.
Я не говорю убрать — я говорю сократить. Когда дети несколько четвертей занимаются условным вордом — это не нормально, как минимум убирает желание ходить на информатику, как максимум просто бесполезная трата времени.
владение Вордом (нормальное, правильное) — принесет пользу гораздо большему числу учеников, нежели изучение паскаля. А «цифровая гигиена» — принесет больше пользы, чем теория графов, маски подсетей, таблицы истинности и т.п.
с другой стороны, без паскаля, графов, таблиц истинности — мы не покажем красоту отрасли знаний, потеряем заинтересованных. хотя, может, и не отпугнем тех, у кого «программисты целый день в игрушки играют».
учим детей владеть офисом на уровне секретаря.— хоссспадя, да кто из выпускников вообще умеет пользоваться офисом-то? сколько процентов? два? Пять? куда они потом деваются-то, если даже в госдуме законопроекты пробелами и табами форматируют…
когда детей учат ставить «красную букву»— так это формирование вполне логичного навыка: выбрать объект, над которым делаешь действие (параграф), выбрать действие (Буквица ли, красная строка ли, выравнивание ли...). Забавно, что не понимая этого, вы беретесь судить о каких-то «владеть офисом уровнях секретаря»
Школьные программы по информатике - лучшее средство отвратить от нее даже тех, кто очень-очень рвался ее изучать.
Категорически с вами согласен и рад что вы всё понимаете именно так и находите силы и возможности преподавать.
Вы в целом предлагаете достаточно разумные вещи (к некоторым деталям можно было бы придраться, но не буду). Проблема в том, что это всё уже есть. Просто откройте любой пробный ЕГЭ по информатике этого года, там все изменения в правильном направлении. Откройте профильный учебник К.Ю.Полякова и Е.А. Еремина, там более чем достаточно материала, а главы, которые касаются программирования, доступны в версиях для Питона, Паскаля и Си++.
Проблема не в школьной программе и не в учебниках. Проблема в учителях, а точнее в условиях их работы. Обладая знаниями, необходимыми для преподавания школьной информатики на профильном уровне, человек автоматически обладает знаниями, достаточными для трудоустройства как минимум джуном на том же Питоне - только вот зарплаты в школах многократно меньше (за редкими исключениями). Выводы, мне кажется, очевидны.
Как много вразуметельных слов! Не могу голосовать, но подписываюсь под каждым вашим словом. Именно это и есть корень проблемы. Но будет ли она решёна - вот в чем вопрос.
Проблема не в школьной программе и не в учебниках. Проблема в учителях, а точнее в условиях их работы. Обладая знаниями, необходимыми для преподавания школьной информатики на профильном уровне, человек автоматически обладает знаниями, достаточными для трудоустройства как минимум джуном на том же Питоне — только вот зарплаты в школах многократно меньше (за редкими исключениями). Выводы, мне кажется, очевидны.
Имхо, тут такая штука — не каждый кто может, хочет становиться джуном на Питоне, некоторые, как ни странно, хотят быть учителем.
Да, конечно, вы правы. Я сам отношусь к этой категории, мне очень нравится работать учителем :) По ряду причин, на мне нет обязанностей по содержанию семьи и обеспечению достойного будущего своих детей, поэтому меньших по сравнению с разработкой денег хватает (тем более я работаю в достаточно элитной школе, с финансами у нас существенно лучше, чем в среднем по региону). Есть у других людей и другие причины не гнаться за деньгами, я в этом уверен. Как уверен и в том, что между достойным будущим семьи и работой в школе большинство людей всё-таки выберут первое.
Как по мне, питон намного проще Паскаля. И намного больше библиотек, при этом много дефолтных - можно сделать много интересного. Там есть turtle, что как scratch на питоне. Идеальный язык для начала, поймет даже тупой, но учителя не поймут?!
Да и б научили лучше как переустанавливать виндовс / качать торренты / не хватать вирусы. С этим больше всего беда
Для меня информатика была уроком, где я показывал самодельные вирусы удивлённым одноклассникам, некоторые и по сей день думают, что монитор перед ними - это и есть процессор.
Чтобы понять, как мы к этому пришли, надо начать с СССР. В СССР не просто образование было системой, а всё в эту систему входило. То есть, вот есть СССР, и у этого СССР есть голова, и СССР этой головой думает, и мысли транслирует дальше подчинённым органам. Давайте почитаем, как жил СССР:
https://www.nfitmivt.ru/press/?article=369 https://www.iis.nsk.su/memories/wgroup_6
Обратите внимание, кто здесь субъект действия. Академия наук. Институт. Рабочая группа. То есть, настоящие учёные. И работают эти учёные в интересах страны, а не в интересах частного кармана. Учёный, работающий в интересах страны, может и делает как лучше. С ним можно поговорить о том, как сделать лучше.
В СССР, как не стало Сталина, задавили личную инициативу. Зря. Ну а сейчас маятник в противоположной стороне.
Сейчас голову отрезали. Академия наук не пишет нам ОС. Не пишет трансляторы. Всё барыги да барыги. С барыгой вы так не поговорите, как лучше. Барыга трясётся в первую очередь за свой карман, и кто на него работают, тоже оторваны от остального общества. И не надо смотреть в рот барыгам. Там ничего нет. Если барыга выбрал какой-то язык программирования, то это не потому, что он умный такой. Нет.
Вот вам зарплата вовремя не придёт, и побежите вы снимать аренду с кредитной карты, с процентами и без льготного периода. Не потому что умный. А потому что пришлось. Вот так же и барыга. Пришлось C++. Пришлось Питон. Пришлось. Нет сил сделать как надо, делаем тяп-ляп. А школота восхищается, принимает за чистую монету.
Всё, что делают частники, — это умереть завтра, а не сегодня. Я сколько работал, у всех цейтнот. Раньше-то у учёных было социалистическое соревнование, но был и обмен. А сейчас никто ничем не делится. Сидят барыги по углам врозь — плохо, обмена опытом нет, каждый заново с нуля делает, и каждый в цейтноте. Договорились барыги, трест образовали — тоже плохо. Можно сидеть, стричь купоны и не развиваться. И вот на этих людей вы равняетесь как на образец?! На барыг.
У нас в стране сейчас потребность есть криптографию внедрить собственную и операционную систему. Но занимаются этим частники. Частники пишут криптопровайдеры, частники выпускают дистрибутивы Линукс. Ну, если в Линукс взаимообен ещё возможен, то криптографию окучили недружественные друг к другу частники, и поэтому у нас не глобально OpenSSL, NSS и SparkNaCl поддержали ГОСТ, а только из частных рук можно получить особую сборку, подчас с нарушеним GPL. И от того, что наши ГОСТ не внедряются, пока кто-то не заплатит, в транснациональных продуктах их из коробки не появляется, и криптография по факту чужая.
Да оттуда кричат о помощи. Спасите, помогите! Мы после того, как зашли в болото, только и делаем, что тонем в нём. Бултыхаемся тщетно. Изнутри спасение не придёт. Спасения приходится просить снаружи, там, где коммерциализация ещё не убила здравый смысл. Вот, например, в школе и в университете. Пусть в школе и университете учат как надо, по высшему разряду. Прививают хороший вкус. И для этого подходит Паскаль, а ещё лучше Ада. С модульностью и типизацией. Да, в производстве может потребоваться погрузиться в кровавый энтерпрайз. Но хотя бы пример перед глазами хороший был. Может быть, как-нибудь, всё же выкарабкаемся из болота, из всех этих плюсов и питонов. Без функционирующего государства, без Академии наук сделать это будет не так-то просто. Но теплится надежда. Будет когда-нибудь свет в конце тоннеля. Отыграем всё назад.
И поделюсь своими соображениями, чего не хватает. У нас информатика однобоко подаётся как алгоритмы, но есть ведь и разные способы их закодировать, повыворачивать наизнанку. Например:
пишем рекурсивную программу на системном стеке
заменяем системный стек пользовательским
заменяем пользовательский стек чем-то, что не стек, а, например, очередь
Также стоит научить вручную делать:
стиль передачи продолжений (continuation passing style)
батутизация (trampolined style)
корутинизация (активный обход дерева с какой-нибудь изюминкой в структуре переделать в пассивный генератор)
Я вижу зияющую пропасть в преподавании этих техник. Это какая-то ненастоящая информатика, не достойная преподавания. Но почему?
Если у нас в старших классах было интегрирование рациональных функций с полинонами в числителе и знаменателе, и мы кропотливо раскладывали на сумму a/(bx+c), которые интегрируются в логарифм, то почему бы и на информатике что-нибудь кропотливо не разложить? Вот это в жизни, мне кажется, пригождается, а кто не знает, тот лажает на ровном месте.
Зачем учить школьников языку, который им не пригодится.
Перечитал, и ещё пришла идея, что школьников младших классов надо учить, что миллионы роутеров взломали потому что программа на плохом языке была написана, и её ещё не переписали на Аду, чтоб больше такого не повторялось. И вообще свойствам языков программирования по верхам научить.
Чтоб на экзамене ОГЭ примерно так:
Выберите один ответ
Язык C++:
[_] Не тормозит и не глючит
[X] Не тормозит, но глючит
[_] Тормозит, но не глючит
[_] Тормозит и глючит
Язык Java:
[_] Не тормозит и не глючит
[_] Не тормозит, но глючит
[X] Тормозит, но не глючит
[_] Тормозит и глючит
Язык Python:
[_] Не тормозит и не глючит
[_] Не тормозит, но глючит
[_] Тормозит, но не глючит
[X] Тормозит и глючит
Язык Ada:
[X] Не тормозит и не глючит
[_] Не тормозит, но глючит
[_] Тормозит, но не глючит
[_] Тормозит и глючит
Во-первых, писалось S\360, слэш был обратный. Во вторых, были и S\370 ("Ряд-2", например, EC-1033, ЕС-1045, ЕС-1060 и "Ряд-3" - ЕС-1036 и пр.)
И да, страна-то развалилась, но от этого академиков меньше не стало. Как говорят, что история нас учит, что мы у истории ничему не учимся.
Сломить взятый политический курс на самоликвидацию не смогли, конечно, с уровня Академии наук, но что им позволялось, то шло отлично, явно лучше, чем сейчас, когда никто не занимается.
чертовщина же: академии есть, ученые работающие на благо страны есть — а софта нет
Спорное утверждение. Вот, например, по моим ссылкам упомянуты 7 советских трансляторов языка Ада и два зарубежных, ГДР и Венгрия. 9 трансляторов языка Ада!
У меня вопрос, а куда это всё делось? Ведь я же могу почитать исходные коды несоветского Ada/Ed, исходные коды несоветских Mesa и MULTICS, не говоря уже о до сих пор поддерживаемых Emacs.
Продолжая тему, Вера Петрашкова рассказала о долгих дискуссиях в проекте Ада-Эльбрус, относящихся к договоренности относительно имен процедур и функций и переменных. Сережа Запреев, уставший от этих долгих обсуждений, перестал принимать в них участие и перешел непосредственно к программированию. Когда через некоторое время, придя к консенсусу, участники проекта собрались перейти к кодированию, оказалось, что Сережа свою часть уже почти закончил. Но она совершенно не вписывалась в придуманную всеми красивую и логическую схему проекта...
Очень хотел бы посмотреть на неправильно названные процедуры и переменные советского учёного Сергея Запреева, но почему-то не могу, и так со всеми 7 трансляторами. Все 7 куда-то запропастились.
А из-за того, что они потерялись, начинают циркулировать вот такие слухи о том, что не было софта. Да нет, был, но кто же его хоронит принудительно, чтоб из текущего дня казалось, что не было?
Если почитать, то многое, что выдавалось за своё- было хорошое, но часто всё же не наше. Не уменьшаю вклад отдельных людей, но тренд был такой - в моде, с атомными бомбами, электронными устройствами, быт. техникой и не исключение - программным обеспечением. Когда Стив Вознияк создавал прототипы Apple, то у нас об этом и духом не пахло. А видеть какое то особенное стремление, что то "настоящее наше" спрятать от общества- какая то теория заговора, не больше..
Вот, например, по моим ссылкам упомянуты 7 советских трансляторов языка Ада и два зарубежных, ГДР и Венгрия. 9 трансляторов языка Ада!
ага, помню:
«Один раз я даже управлял департаментом И странно: директор уехал, куда уехал — неизвестно. Ну, натурально пошли толки: как, что, кому занять место? Многие из генералов находились охотники и брались, но подойдут, бывало, — нет, мудрено. Кажется, и легко на вид, а рассмотришь — просто черт возьми! После видят, нечего делать, — ко мне. И в ту же минуту по улицам курьеры, курьеры курьеры… можете представить себе, тридцать пять тысяч одних курьеров! Каково положение, я спрашиваю?»
Вон Паронджанов рассказывает регулярно, что на ДУРАКОНе софт Бурана проектировался…
Сломить взятый политический курс на самоликвидацию не смогли, конечно, с уровня Академии наук, но что им позволялось, то шло отлично, явно лучше, чем сейчас, когда никто не занимается.Если политический строй был нацелен на самоуничтожение — может, и правильно, что ему дали самоуничтожиться?
У меня вопрос, а куда это всё делось? Ведь я же могу почитать исходные коды несоветского Ada/Ed, исходные коды несоветских Mesa и MULTICS, не говоря уже о до сих пор поддерживаемых Emacs.а оно вообще было? не в виде «в придуманной всеми красивой и логической схеме проекта...», и не в виде «законченой Сережей части», не вписывающейся в проект, а в виде готовых распространяемых продуктов типа «несоветских Ada/EdMesa и MULTICS»? Вот представьте, получите вы сейчас «расово советские электронные таблицы ВАРИТАБ», заглянете в них — а там не везде убрано слово «SUPERCALC». вот ведь позорище будет… а если так будет с 2/3 расово советских трансляторов с АДА?
Да нет, был, но кто же его хоронит принудительно, чтоб из текущего дня казалось, что не было?я и в студенческие (советские) годы не сильно много отечественного софта видел… т.е. заговор против советского софта начался в минимум в 1984? Т.е. как у Ерофеева? «Антирусский заговор, безусловно, существует – проблема только в том, что в нем участвует все взрослое население России»?
ну вот я лишь несколько лет назад, как катушку ленты выкинул. много там чего было для СМ/PDP, того, что на кафедре было — но вот отечественного, кроме редактора МИМ, не помню, но софта, ни доков. Одна советская софтина на всю ленту — слабовато. Видимо, и в остальном отечественный софт был в следовых количествах. ИМХО — либо потому, что он не был «продуктом» (т.е. готовым к использованию, понятным либо документированным, более-менее стабильным в работе и декларированным как развивающийся), либо был опоздавшим и не имеющим никаких преимуществ для миграции на него.
Вон Паронджанов рассказывает регулярно, что на ДУРАКОНе софт Бурана проектировался…
Про Буран не знаю, но если вы посмотрите, какие языки программирования получили ГОСТ, а какие не получили, хотя, казалось бы, ровесники, то заметите некоторый уклон советской науки. Для большей рельефности можно поинтересоваться, сколько странице в ГОСТе, как положено много или 4 страницы, и на предпоследней написано настоящим стандартом считать ISO такой-то. Так можно понять, что учёные считали нужным, а что — нет.
а оно вообще было? не в виде «в придуманной всеми красивой и логической схеме проекта...», и не в виде «законченой Сережей части», не вписывающейся в проект, а в виде готовых распространяемых продуктов типа «несоветских Ada/Ed, Mesa и MULTICS»? Вот представьте, получите вы сейчас «расово советские электронные таблицы ВАРИТАБ», заглянете в них — а там не везде убрано слово «SUPERCALC». вот ведь позорище будет… а если так будет с 2/3 расово советских трансляторов с АДА?
Вот чтоб таких кривотолков не было, и нужны артефакты расово советских Ершолов и пр.
9. Рыбин С.И. рассказал о методике тестирования диагностики транслятора (вообще, и языка Ада в частности), разрабатываемой в МГУ под руководством Кауфмана В.Ш. Приведены данные по оценке качества и диагностики трех трансляторов Лада, Ада-Эльбрус и венгерская Ада ЕС; из них видно, что качество диагностики Ада-Эльбрус – лучшее из трех систем.
В чём-то же они ковырялись.
я и в студенческие (советские) годы не сильно много отечественного софта видел… т.е. заговор против советского софта начался в минимум в 1984? Т.е. как у Ерофеева? «Антирусский заговор, безусловно, существует – проблема только в том, что в нем участвует все взрослое население России»?
Я так понимаю, Ада-Эльбрус как раз в НФ ИТМиВТ была, и сейчас этот шедевр лежит в застенках либо МЦСТ, либо УниПро. И цитата про устройство антисоветского заговора не так уж далека от истины. Вот эти МЦСТ и УниПро шедевром не хотят поделиться с миром, лежат как собака на сене. А ещё, пока я рылся в этой теме, нашёл кучу книг под авторством Запреева, вот только электронных версий у них нет в Сети.
И тут у меня просто рвётся шаблон. Да был бы я автором, давно уже отсканил. Если нельзя официально, выложил бы пираткой. Если они всё ещё представляют коммерческую ценность, договорился о продаже хотя бы через Print-on-Demand. И пусть все знают, какой я умный. Но Сергей Запреев ничего такого не сделал. Томятся где-то в застенках библиотек книги неоцифрованные. Томится где-то в застенках лучшая советская Ада-Эльбрус. Забава отечественная, свои шедевры хоронить в застенках.
Также я отношу к «заговору» то, как поступили с советским кино. Делали коммунисты для коммунистов, а новый закон написали так, что какие-то владельцы авторских прав на общественное достояние нарисовались, и бдительно следят, чтоб никто фрагмент советского кино в ролик не вставил, чтоб поскорее забывали, что оно у нас вообще было, и о чём оно было.
Если политический строй был нацелен на самоуничтожение — может, и правильно, что ему дали самоуничтожиться?
Вектор на самоуничтожение придали фашисты. Хотя физически не сломили, но выбили самых лучших, и неваляшку нашу наклонили так, что она всё же упала. Не считаю правильным дело фашистов и его долгосрочные последствия.
Вы ещё уверены, что вы на правильном портале?
Какие фашисты, какие вектора на самоуничтожение, какое советское кино, которое никуда нельзя вставить, какие шедевры в застенках? Дяденька, может быть два раза подумать, перед тем, как такое писать.
какое советское кино, которое никуда нельзя вставить
Ну попробуйте вставьте фрагмент, страйк будет за копирование общественного достояния. Вот типичный ролик, где приходится специально укорачивать видеоцитаты, чтоб страйка не было. Вы этого не знали?
И за прощание Славянки, и за многие другие военные песни в общественном достоянии страйки прилетают. Монтировал про ветеранов, вся лента в страйках была. Вымарывается всё советское. Видимо, успешно, раз вы даже не знаете о таком явлении.
какие шедевры в застенках
Ада-Эльбрус проецирует адскую синтаксическую инкапсуляцию памяти на аппаратную защиту советского Эльбруса, и это круто. Современный lcc -mptr128 пытается натянуть сову на глобус. Входным языком берёт не Аду, а Си, где нет синтаксиса для контроля целостности и инкапсуляции. Например, в языке Ада можно передать в процедуру отрезок массива, и Ада пресечёт выход за этот отрезок, а современный Эльбрус поймает только выход за весь массив. Синтаксиса для сужения диапазона жирного указателя в Си нет.
Вот и где Ада-Эльбрус лежит, очень мне интересно, и как она там оказалась, и почему не в общественном достоянии.
Какие фашисты, какие вектора на самоуничтожение
Я согласен с официальной китайской версией о том, что СССР пошёл после 60х не туда.
Ада-Эльбрус проецирует адскую синтаксическую инкапсуляцию памяти на аппаратную защиту советского Эльбруса, и это круто.
По мне - какой-то набор слов. Вроде умных, но вместе - ничего не значащих.
А всё вместе вами сказанное- даже и не знаю, что с этим делать. Не нравится/не удовлетворяет youtube, переходите на российский аналог. Вы думаете чересчур сложно. Но желаю вам успеха на вашем поприще.
Язык это инструмент. Если он тормозит или глючит - значит кто то просто в него не умеет
Что касается глюков, так ведь никто не умеет. Человек не машина. Поэтому человеку нужно помогать, подпорки ставить, перекрёстные проверки делать, взаимоисключающие параграфы искать.
А вот и ещё идея для школы. Развенчивать миф о суперменах нужно тоже в школе. А то 40 лет мудрецы думают, как бы безопасность языка повысить. Добавляют кучу проверок в рантайме, которые можно включать-отключать. Придумывают новые профили многозадачности с разными ограничениями на свободу действий. Добавляют программирование по контракту, с инвариантами типов, предусловиями и постусловиями. При помощи предикатов монтируют предусловие внутрь подтипов. Развивают верифицируемое подмножество SPARK с контролем побочных эффектов и возможностью доказать отсутствие исключений в рантайме.
Но стоит только нанять супермена, как все эти 40 лет жизни в мудрости становятся ни к чему. Ведь у нас есть супермен. Супермен выиграет в шахматы у компьютера. И супермен не сделает ни одной катастрофической ошибки, которую мог бы предотвратить инструментарий. А ещё, когда в бедном на вопросы безопасности синтаксисе языке программирования просто нет синтаксиса выразить свойства программы, супермены сами, без принуждения, пишут утверждения в комментариях, которые невозможно записать в синтаксисе, как это сделано в более богатых языках программирования:
http://www.ada-auth.org/standards/2xrm/html/RM-A-18-5.html
И если одного супермена уволить, другого нанять, то он загрузит в голову всю базу утверждений о целостности программы и данных, и будет им следовать.
Вот так и происходит разработка на глючных языках программирования. Везде, где люди себе разрешили программировать на C++ вместо обычной Ады, набирают только суперменов, и работают нанятые супермены именно так.
Самое главное в работе супермена — это вера в слово джентельмена. Супермен — этот тот, кого не поймали на косяке. А чтобы было больше суперменов, должно быть меньше инструментов выявления косяков, или они должны быть как можно хуже, с ложными срабатываниями, под которые можно всё подгрести. Вот для Си есть верифицируемое подмножество ACSL. Но для ACSL нет компилятора, который бы инварианты, записанные этим синтаксисом, мог проверить в рантайме, на случай, если весь код не получается загнать в Frama-C. Отлично! Пока миллион роутеров не взломают, супермен может спать спокойно. Это ещё когда будет. А для C++ нет даже и верификации, есть только MISRA C++, с ложными срабатываниями или без обнаружения ошибок. Ещё лучше. Отличный язык программирования для суперменов. Давайте миллион строк кода на C++ напишем, чтоб потом ни в жизнь это не исправить было. Но ведь исправлять и не придётся. У нас же все супермены, и мы верим им на слово.
А Ада, с её CodePeer и gnatprove, с единым синтаксисом для рантайм проверок и верификации, — да это же кошмар. Каждого супермена, того и гляди, компилятор будет ежедневно унижать, тыкать как котёнка в мочу. У нас так суперменов и не останется вовсе. Что ж мы без суперменов делать будем. Пропадём совсем.
Что касается тормозов, на этот счёт был разбор тут. Единственный способ писать быстро на языках с принудительной непрошенной трассирующей сборкой мусора — научиться обходиться без сборки мусора.
Я занимался мобильными играми на Java… Лучший способ избежать сборки мусора (которая будет происходить в произвольный момент времени и убьет производительность игры) — вообще не создавать объекты в основном цикле. Другого пути нет… Только
хардкорручное управление объектами, увы. Так делают все основные высокопроизводительные игры на мобильных устройствах.
Если он тормозит или глючит - значит кто то просто в него не умеет
То есть, кто не пишет на языке с трассирующей сборкой мусора так, чтоб обходиться без сборки мусора, тот просто не осилил этот язык. Согласен.
А кто вам лично мешает создавать ОС, браузеры или прикладные программы на неглючных языках писать, как вы выражается? Смешивается всё в кучу. Программирую на многих языках, вплоть до ассемблера. Ни один из них не могу назвать глючным. Один для одного типа задач, другой - для другого. Но фигни на них написать всегда можно. Но это как и с человеческим языком. Можно 50-ю словами всю жизнь обходиться и после каждого второго слова мат для связки слов использовать. А можно и так, что и 50 тысяч слов не будет хватать. Ваша абстракция с суперменом больше говорит о вас, чем о теме, которую вы затрагиваете. Зачем так сложно?
Я думаю под этим словом глючит не стоит ничего. Просто ярлык. Есть процессоры с их микрокодом, ассемблер. ОС, язык. Когда процессор глючил, например от Intel, то на софт-уровне эту проблему на какое-то время исправили.
Если кто-то говорит, что язык глючит, то единственное, что может в этом случае иметь место - компилятор языка сырой и требует доработки. Если язык сам по себе имеет логические или синтаксические ошибки, то он никогда не выйдет на большую сцену. Не знаю таких.
Чтож, давайте посмотрим на типичного «разоблачителя» школьной программы, с программированием на языке Pascal. По факту еще одно Бабушкина, который переизобрел школьную программу.
![](https://habrastorage.org/webt/be/bb/aq/bebbaq_sulwfou_7urjheguwp-4.png)
![](https://habrastorage.org/webt/da/mt/kv/damtkv9l8z_ghujdxaanlvnal-o.png)
Вот наш герой, ультра профессионал C++/Python/etc., точно уверенный, что Паскаль уже никто не использует, а кто использует — только по инерции.
По факту — типичный школьник, которого бедного, заставляли в школе на Pascal массивы сортировать.
Предположительно, когда он пришел в Вуз, увидел «профессионалов» С/С++/Python/C#, которые загнобили за Пасцал. Автор потыкал C++, получил приятные ощущения внизу живота, от магии указателей, да и возможность прострелить себе колено — это совершенно другой уровень, это вам не школьный Паскаль, где компилятор просто не скомпилирует заведомо бредовый код.
После С/С++ — Паскаль для автора уже «детский сад». Смотрите — целый репозиторий крутых C++ проектов: github.com/AnarCom/imperative_tasks.
Правда в первом же открытом файле я странность обнаружил — автор уверяет что C/C++ для школьника — это просто, но будучи студентом возврат calloc не проверяет, в то время как возврат malloc проверяет, странно. И да — судя по коду автор уверен что освобождение памяти это лишний, лишь замедляющий программу код.
int main() {
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
int N;
uint16_t *sums;
scanf("%d\n", &N);
sums = calloc(N, sizeof(uint16_t));
char **lab = malloc(sizeof(char *) * (N + 1));
if (lab == NULL) {
exit(666);
}
for (int i = 0; i < N; i++) {
lab[i] = malloc(sizeof(char) * (N + 1));
if (lab[i] == NULL) {
exit(666);
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
char l = 0;
scanf("%c", &l);
lab[i][j] = (char) (l == ' ');
if (l == ' ')
sums[i] += 1;
}
scanf("\n");
}
int a = calc_number(lab, sums, N);
printf("%d", a);
return 0;
}
Однако точно можно сказать: учителя преподающие Паскаль, люди, которые коммерческие и не коммерческие проекты на Паскале пишут, и указывают в комментариях что используют Паскаль — это так, детсадовцы, которые не понимают ничего ни в программировании, ни в школьной программе. А вот автор поста настоящий Профессионал(666)!
Не понимаю, зачем прикладывание фотографий и такой переход на личности... Но код прям доставило удовольствие почитать
Ну коли вы решили выйти за правила сообщества хабра, то я не против, но сам останусь в его рамках (почитайте что-ли правила перед тем, как писать здесь...).
В плане фотографий на моей странице - что хочу то и выкладываю, вас это никак не касается - если вы не поняли юмора - абсолютно не моя проблема.
Относительно кода - да косяк - ни я ни мой семинарист, который принимал код не заметили это (возможно на гите не последняя версия, но тут я уже проверить не могу, так что останемся на этом коде). Представляете программисты делают ошибки - и тут одна из них, если вы хотите в школе давать детям allocatоры, то это не моя проблема. Но мои навыки написания кода подтверждены призовыми местами с олимпиад по информатике и робототехнике (как бы я ко вторым не относился). И если вы собираетесь ставить под сомнение мои навыки программирования из-за одного пропущенного if - у меня для вас плохие новости (и поверьте - в этом репозитории есть еще ошибки, но я его не скрыл и абсолютно открыто скидывал моему работодателю)
Мало того, мне стало очевидно насколько сообщество программистов на этого вашего "паскаля" - токсичное болото. И когда они слышат обычное человеческое "ну давайте попробуем поменять" могут только спамить тем, что автор что-то не понимает. Я не собираюсь подавать жалобу на ваш комментарий, так как не вижу в этом смысле - вы сами себя компроментировали. - если сообщество после любой фразы про Паскаль включает режим "Эмэмэм, мы тут прогаем - паскаль тема - не трогайте его" - у языка большие проблемы. Вот только как бы вы не хотели - Паскаль в школе умрет - все больше новый учителей начинают учить детей на плюсах/питоне, да сейчас это не много, но вы это уже не остановите. Я просто хотел чтобы это произошло быстрее.
А для вас у меня обычный совет - чая с ромашкой попейте - нервишки свои поберегите, а то вы не не увидите момент когда Паскаль пропадет из школ и не сможете в это время кричать на минобр, что он не прав.
Написал бы я сейчас эту статью по другому? Да. Но паскаль бы остался почти в том же положении.
Относительно free - да, и тут есть косяк - и такое бывает, представляете. Я вообще нигде не говорил, что я эксперт - честное слово - тут речь идет про то, что как было у меня в школе - и как было у других и как сделать так, чтобы стало еще лучше. А вы все про Паскаль, серьезно?
И мало того - в данном коде можно не писать free (чисто по моему мнению, семинарист с ним согласился) - время работы кода меньше секунды, программа прекращается и память освобождается (если можно так сказать). Вообще free писать нужно (и если вы обратите внимание в репозитории почти всегда есть), но от того, что тут его нет - ничего ровным счетом не меняется. В целом для написания кода для олимпиад/университетских заданий можно пренебрегать некими правилами - если вы обратите внимание - это курс алгоритмов и структур данных, а не программирования на си.
Всегда проще если с тобой не соглашается кто-то перейти на "ой поколение", "а кто вы такой чтобы вообще показывать и прочее". Вот только это не разговор по сути (47 процентов прочитавших согласились с моими идеям - но выборка маленькая, согласен) - это о чем-то говорит.
уточнение - не прочитавших, а проголосовавших
И мало того — в данном коде можно не писать free (чисто по моему мнению, семинарист с ним согласился) — время работы кода меньше секунды, программа прекращается и память освобождается (если можно так сказать).Семинаристу НЕУД.
В целом для написания кода для олимпиад/университетских заданий можно пренебрегать некими правилами — если вы обратите внимание — это курс алгоритмов и структур данных, а не программирования на си.Это вы расскажите будущему работодателю когда из-за падения вашего кода фирма потеряет деньги.
Всегда проще если с тобой не соглашается кто-то перейти на «ой поколение», «а кто вы такой чтобы вообще показывать и прочее». Вот только это не разговор по сути (47 процентов прочитавших согласились с моими идеям — но выборка маленькая, согласен) — это о чем-то говорит.А я из вашего поколения — «поколение ЕГЭ», ничего против не имею.
1) У меня сейчас есть работодатель и у меня с ним все хорошо.
2) А вы меня так и не поняли - но я сделаю простой логический представляете - если код никогда не будет в проде (и мало того, никогда не будет работать больше одного исполнения - 1 секунды, если я правильно помню ограничения) - зачем освобождать память? Максимум для профилировщика. Я не говорю, что free не нужно ставить, а говорю что в данном случае смысла от него 0.
Если free не нужен в учебном коде, то зачем есть одна проверка на NULL? Код же учебный, и все такое. Что-то не складывается.
У человека, который программирует достаточно продолжительное время, вырабатывается просто привычка сразу же ставить нужное количество отступов, проверки, вменяемые имена переменных. Это настолько естественное действие, что поступать иначе даже в одноразовых программах почти физически сложно.
Вы так говорите, что плюсы это зло - это не так. В моей школе первый язык был плюсы, а мы были не технической школой (напомню) - и спокойно все писали на нем. У меня складывается ощущение, что вы делаете такие выводы о ЯП исходя из того, что дети глупее, чем они есть на самом деле. Я так же не считаю, что детей не стоит со всех сторон обкладывать "подушками" - оно просто того не стоит, только отбивает желание учиться (хотя определенно в какой-то мере они должны быть).
Тут просто проблема - мне кажется не все представляют школьный уровень программирования (как я могу судить из комментариев) - на таком уровне любой (почти) язык - это примерно одно и тоже, и я именно из этого представления предлагаю поменять язык на что-то другое, так как тем, кто пойдет в вузы будет чуть проще.
Так же стоит заметить - есть школы, в которых первый язык Питон и ничего, всех все устраивает и дети так же сдают егэ/другие экзамены. Да и в целом - не Паскалем одним едины.
Тут просто проблема — мне кажется не все представляют школьный уровень программирования (как я могу судить из комментариев) — на таком уровне любой (почти) язык — это примерно одно и тоже, и я именно из этого представления предлагаю поменять язык на что-то другое, так как тем, кто пойдет в вузы будет чуть проще.
ОК. Что понятнее, и главное что проще объяснить, на первом практическом занятии программирования?
Pascal
program Hello;
var
name: string;
begin
readln(name);
writeln ('Hello ' + name)
end.
C++
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cin >> name;
cout << "Hello " + name;
return 0;
}
Код на Си приводить не буду — я думаю очевидно, что объяснять указатели на первом же занятии — плохая идея.
Только отвечайте честно :)
name = input("Your name:")
print("Name is: ", name)
Проще некуда ;)
Есть куда. PascalАВС.NЕТ:
## Print('Name is: '+ReadString('Your name:'))
И всегда будет проще куда, если с Питоном сравнивать.
Объяснить, что для использования всяких функций нужно подключать библиотеки - это сложно? Или сказать что using namespace std - нужно стобы не писать std:: - это сложно? Наш преподаватель как-то смог объяснить это, так почему другие не могут? Про Питон - кстати да, почему не питон?)
Объяснить, что для использования всяких функций нужно подключать библиотеки — это сложно?Т.е. еще не написав Hello World ученики должны узнать что такое функции и библиотеки?
Или сказать что using namespace std — нужно стобы не писать std:: — это сложно?А объяснить человеку, еще не написавшему Hello World, что такое namespace сможете?
—
Тут и видно преимущество Паскаля — не нужно говорить «просто пишите #include <iostream'>, потом станет понятно что это и зачем». В программе на Паскале можно сразу подробно объяснить каждую строчку.
Про Питон — кстати да, почему не питон?)1) Наличие в Паскале строгой типизации
2) Ошибочный код не скомпилируется, а не упадет в рантайме
3) Отельный блок переменных позволяет лучше понять идею переменных
4) Первое время идея отделения логических блоков пробелами ооооочень сложна для понимания
5)…
Вы упорно продолжаете не понимать нескольких вещей.
1) Не всем нужны эти все ЯП (хоть паскаль, хоть питон) - они будут учится другому;
2) Школьная программа она для всех - и для гуманитариев, и для математиков, и для информатиков, и для биохимов. Каждый из них к базе еще ходит на факультативы по "своим" предметам;
3) Паскаль прост и понятен даже гуманитарию, который не вдупляет вообще. И умение работать с вордом и экселем тоже нужно. И нужно всем. Я на прошлой работе 20 минут переработал в новый формат, из которых 15 ушло на выяснение какое поле куда, только средствами эксель.
4) Переход на плюсы или питон возможен ТОЛЬКО в профильных классах и школах. Но никак не в обычных классах и школах. Поэтому во ФГОСе и есть намеки на профильные программы. Такая же ситуация и с физикой и биологие, например: биологу не нужно уметь решать задачи по колебаниям и физике ядра, как и физику не нужно уметь решать задачи по генетике и знать, за что отвечает аппарат Гольджи в клетке.
с 1 и 2 согласен, тут да. Относительно 3 - на этом уровне программирования, я считаю, что сложность любого языка примерно одинаковая (тут естественно не берем, например, haskell). Про 4 - тут забавная ситуация получается - переходят не только специализированные школы)
Вы так же забываете важный момент: в большинстве школ необъятной либо малое количество компьютеров, либо 2 урока информатики в неделю на теорию+практику. Не смотрите на это только как на практику. Смотрите в комплексе и для всех школ по всей стране. А не только для "городских" и "продвинутых" или специализированных.
Я учился в школе, где было очень небольшое финансирование, мы работали за ноутами, которые были произведены 10 (если я правильно помню), обычно парами или тройками. У меня был 1 урок в неделю до 10 класса, и мы все равно программировали на плюсах или js (правда второй был в 11 классе, если я правильно помню). Относительно "маленькое" количество компьютеров - тут будет в целом без разницы на чем учить, на бумажке все одинаково работает и не лагает))
Оно не только не лагает, но еще и не компилируется на бумажке. А это значит, что проверяющий должен либо прогонять код через компилятор, вбивая его, либо проверять на четкое соответствие структуре (как на "бумажном" ЕГЭ было), либо сидеть и разбираться с кодом каждого ученика, который часто написан в "индийской" манере даже у продвинутых - у меня на зачетах преподы часто просили трассировочную таблицу, даже если код был проще некуда, чтобы не разбираться в нем.
И Вы сами ответили на свою статью, почему изменения невозможны. Небольшое финансирование (не армия же, зачем финансировать какое-то там образование - но это уже в другие дебри сейчас уйдет), старые, скорее всего загружающиеся минут по 5-10 компьютеры (а это 10-20% времени урока), видавшие виды и работа в парах-тройках, из которой, может быть, хотя бы один пойдет на направление, связанной с информатикой. Нужна система, работающая для всех. И для богатых московских гимназий с 4+ компьютерными классами на 15 человек каждый в одном здании, и для сельских школ почти без финансирования с, спасибо если, 5 компьютерами в единственном компьютерном классе. Если ученик хочет больше, то есть факультативы и курсы в интернете. Я бы скорее сделал систему, как в европейских университетах - у каждого школьника полный доступ ко всем курсам на Udemy/Coursera/GeekBrains (и даже не обязательно с сертификатами)
Ну коли вы решили выйти за правила сообщества хабра, то я не против, но сам останусь в его рамках (почитайте что-ли правила перед тем, как писать здесь...).Какой конкретно пункт правил я нарушил?
Относительно кода — да косяк — ни я ни мой семинарист, который принимал код не заметили этоВозможно семинаристу стоило изучить Паскаль, и помогать в изучении алгоритмов на Паскале, чтобы не делать таких ошибок в проверке элементарного C++(на самом деле Си) кода? Или задача научить писать быдлокод?
Именно поэтому в школах преподают Паскаль — учителя обычно не профессиональные программисты, а чтобы чему-то научить — надо что-то знать. Разобраться с Паскалем проще чем с C++ => влажным мечтам об обучении программированию на крестах в школе — не суждено сбыться :) Без негатива к C++ — просто это реальность — Плюсы — чертовски сложный язык.
Представляете программисты делают ошибки — и тут одна из них, если вы хотите в школе давать детям allocatоры, то это не моя проблема.А как дать «динамическое программирование» еще? В Паскале все просто SetLength(Arr, Size), а тут аллокаторы.
Но мои навыки написания кода подтверждены призовыми местами с олимпиад по информатике и робототехнике (как бы я ко вторым не относился).Не ну тут я действительно слит — призовые места на олимпиадах точно говорят о профессионализме!
И если вы собираетесь ставить под сомнение мои навыки программирования из-за одного пропущенного if — у меня для вас плохие новости (и поверьте — в этом репозитории есть еще ошибки, но я его не скрыл и абсолютно открыто скидывал моему работодателю)Ну нееет, этот код имеет не одну ошибку, давайте я вместо вашего преподавателя и семинариста помогу вам изучить ваш любимый C/C++:
int main() {
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
int N;
uint16_t *sums;
scanf("%d\n", &N);
sums = calloc(N, sizeof(uint16_t));
char **lab = malloc(sizeof(char *) * (N + 1));
if (lab == NULL) {
exit(666);
}
for (int i = 0; i < N; i++) {
lab[i] = malloc(sizeof(char) * (N + 1));
if (lab[i] == NULL) {
exit(666);
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
char l = 0;
scanf("%c", &l);
lab[i][j] = (char) (l == ' ');
if (l == ' ')
sums[i] += 1;
}
scanf("\n");
}
int a = calc_number(lab, sums, N);
printf("%d", a);
return 0;
}
2) Нет проверки на NULL после вызова calloc
3) Память выделенная malloc/calloc никогда не освобождается
4) Великолепный нейминг переменных и функций — смотрю на функцию calc_number и сразу вижу — писал профессионал!
5) Еще куча всего
Мало того, мне стало очевидно насколько сообщество программистов на этого вашего «паскаля» — токсичное болото.Вы пришли на мое болото и стали кидать в него помои, извините, не смог спокойно на это смотреть.
Вот только как бы вы не хотели — Паскаль в школе умрет — все больше новый учителей начинают учить детей на плюсах/питоне, да сейчас это не много, но вы это уже не остановите. Я просто хотел чтобы это произошло быстрее.Т.е. вы приходите на Хабр, желаете смерти языку Паскаль, а потом возмущаетесь почему программисты любящие этот язык оставляют токсичные комментарии?
И если вы собираетесь ставить под сомнение мои навыки программирования из-за одного пропущенного if — у меня для вас плохие новости (и поверьте — в этом репозитории есть еще ошибки, но я его не скрыл и абсолютно открыто скидывал моему работодателю)Эх, как жаль теперь репозиторий выдает 404 ошибку. Скрыли всё-таки.
МС единственная компани, которая пролоббировала рекламу своих продуктов в образовательных учреждениях в учебное время. Причем не только бесплатно, но еще её за это доплачивают за рекламные копии ей продуктов. Это шедеврально.
Уберите рекламные часы, введите в школах уроки информатики, и тогда дети будут знать информатику. Причем лоббирование настолько сильное, что даже гос программа по искоренению рекламных часов МС в школах и введению уроков информатики на СПО — была саботирована.
Обучение информатики долно быть на подходе и опыте лучших программистов и олимпиадников конца 80-х 90-х годов, а это:
1. теория вычислительных схем
2. самостоятельная сборка своего вычислительного устройства
3. компиляция стороннего кода ОС под свою сборку или полное написание своего (так же ПО)
Т е полный цикл, вся работа и изучение на самостоятельно собранном оборудовании и самостоятельно написанном ПО или СПО самостоятельно скомпилированном (после разборки кода)
Все ЕГЭ допускать сдавать, только на собственноручно созданном компьютере и своем личном ПО СПО
В школы направлять все списанное и поломанное компьютерное оборудование всех лет. Никаких готовых компьютеров.
Классы мастерские — с лабораторными блоками питания, паяльными станциями, микроскопами и общероссийская база запчастей (из списанных или конструкторов на базе Эльбрус)
Обучение строить на том, что изучил, сам спроектировал себе комп. сам сделал плату, напоял чипы, запрограммировал, и пишешь или компилируешь на нем программы, сам подключил к сети минобрнауки, сдал на своем компе ЕГЭ (ну или сам взломал портал ЕГЭ и сдал).
Вот тогда у нас будут и свои инженеры и свои процессоры и своя электроника в целом, а не «мам, пап, нам сегодня задали текст в мс ворд, презентацию в мс пп, таблицу в эксель и игру в маинкрафт… мне нужен мощный „комп для учебы“ за 200 к с мощной видеокартой с виндой за 10 к и мс офисом за 10 к » выньте да положте.
Да что говорить, если даже на удаленке стали требовать именно и только Microsoft\Teams, хотя изначально было по выбору
… самостоятельная сборка своего вычислительного устройства
дети/подростки/взрослые сегодня лампочку не все могут поменять дома/в машине, понятия не имеют, как без ютуба морковь почистить, а вы самостоятельная сборка. Я-бы этого тоже хотел. Но посмотришь по сторонам и сразу в обратном убеждаешься. Но как говорится — надежда умирает последней. Но ваши слова улыбнули.
2. самостоятельная сборка своего вычислительного устройстваНе могли бы вы написать соответствующую инструкцию — ну там электрическая схема, необходимые детали, необходимый софт и т.д. Просто на первый взгляд создание вычислительного устройства с нуля выглядит довольно сложным, а уж написание компиляторов к нему и вовсе сойдет за бакалаврскую диссертацию.
3. компиляция стороннего кода ОС под свою сборку или полное написание своего (так же ПО)
Но, вероятно, я лезу слишком глубоко и вы подразумеваете нечто другое. Тогда пусть не для общей школьной программы, а для факультативов такая инструкция была бы полезна.
Уважаемые читатели этой статьи - я добавил UPD и UPD2, так же я считаю что это хорошая возможность напомнить про Хабраэтикет и терпимость, ведь у людей бывают разные позиции и тд и тп. Спасибо за другую точку зрения,
Александр
UPD2: уважаемое сообщество программистов на Pascal — я не хотел на вас наезжать, так как в целом смысла в этом нет (так как на людей наезжать не хорошо). Я человек простой и часто говорю вещи, которые думаю я (и люди вокруг меня). Если мое высказывание о том, что я «как-то неправильно» высказался о Паскаль — я не хотел, вам и без меня тяжело, ведь, как говориться, в скольких статьях говориться о том, что «пора бы уже что-то поменять)». Пожалуйста будьте терпимее к идеям, что Паскаль «всё» и я (надеюсь кто-то еще), постарается быть терпимее к комментариям/статьям о том, что он живет и в целом крутой.Итак без негатива — я предлагаю вам написать статью о том что «C++/C/Python/js — все» — и вы удивитесь насколько малотоксично сообщество Pascal программистов.
Сказ о том, что стоит поменять (удалять) в школьном курсе информатики