среда, 30 мая 2018 г.

"Креативное программирование"

Летние курсы по программированию для учеников 3-6 классов (не изучавших в школе Scratch)

Занятия будут проходить с 4.06 по 29.06:
  • понедельник, 
  • среда
  • пятница
 с 10-00 до 11-30.

Адрес: ул. Минина 15, РФМЛИ, каб.№6, тел. +7(918)827-86-37, Молчанова Ирина Александровна

пятница, 12 января 2018 г.

Законы программирования, о которых вы, возможно, не слышали

У программиста широкий перечень правил, которых он должен придерживаться в работе. Это и правила хорошего синтаксиса, и соблюдение метода разработки, и общие стандарты кода в компании.
Но помимо этого, есть ещё множество принципов, которые очень точно описывают профессию программиста. С некоторыми из них стоит познакомиться.

Принцип раздувания

«Каждая программа развивается до тех пор, пока не сможет читать почту. Программы, которые не способны так развиться, вытесняются теми, что смогут».
Это правило имеет множество вариаций, но официальной принято считать Закон о программном обеспечении, или Закон Завинского. Впервые он был упомянут в книге «Искусство программирования для Unix» (The Art of UNIX Programming). Речь идёт о тенденции программ увеличивать функциональность с течением времени и, как следствие, усложняться. Этот принцип заложен также в функцию ползучести, которая гласит:
«ПО расширяет функциональность до тех пор, пока не задействует все предоставленные ресурсы».
Она имеет негативную окраску и противопоставляется основным целям программирования.

Принцип «Чем хуже – тем лучше»

«ПО, которое имеет ограничения, но простое в использовании, более востребовано пользователем и рынком, чем не имеющее ограничений, но сложное для понимания».
Ричард П. Габриэль впервые упомянул это правило в эссе, написанном им о качестве программного обеспечения, в конце 1980-х годов. В развитии этой идеи он пишет, что разумно разобраться в одной проблеме, которую ваше ПО стремится решить, довести функцию до совершенства. Надо быть проще. Чем больше вы расплываетесь в идеях, тем более неуправляемым станет проект и тем более невостребованным он будет.
В случае игнорирования вы сталкиваетесь с принципом Питера:
«Каждый комплексный проект неизбежно становится сложным для понимания даже для собственных разработчиков».
Он исходит из более широкого Принципа Питера о продвижении по карьерной лестнице сотрудников с ограниченной компетентностью. Результат – все сотрудники компании оказываются некомпетентными. Этот же принцип легко спроецировать на ПО, и он тоже будет верным.

Закон Иглсона

«Ваш код, который вы не просматривали 6 или более месяцев, выглядит так, будто его написал кто-то другой».
Это демотивационное высказывание говорит о том, что никто не идеален. Вы можете считать себя гениальным программистом прямо сейчас, но всегда есть что-то большее, пространство для роста. Если вы когда-либо оглядываетесь на старый код и съеживаетесь – это означает, что вы узнали что-то новое с тех пор.
Иными словами, если вы не увидите в старом проекте ничего, что можно улучшить – это верный признак стагнации или деградирования.

Правило наименьшего удивления

«Если необходимая доработка имеет высокий коэффициент изумления, возможно, её стоит переработать».
Правило впервые появилось в IBM Systems Journal в 1984 году, а широкую огласку получило благодаря книге «Искусство программирования для Unix». Оно касается тонкого баланса между инновациями и знакомством с ними: если ПО слишком отличается от других подобных и не соответствует ожиданиям пользователей, то они вероятно его не примут. Лучше стремиться к дополнительным улучшениям, которые достаточно велики, чтобы впечатлить, но достаточно малы, чтобы казаться знакомыми.

Закон кибернетической энтомологии

«Всегда есть ещё один баг».
В СМИ это правило часто носит название закона Кибернетической энтомологии Любарского. Его принцип справедлив для всех программистов: независимо от того, насколько вы четко пишете код, тщательно тестируете модули, и как часто вы реорганизуете классы, всегда найдётся какая-то ошибка.
В некотором смысле это принцип освобождения. Хотя все мы должны стремиться к отсутствию ошибок, важно помнить, что перфекционизм - это враг добра.

