КурсоWeek #67 kypcoweek@progmeistars.lv 30 ноября 2007 года ® Бюллетень SIA Pulkveža Brieža 6-1, tel. 7336035, www.progmeistars.lv Администрация планирует при общении с курсантами использовать электронную почту самым существенным образом. Поступление на курсы. Без тестирования принимаются школьники 5-9 классов на прикладное отделение. Без тестирования традиционно переходят на основное или начальное отделения лучшие курсанты начального, прикладного и подготовительного отделений. Без тестирования принимаются призеры олимпиад. Поступающий предъявляет администрации диплом. Без тестирования принимаются ученики c хорошими отметками по математике. Поступающий предъявляет администрации табель или справку из школы. Остальные школьники принимаются по результатам собеседования (до 13 января) или тестирования (13 января). О времени собеседования следует договориться с администрацией (тел.7336035). Чтобы Вас допустили к тестированию, Вам следует по 12 января зарегистрироваться по интернету www.progmeistars.lv или по телефону 7336035. Приглашайте своих толковых друзей учиться на наших курсах! Кружки и семинар по математике активно работают. Кружок для 6-7 классов ведет сейчас С.И.Мельник. Кружок для 8-9 классов - В.Молдавский. Семинар по математике для 10-12 классов ведет А.Я.Каневский. Для курсантов эти занятия бесплатны. Prolog&Lisp – это логично и функционально. После Нового года преподаватель Е.Ельник планирует прочесть интереснейший спецкурс Prolog&Lisp. Первая часть статьи написана Е.Ельником. К последующим частям руку приложил С.И.Мельник. Он составил вторую часть статьи и подобрал в интернете подходящие тексты для третьей части. Первая часть. Е.Ельник Самыми известными подходами (или парадигмами) в программировании являются процедурный (или директивный) и объектно-ориентированный подходы. Используя эти подходы, и создаются почти все реальные коммерческие проекты. Курс рассказывает о двух самых распространённых альтернативных подходах в программировании. Разбираются задачи, которые удобнее решать, используя именно альтернативные подходы. Рассматриваются логический (ProLog) и функциональный (LisP) языки программирования, а также некоторые теоретические вопросы, напрямую связанные с темой, например: конечные автоматы логика 1-ого порядка булевы функции Не опоздайте! Курсантам прикладного, начального и основного отделений, а также школьникам, принятым до 4 января, следует заплатить за курсы и зарегистрироваться: на спецкурсы основного отделения - до 11.01.2008 включительно, на остальные семестры (I-V семестр)- до 15.01.2008 включительно. Поступившие по результатам собеседования 13 января платят и регистрируются 14-16 января. Примеры регистрации можно найти в конце раздела "правила поступления" на www.progmeistars.lv , а также через обьявление «Оплата и регистрация за следующий семестр» на главной странице нашего сайта. Зарегистрироваться после оплаты нужно на курсах или по e-mail по адресу kursi@progmeistars.lv. Стандартная ошибка курсантов - произведена оплата, но нет регистрации. Звоним, выясняем: «А я хочу так же, как и в прошлом году». Повторяем еще раз: группы каждый семестр расформировываются. Нужно предложить курсам несколько вариантов. Конечно, Вы можете включить и прежнее время занятий. Вторая часть. Есть программирование императивное и программирование декларативное. В императивном программировании программа представлена в виде набора действий, которые должны быть выполнены, т.е. код описывает решение задачи. Типичные представители императивных языков — Pascal или C. В идеале декларативного программировании код описывает саму задачу (а не один из способов её решения, как в императивном), т.е. программист описывает условия задачи, её точную формулировку и способы получения результата, а выбор алгоритма решения, получение результата – дело исполняющей системы. Основное внимание в декларативном программировании уделяется тому, что нужно сделать, а не тому как это нужно сделать. Пишите письма! Уважаемые курсанты! Данные о ваших элетронных адресах, имеющиеся в нашем распоряжении, устарели и весьма неполны. Вы уже присылаете нам свои новые адреса. Администрация обращается к вам с просьбой делать это активнее. В своих письмах четко указывайте кто автор письма. Наш адрес kursi@progmeistars.lv. 1 КурсоWeek #67 30 ноября 2007 года kypcoweek@progmeistars.lv Основные разновидности декларативного программирования: функциональное программирование (типичные представители - Lisp, Haskell) и логическое программирование (типичный представитель – Prolog) В логическом программировании программа представляет собой не набор команд и инструкций, а описание абстрактной модели решаемой задачи в виде логических аксиом. Формулируются сведения о задаче и предположения, достаточные для её решения. Программа выполняется путем постановки задачи, описанной в виде задачи проверки целевого логического утверждения (вопроса). Выполнение программы состоит в попытке доказать целевое утверждение, используя сформулированные предположения (аксиомы и способы их преобразования). В функциональном программировании программа представляет собой не набор инструкций для компьютера, а совокупность функций, вызывающих друг друга и самих себя, зачастую опосредованно. Вычисления продолжаются до тех пор, пока функция, которая вызвала и запустила всю программу, не вернёт результат пользователю. постановке задачи, формализованной в виде логического утверждения, подлежащего доказательству, - такое утверждение называется целевым утверждением. Выполнение программы состоит в попытке решить задачу, т. е. доказать целевое утверждение, используя предположения, заданные в логической программе. США сравнили уровень научных знаний у школьников. http://www.podrobnosti.ua/society/2007/11/17/474566.htmlВ США сравнили уровень научных знаний у школьников 45-ти государств мира. Восьмиклассники США знают математику и науку (понятие "наука" в американских школах означает набор знаний в области точных наук физики, химии, биологии и пр.) на уровне школьников Европы. Однако учащиеся из стран Азии существенно опережают и американцев, и европейцев. Американский Институт Исследований опубликовал доклад с названием "Удача улыбается подготовленным умам", в котором сравнивается уровень научных знаний у школьников США и 45-ти государств мира. По данным доклада, наиболее фундаментальными знаниями по математике обладают учащиеся Сингапура (набрали 605 баллов), Южной Кореи (589), Гонконга (586), Тайваня (585) и Японии (570). В десятку лучших также входят школьники Бельгии (537), Нидерландов (536), Эстонии (531), и Венгрии (529). Россия, Латвия, Малайзия, и Словакия набрали по 508 баллов, разделив 10 место. США оказались на 12-м месте (504), опередив Литву (13-е место, 502). Из постсоветских государств в рейтинге были учтены также Армения (19-е место, 478 балла) и Молдова (24-е место, 460). Для сравнения, восьмиклассники Англии и Шотландии получили по 498 баллов, Израиля - 496, Италии 484, Ирана - 411, Палестины - 390, Саудовской Аравии - 332. Последнее место в рейтинге заняли школьники ЮАР (264 балла). "Базовым уровнем" при оценке математических знаний является дельта в 469 - 566 баллов. Таким образом, знания школьников Сингапура, Южной Кореи, Гонконга, Тайваня и Японии - "выше базового". 22 государства (в том числе, США и Россия) находятся на базовом уровне, 19 стран (включая Молдову) - "ниже базового". Науку лучше всего знают в Сингапуре (578 баллов), Тайване (571), Южной Корее (558), Гонконге (556), Японии и Эстонии (по 552 балла). В десятку лидеров также входят Англия (544), Венгрия (543), Нидерланды (536) и США с Австралией (по 527 баллов). Литва - на 13-м месте (519 баллов), Россия - на 16-м (514), Латвия - на 17-м (512), Молдова - на 24-м (472), Армения - на 27-м (461). Для сравнения: школьники Италии получили 491 балл, Израиля - 488, Ирана - 453, Палестины - 435, Саудовской Аравии - 398. ЮАР опять на последнем месте (244). "Базовым" для научных знаний считается уровень в 494 - 567 баллов, следовательно знания учащихся Молдовы и Армении, а также еще 22-х государств, находятся "ниже базового" уровня. В свою очередь, знания учащихся Сингапура и Тайваня "выше базового", а 20-ти стран (включая США и Россию) - на "базовом". Третяя часть. Тексты Ценность ФУНКЦИОНАЛЬНОГО ПРОГРАММИРОВАНИЯ в современном мире программирования Сейчас очень много информации, понятий, технологий и т.д. Это совершенно сбивает с толку, люди перегружены информацией. Подход, где все основано на небольшом количестве фиксированных понятий, и все остальное строится из них, без добавления аксиом хорошая основа для вечно расширяющегося количества терминов и разнообразия технологий. Принципы ФП, если они усвоены правильно, позволяют забывать детали и вспоминать их в нужный момент без услилий после прочтения, скажем, документации. Логическое программирование, логическая программа Логическим программированием называется непосредственное использование логики в качестве языка программирования. Логическое программирование, также как и функциональное программирование, радикально отклоняется от основного пути развития языков программирования. Логическое программирование строится не с помощью некоторой последовательности абстракций и преобразований, отталкивающейся от машинной архитектуры фон Неймана и присущего ей набора операций, а на основе абстрактной модели, которая никак не связана с каким-либо типом машинной модели. Логическое программирование базируется на убеждении, что не человека следует обучать мышлению в терминах операций компьютера (на некотором историческом этапе определенные ученые и инженеры считали подобный путь простым и эффективным), а компьютер должен выполнять инструкции, свойственные человеку. В своем предельном и чистом виде логическое программирование предполагает, что сами инструкции даже не задаются, а вместо этого явно, в виде логических аксиом, формулируются сведения о задаче и предположения, достаточные для ее решения. Такое множество аксиом является альтернативой обычной программе. Подобная программа может выполняться при 2