Закон Кернигана

«Отладка кода вдвое сложнее, чем его написание. Поэтому, если вы пишете настолько умный код, насколько это возможно, вы по определению недостаточно умны, чтобы его отладить».
Брайан Керниган – один из авторов фундаментальной книги «The C Programming Language». Суть закона: напишите хороший код, читаемый, простой, какой угодно, но только не умный. В противном случае вы создадите полную противоположность тому, что принято считать лучшим кодом.
Роберт К. Мартин объясняет – речь идет не только об отладке:
«Действительно, соотношение времени, затраченного на чтение и письмо, составляет более 10 к 1. Мы постоянно читаем старый код как часть усилий по написанию нового. Облегчаем чтение, упрощаем запись».

Правило 90-90

«Создание 90% кода ПО занимает 90% заложенного времени разработки. Оставшиеся 10% – ещё 90% времени».
Эта небольшая пословица Тома Каргилла лежит в основе того, почему программирование может быть расстраивающим: независимо от того, насколько близко вы подбираетесь к решению задачи, на самом деле вы далеки от завершения. Когда думаете, что вот-вот закончите – вы находитесь только на середине пути.
В шуточной манере аналогичный закон составил Дуглас Хофштадтер:
«Любое дело всегда длится дольше, чем ожидается, даже если учесть закон Хофштадтера».

Закон Паркинсона

«Работа заполняет всё время, отпущенное на неё».
Этот принцип, придуманный историком Паркинсоном ещё в 1955 году, является более широким принципом, и идет рука об руку с Правилом 90-90, описанным выше: сколько бы времени вы не заложили на проект, он будет разрабатываться до самой последней минуты. В разработке ПО «ранняя сдача» в значительной степени является мифом.
Закон Паркинсона является причиной того, что правильные сроки имеют решающее значение, если вы хотите закончить и отправить свое ПО. Вот почему современные профессиональные программисты часто рекомендуют гибкие принципы управления проектами и соответствующие инструменты.

Закон Брука

«Добавление рабочей силы на поздних стадиях ПО затягивает его выпуск».
В следующий раз, когда будете срывать сроки сдачи проекта, помните – добавление кодеров не ускорит процесс. Более того, вероятно, это займет даже больше времени. Вам не только нужно ввести новых кодеров в суть дела, но и им работать с уже существующими кодами. Необходимо вводить больше документации и бюрократии, чтобы держать всех на одной волне. Кроме того, из-за ускользающего времени возникнет больше конфликтных ситуаций.

Отладка резиновой утки

Здесь обойдёмся без цитаты, так как это скорее полезная техника. Речь идёт о публикации The Pragmatic Programmer, рассказывающая о методе отладки, когда вы объясняете свой код неодушевлённому объекту, например, резиновой утке. Это задействует разные области вашего мозга, и вы быстрее находите ошибки.
Благодаря описанной мудрости вы подойдёте к карьере программирования с реалистичными ожиданиями. Останется лишь малость – выучить язык программирования и найти подходящее место работы.
Джон Роббинс предлагает объяснять проблему на кошках. «Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей – и все становится ясно».

пятница, 5 января 2018 г.

Встреча со студентами Иннополиса

Спасибо Георгию Дзесову и Насте Минаковой за интересную и содержательную беседу. Все ученики были под большим впечатлением от услышанного. Многие однозначно будут пытаться поступать в Иннополис.

 


Межрегиональная Олимпиада школьников по информатике и компьютерной безопасности (2 уровень)

Организаторы олимпиады - Академия Федеральной службы безопасности Российской Федерации. По предварительным итогам Стас Теблоев - победитель, а Захар Жуков - призер (не хватило одного балла). Ждем подтверждения и грамот.

понедельник, 14 августа 2017 г.

Новый учебный год

На страницах oge-2015.blogspot.com и ege-2017.blogspot.com опубликованы расписания проведения тематических тренингов и тренингов в форме ОГЭ и ЕГЭ в 2017-2018 уч.г. в РФМЛИ.

четверг, 13 июля 2017 г.

9 способов психологического насилия над учениками

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

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

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

«Я взял папку и записал даты и время тех случаев, когда меня притесняли. Я отнёс эту папку директору школы. Он сказал: «Сынок, у тебя слишком много свободного времени, если ты успеваешь писать в этих папках. У меня есть более важные дела, чем заниматься тем, что произошло две недели назад». Я ответил ему: «Я просто хотел, чтобы у вас было представление о том, что происходит каждый день, обо всех притеснениях и оскорблениях». Он взял папку и выбросил её в мусор».
Ученик из Северной Америки
Источник: сайт ООН
Как проявляется психологическое насилие?
Вот несколько способов проявления эмоционального насилия в классе. Рассмотрев их, учитель сможет сделать выводы о том, не демонстрирует ли он агрессивное и обидное поведение по отношению к собственным ученикам.
1. крики
Внимательное отношение к тембру и громкости заложено в нейробиологии человека. С помощью громких тревожных возгласов наши далекие предки предупреждали друг друга об опасности, а угрожающим рёвом сигнализировали о начале схватки с сородичем. Поэтому, когда рядом кто-то кричит, мы тут же «подбираемся»: сердцебиение ускоряется, уровень адреналина растёт. Крики учителя могут производить очень гнетущее впечатление, чреватое психическими травмами — особенно если в семье ребёнка не принято повышать голос.
Голос как таковой — самый мощный инструмент воздействия в педагогическом арсенале, поэтому управление голосом очень важно. Если вы сомневаетесь в том, что слушатели верно считывают ваши интонации, возможно, имеет смысл взять несколько занятий по сценической речи или обратиться к психологу.

Сам крик и сопутствующая ему гримаса оказывают мощное психологическое воздействие.
2. сердитое выражение лица
Может показаться, что это мелочь, но дети очень чувствительны к эмоциям — они не только мгновенно их распознают, но и быстро, непосредственно реагируют. Агрессивное, злое лицо взрослого человека может заставить ребёнка замереть от ужаса. Сюда же относится язык тела: сцепленные руки, резкие движения, «давящая» поза надсмотрщика.
3. оскорбления
Идея о том, что учителю не стоит обзывать детей, кажется слишком очевидной, однако такое всё равно регулярно случается. «Ты бестолковая», «ты что, совсем дурак?», «голова садовая» — все эти высказывания далеко не безобидны. А если они сопровождаются сигналами из пунктов выше — это уже полноценная психологическая установка. И очень негативная. Вы просто выразили свои эмоции из-за конкретной ситуации, а ребёнок может искренне поверить, что он бестолковый, никчёмный дурак. Кстати, если это всё правда, то такому ребёнку и стараться на вашем предмете смысла нет.
4. некорректная критика
Негативную характеристику можно давать только действиям ребёнка (если они того заслуживают), но не ему самому. Конечно, оценка необходима для самопроверки, но мы оцениваем то, что человек сделал или не сделал, а не его личность.
Как же тогда ругать учеников и оценивать их поведение (которое тоже часто оставляет желать лучшего), если «учителю ничего нельзя»? Используйте выражения, которые указывают на конкретное поведение: здесь было приложено мало усилий, тут можно ещё постараться, если хочется добиться большего. И уж тем более не стоит вообще как-то комментировать внешность ребёнка и его манеру говорить, упоминать его родственников или уровень достатка семьи.
Популярные в классическую эпоху «безболезненные» наказания: принуждение носить «дурацкий колпак», ослиные уши или табличку с обидным словом.
5. унижение достоинства
Честь и достоинство есть и у первоклассника. Если не признавать их за ребёнком с ранних лет, это помешает сформироваться здоровой самооценке. Семилетний человек хочет примерно того же, чего и вы — уважения окружающих, признания своих успехов, самореализации.
Как бы вы себя чувствовали, если бы руководитель методобъединения приказал вам стоять на табуретке за неготовность планов или отправил в угол за разговоры с коллегой? 
Никогда не нужно заставлять ребёнка бояться позора и намеренно вызывать у него чувство стыда. Стыд — разрушительная эмоция, от которой человек кажется себе маленьким, недостойным и жалким, и, в конечном счёте, мечтает перестать существовать («провалиться сквозь землю»). Здоровая соревновательность — это хорошо, ведь чужие успехи мотивируют и вдохновляют. Однако никогда не стоит осознанно унижать одних детей перед другими, с какими бы целями это ни делалось, давить на слабые места учеников и использовать их личную информацию в своих интересах.
6. сарказм
Может быть, у вас отличное чувство юмора, и саркастические замечания — ваш конёк. Однако существует очевидная разница между тонкими шутками и унижением, вызывающим чувство стыда (см. предыдущий пункт).
Под иронию и сарказм легко замаскировать откровенные оскорбления, ведь в любой момент можно сказать, что вы просто пошутили. Это одна из стратегий поведения школьных хулиганов. Тех самых, которые пытаются убедить вас на переменах, что «игра в собачку» (перебрасывание отнятой вещи через голову жертвы) — это просто развлечение, которое одинаково нравится всем участникам.
7. угрозы
Например, учитель физкультуры кричит «Я вам вёдра на головы надену!» и искренне верит, что если он не намерен в действительности выполнять свою угрозу, она ничего не значит.
Агрессивные угрозы и спокойный прогноз — не одно и то же. «Если ты не сдашь ЕГЭ на 91 балл и выше, ты не сможешь поступить в этот вуз», — это информация к размышлению, которая не содержит в себе угрозы. В конце концов, вузов много. А вот высказывание: «Если ты не сдашь ЕГЭ на 91 балл, то станешь жалким неудачником, сопьёшься и умрешь под забором!» больше говорит о ваших эмоциях, чем о будущем подростка.
8. необъективное отношение
Некоторые преподаватели делят учеников на любимчиков и тех, на ком можно срываться. Такой подход неэтичен сам по себе и вредит как первым, так и вторым. Кстати, психологи доказывают, что даже неправильная похвала может причинять вред. А попустительствуя лести и заискиванию, мы развиваем в детях не самые лучшие черты характера.
9. невнимательность
Отсутствие эмпатии само по себе не является насилием, но часто ведёт к нему. В ответ на ваши замечания ученик каменеет, молчаливо отказываясь выполнять просьбу? Легко принять это за неуважение и разгневаться ещё сильнее. Но, возможно, вас вовсе не игнорируют, просто ученик парализован страхом. В опасной ситуации все живые существа, не исключая человека, непроизвольно реагируют двумя основными способами: идут на поводу у рефлекса «бей или беги» или замирают, не в силах пошевелиться.
Эмпатия помогает уловить состояние других и выбрать не связанную с эмоциональным давлением линию поведения. В данном случае вам стоит развеять ужас ученика и показать, что вы — человек, которому можно доверять, а не Пугало из комиксов о Бэтмене. Тогда и задание будет выполнено.
Чем вредно эмоциональное насилие в школе?
Педагогическое насилие приводит к страхам и невротическим состояниям, плохо сказывается на успеваемости, стимулирует агрессивное поведение и может вызвать психологическую травму, депрессию и ПТСР.

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

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

Как предотвратить?
Общий ответ таков — следить за собой и создавать в педагогическом и ученическом коллективе здоровую атмосферу, которая позволяет поднимать вопрос и привлекать к нему внимание. Тему педагогического насилия полезно обсудить в классе (или дома, если вы — родитель).
Главный принцип преодоления педагогического насилия — отказ от выстраивания взаимоотношений «агрессор — жертва». Ни одна из ролей в жестоких отношениях не бывает приятной или почётной.

В материалах ООН, посвящённых праву на защиту от насилия, предлагаются сценарии занятий, направленных на предотвращение эмоционального насилия и налаживание диалога с теми, кто не считает это проблемой. Вот одно групповое упражнение, которое можно использовать и на тренинге для учителей.
что понадобится:
Три высказывания (можно использовать приведённые ниже или придумать собственные):
  • Физическое наказание (подзатыльники, шлепки) могут быть использованы, если они помогают детям учиться.
  • Словесное наказание (брань, унижение) не обижают детей так сильно, как физическое наказание.
  • Детям, которых дразнят, нужно учиться защищать себя.
Три знака, которые можно повесить на расстоянии нескольких метров друг от друга. Один знак с надписью «СОГЛАСЕН», другой с надписью «НЕ СОГЛАСЕН» и третий с надписью «НЕ УВЕРЕН».
что делать:
Зачитайте высказывания о насилии в школах и предложите выполняющим упражнение встать возле знака, отражающего их мнение. Предложите участникам каждой получившейся группы обосновать своё мнение. Самое главное: каждый может перейти под другой знак, если услышит что-то, что заставит его изменить свою точку зрения.

Авторы предполагают, что это упражнение вовлекает учеников в мыслительный, речевой и двигательный процессы, помогает участникам слушать друг друга и развивает способность к сопереживанию.
6 июля 2017, 19:00 Алиса Загрядская
Источник: https://newtonew.com/school/9-sposobov-psihologicheskogo-nasiliya-nad-uchenikami

Если вы заметите у меня что-либо подобное - остановите меня!!!

суббота, 17 декабря 2016 г.

18 великих изобретений в мире компьютеров и программирования


Недавно у нас с коллегами возникла дискуссия на тему первых компьютеров и программ. В разговоре вспомнились не только знаменитые ученые, такие как Чарльз Бэббидж, но и менее известных вроде Ады Лавлейс. В результате возникла идея провести исследование и составить хронологию развития истории компьютеров и программирования.

В процессе изучения различных источников обнаружилось немало любопытных фактов. Например, тот же Бэббидж технически не является изобретателем компьютера, что первым высокоуровневым языком программирования был вовсе не FORTRAN, а для CRT-мониторов использовались стилусы. 



http://geektimes.ru/company/ua-hosting/blog/266838/

1. Первый компьютер: «Машина различий» (1821 г.)


Предшественник Аналитической машины. «Машина различий» была первой попыткой создания механического компьютера. Разработкой проекта занимался ученый Чарльз Бэббидж. Заручившись поддержкой британского правительства, он начал работать над устройством. Но из-за высокой себестоимости, финансирование было остановлено и компьютер так и не построили.



2. Первый компьютер общего назначения: «Аналитическая машина» (1834 г.)


Чарльз Бэббидж продолжил свою работу и, основываясь на полученном опыте, взялся за разработку механического компьютера. Эта машина предназначалась для автоматизации вычислений путем аппроксимации функций многочленами и вычисления конечных разностей. Благодаря возможности приближенного представления в многочленах логарифмов и тригонометрических функций, «аналитическая машина» могла быть универсальным прибором. 



3. Первая Компьютерная программа: алгоритм для вычислений числа Бернулли (1841 — 1842 г.г.)


Математик Ада Лавлейс начала переводить отчеты своего итальянского коллеги — математика Луиджи Менабреа. Для этого она использовала все ту же аналитическую машину Бэббиджа в 1841. Во время перевода женщина заинтересовалась компьютером и оставила примечания. Одно из них – нота G, содержало алгоритм для вычисления числа Бернулли (последовательность рациональных чисел В1, В 2, В3) аналитической машиной, которая, как полагают эксперты, была самой первой компьютерной программой.



4. Первый работающий компьютер: Z3 Конрада Цузе (1941г.)


Немецкий изобретатель Конрад Цузе стал первым, кому удалось создать работающий компьютер Z3. На основе своих первых двух моделей Z1 и Z2 ученому собрал полноценный электромагнитный компьютер, программа и данные которого сохранялись на внешних избитых лентах. Предполагалось, что это будет секретный проект немецкого правительства. По большей части он разрабатывался для Института Исследований в области авиации. Правда самого Цузе мало интересовали интересы военных, ему просто хотелось создать работающую ЭВМ. 

Оригинал машины Z3 был разрушен во время бомбежки Берлина в 1943 году. 



5. Первая электронно-вычислительная машина: Компьютер Атанасова-Берри (Atanasoff-Berry Computer, ABC, 1942 г.)



Первое цифровое вычислительное устройство без движущихся частей. Компьютер был создан Джоном Винсентом Атанасовым и Клиффордом Берри. ABC использовался для поиска решений под одновременные линейные уравнения. Это был самый первый компьютер, который использовал набор из двух предметов, чтобы представлять данные и электронные выключатели вместо механических. Компьютер, однако, не являлся программируемым. В ABC впервые появились более современные элементы, такие как двоичная арифметика и триггеры. Минусом устройства была его особая специализация и неспособность к изменяемости вычислений из-за отсутствия хранимой программы.



6. Первая программируемая электронно-вычислительная машина: «Колосс» (1943 г.)


Компьютер «Колосс» — секретная разработка времен второй мировой войны. Он был создан Томми Флауэрсом совместно с отделением Макса Ньюмана, с целью предоставления помощи британцам в расшифровке перехваченных нацистских сообщений. Они были зашифрованы шифром Лоренца. Действия были запрограммированы электронными выключателями и штепселями. «Колосс» давал время на расшифровку сообщений от нескольких часов до недель. С помощью компьютера было расшифровано немало фашистских шифровок.



7. Первая программируемая электронно-вычислительная машина общего назначения: ENIAC (1946 г.)


ENIAC (Электронный числовой интегратор и вычислитель) — первый электронный цифровой компьютер общего назначения с возможностью перепрограммирования для решения широкого спектра задач. Финансируемый американской армией, ENIAC был разработан Электротехнической школой Мура в университете Пенсильвании. Его создавала команда ученых во главе с Джоном Преспером Экертом и Джоном Уильямом Мокли. ENIAC достигал в ширину 150 футов и мог быть запрограммирован на выполнение сложных операций. Вычисления производились в десятичной системе, компьютер оперировал числами максимальной длиной в 20 разрядов.

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



8. Первый трекбол (1946/1952 г.г.)


Трекбол — указательное устройство ввода информации об относительном перемещении для компьютера. По сути, аналог современной компьютерной мыши. По одной из версий он был разработан Ральфом Бенджамином, когда тот работал над системой мониторинга для низколетающего самолета. Изобретение, которое он описал, включало в себя шар для управления координатами X-Y курсора на экране. Дизайн был запатентован в 1947 году, но не выпускался, потому что проект находился под грифом «секретно».

Также трекбол использовался в системе канадского военно-морского флота DATAR в 1952 году. Этот «шаровой указатель» применил Том Крэнстон.



9. Первый компьютер совместного хранения данных и программ в памяти: SSEM (1948 г.)


Манчестерская малая экспериментальная машина (англ. Manchester Small-Scale Experimental Machine, SSEM) — первый электронный компьютер, построенный по принципу совместного хранения данных и программ в памяти. Создатели — Фредерик Уильямс, Том Килберн и Джефф Тутилл были членами Манчестерского университета. Машина задумывалась, как экспериментальный аппарат для изучения свойств компьютерной памяти на ЭЛТ («трубки Уильямса»). Программы были введены в двухчастную форму, используя 32 выключателя, на продукции CRT.

Кстати, успешные испытания SSEM стали началом создания полноценного компьютера на трубках Уильямса — «Манчестерского Марка I».



10. Первый высокоуровневый язык программирования: Планкалкюль (Plankalkül, 1948 г.)


Этот язык был использован Конрадом Цузе (разработчиком первого работающего компьютера Z3). Хотя Цузе и начал создавать Plankalkül еще с 1943 года, впервые он был применен в 1948 году, когда ученый опубликовал работу на тему программирования. Правда данный язык программирования не привлек особого внимания. Первый компилятор для Планкалкюль (для современных компьютеров) был создан лишь в 2000 году профессором Свободного университета Берлина — Йоахимом Хоманом. 



11. Первый ассемблер: «Начальные команды» на EDSAC (1949 г.)


Ассемблер — транслятор исходного текста программы, который преобразовывает мнемонику (низкого уровня) в числовое представление (машинный код).

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



12. Первый персональный компьютер: «Simon» (1950 г.)


Simon стал первым доступным компьютером. Он разработан Эдмундом Беркли, а построен инженером-механиком Уильямом Портером и выпускниками Колумбийского университета Робертом Дженсоном и Робертом Валлом. Simon имел систему команд и мог выполнять девять операций, в том числе два действия арифметики — сложение и вычитание, а также сравнение и выбор аргументов. Числа и команды считывались с перфоленты, а результат высвечивался на индикаторной панели. На вход могли подаваться числа в диапазоне от 1 до 255 в бинарной нотации, набитые на перфоленту.



13. Первый компилятор: A-0 для UNIVAC 1 (1952 г.)


Компилятор — программа, которая преобразовывает язык высокого уровня в машинный код. A-0 Система была программой, созданной легендарной женщиной-программистом Грейс Купер. Основной задачей системы было преобразование программы, определенной как последовательность подпрограмм и аргументов в машинный код. A-0 был выпущен клиентам с его исходным кодом, делающим, возможно, самое первое общедоступное программное обеспечение.

В 1952 г. у Купер появился готовый к работе компилятор. Ее высказывание по этому поводу:

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




14. Первый автокод: Автокод Гленни (1952 г.)


Автокод — название группы языков программирования высокого уровня, который использует компилятор. Первый автокод был создан для серии компьютеров в университетах Манчестера, Кембриджа и Лондона. Автокод был создан одним из манчестерских сотрудников Тьюринга — Аликом Глени (собственно в его честь и назван).



15. Первая компьютерная мышь (1964 г.)


Идея компьютерной мыши пришла в голову американскому физику Дугласу Энджелбарту во время конференции на тему компьютерной графики. Он придумал устройство с парой маленьких поворачивающихся колес, которые могут использоваться для свободного перемещения курсора по экрану. Прототип был создан его ведущим инженером, Биллом Инглишем, но Инглиш и Энджелбарт никогда не получали лицензионные платежи для дизайна.



16. Первый коммерческий компьютер: Programma 101 (1965 г.)


Персональный компьютер Programma 101, также известный как Perottina, был первым в мире коммерческим ПК. Он выполнял следующие действия: дополнение, вычитание, умножение, деление, высчитывал квадратный корень, абсолютную величину и часть. Компьютер был оценен в $3,200 и несмотря на дороговизну, неплохо продавался (около 44,000 единиц). Изобрел Programma 101 итальянский инженер Пьер Джорджио Перотто. 



17. Первый сенсорный экран (1965 г.)


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



18. Первый объектно-ориентированный язык программирования: Simula (1967 г.)


Simula — это язык программирования общего назначения, разработанный сотрудниками Норвежского Вычислительного Центра (г. Осло) Кристеном Нюгордом и Оле-Йоханом Далем для моделирования сложных систем. Учения Чарльза Ричарда Хоара про конструкции класса, языков программирования с объектами, классами и подклассами привели к созданию SIMULA 67.

Simula 67 явилась также первым языком с встроенной поддержкой основных механизмов объектно-ориентированного программирования. 

Небольшой пример кода
Begin
   Class Glyph;
      Virtual: Procedure print Is Procedure print;
   Begin
   End;

   Glyph Class Char (c);
      Character c;
   Begin
      Procedure print;
        OutChar(c);
   End;

   Glyph Class Line (elements);
      Ref (Glyph) Array elements;
   Begin
      Procedure print;
      Begin
         Integer i;
         For i:= 1 Step 1 Until UpperBound (elements, 1) Do
            elements (i).print;
         OutImage;
      End;
   End;

Ref (Glyph) rg;
   Ref (Glyph) Array rgs (1 : 4);

   ! Main program;
   rgs (1):- New Char ('A');
   rgs (2):- New Char ('b');
   rgs (3):- New Char ('b');
   rgs (4):- New Char ('a');
   rg:- New Line (rgs);
   rg.print;
End;

Можно много чему научиться у первопроходцев в истории вычисления и создания компьютеров. Работа, проделанная поколениями до нас сподвигла ко многим изменениям, формирующим современный ИТ-мир.
 
Источник: http://uzaitsev.blogspot.ru/2015/12/18.html