Статья написана в соавторстве с Л. Эрлихом. Статья является существенным расширением доклада авторов на IV Международной конференции памяти академика А.П. Ершова (г. Новосибирск, 2001 г.) Авторы утверждают, что есть существенный разрыв между системным программированием, преподаваемым в университетах, и индустриальным программированием. Авторы считают, что есть реальная возможность сблизить академический и индустриальный подходы при реализации крупных проектов, требующих решения нетривиальных научных задач, с одной стороны, и методов, применяемых при реализации больших долгосрочных проектов, ориентированных на создание программных продуктов - с другой.
В данной статье обсуждаются различные вопросы, связанные с подготовкой программистов вообще и в СПбГУ в частности. Автор размышляет о том, как будущее молодого специалиста зависит от его подготовки, о том, что следует изменить в существующей системе подготовки молодых специалистов.
Cтатья написана на основе стенограммы выступления автора на
открытии конференции СПИСОК (Системное Программирование, Интеллектуальные Системы, Обеспечение Качества) 23–24 апреля 2012 года.
Основное внимание в статье уделяется необходимости развития инженерного образования в нашей стране, в частности, в общеобразовательных учреждениях. Современные школьники зачастую не умеют пользоваться гаечными ключами и отвертками, не знают устройство розетки или электрического выключателя. При этом в школах существует предмет «Технология», на уроках которого предписывается использовать проектный подход, делать упор на индустриальный труд и ведение дома, но пока нет никаких детальных методических рекомендаций. В данной статье описан опыт авторов в применении робототехнического конструктора ТРИК и графической технологии TRIK Studio в кружках дополнительного образования и на уроках «Технология» в школе-лицее № 419 г. Санкт-Петербург. Мы пришли к выводу, что робототехника может послужить хорошим мостиком к общеинженерному образованию, причем охватывая весь цикл обучения от учеников в начальной школе до студентов вузов и промышленное использование. Разработка инструментальных средств для такой амбициозной цели является сложной научно-технической задачей. В статье предложен проект инженерной лаборатории, которая стала бы своеобразным ресурсным центром общеобразовательного учреждения. С. 42-52.
Ключевые слова: школьный предмет «Технология», робототехника, инженерное образование, графические технологии программирования, методики образования.
В статье описана структура памяти и система команд виртуальной машины проекта РуСи. Объяснения, почему выбрано то или иное решение, будут полезны в лекциях и практических занятиях по курсу CS240 «Трансляция языков программирования». Описываемый материал уже дважды был применен в лекциях и практике для студентов третьего курса математико-механического факультета СПбГУ и показал свою методическую ценность. Авторы надеются, что эта статья будет полезна и студентам других вузов, начинающих свое знакомство с таким важным предметом, как трансляторы. С. 33-41.
The memory structure and the command system of the virtual machine of the RuC project are described. The explanations why a particular solution is chosen would be useful in lectures and practical exercises at CS240 “Programming languages translatin” course. This material has already been used twice in lectures and practice for third-year students of the Faculty of Mathematics and Mechanics of St. Petersburg State University and has shown its methodological value. The authors hope that this article will be useful to students of other universities, starting their acquaintance with such an important subject as translators.
Ключевые слова: язык С, транслятор, виртуальная машина, переносимость трансляторов, эффективность кода.
Keywords: C programming language, translator, virtual machine, translator portability, code efficiency.
Профессиональные стандарты В ИТ-индустрии наблюдается острый недостаток квалифицированных кадров, причем нужны не просто программисты, знающие один-два языка программирования, а специалисты, владеющие серьезной математической подготовкой, глубоко знающие определенные предметные области. На Математико-Механическом факультете в течение последних 20-ти лет целенаправленно и постепенно принимались структурные и кадровые решения, направленные на повышение качества образования в этой области. В данной статье описана структура ИТ кластера, образованного на базе существующих и трех новых кафедр. Приводится описание этих базовых кафедр, сведения об их преподавателях, как достигается соответствие международным стандартам. Отдельный раздел посвящен связям с промышленностью в области ИТ, организации студенческих исследовательских проектов. Авторы надеются, что опыт нашего факультета будет полезен другим вузам, в которых ведется преподавание ИТ-технологий.
In IT industry there is an acute lack of qualified staff and what is more important there is a lack not only of programmers who know one or two programming languages but of experts with professional mathematical skills who are experts in certain subject areas. In the Mathematics and Mechanics School we constantly and purposefully take structural and staff decisions to improve the quality of education in the area during the last 20 years. In the article the structure of the IT cluster formed on the basis of already existing and three new chairs is described. There is a description of these basic chairs, information about the lecturers and the correspondence to global educational standards. A certain chapter is devoted to relations with the industry in the IT field and the organization of student’s research projects. The authors hope that the experience of our faculty will be useful to other universities where IT technology is taught.
Ключевые слова: ИТ-индустрия, ИТ-образование, образовательные стандарты, связь с промышленностью, кафедры математико-механического факультета.
Keywords: keywords IT-industry, IT-education, educational standards, ties with industry, Departments of the School of Mathematics and Mechanics.
В статье описано расширение проекта РуСи, позволяющее использовать параллельные нити стандарта POSIX Threads. Это дало возможность существенно повысить эффективность использования многочисленных датчиков в популярных ныне системах Интернет вещей и в роботах, разрабатываемых на математико-механическом факультете СПбГУ. С. 25-30.
The article describes the extension of RuC project, which allows the use of parallel threads of the POSIX Threads standard. This made it possible to significantly improve the efficiency of the use of numerous sensors in the now popular systems of the Internet of things and in robots developed at the faculty of mathematics and mechanics of St. Petersburg state University.
Ключевые слова: Параллельные нити, стандарт POSIX Threads, проект РуСи.
Keywords: Parallel threads, POSIX Threads standard, RuC project.
Для выявления участков повышенной опасности на дорогах штата Массачусетс применяется метод кластеризации DBSCAN. Исследуются серьезные (то есть приведшие к летальному исходу или травмам) дорожно-транспортные происшествия (ДТП) с 2013 по 2018 годы. Алгоритм DBSCAN был также применен к набору равномерно распределенных по дорожной сети точек для определения порога в численности ДТП, после которого кластер можно считать статистически достоверным. Было произведено сравнение двух метрик расстояния: эвклидовой и сетевой. Показано, что обе метрики эквивалентны, если минимальное расстояние между отдельными ДТП в кластере не превышает 10 метров. Последний результат позволяет обосновать гибридный метод кластеризации, применимый для нахождения участков повышенной опасности на дорогах: для нахождения компактных кластеров можно использовать обычные эвклидовы расстояния между ДТП, а дорожную сеть использовать только для генерации равномерно распределенных по сети точек, нужных для выявления достоверных кластеров методом Монте-Карло. Гибридный метод позволяет обработать десятки тысяч ДТП, располагая сравнительно скромными вычислительными ресурсами. Анализ кластеров, выявленных на протяжении нескольких последовательных лет, позволяет сделать вывод об их стабильности и прогностической ценности. С. 45-57.
DBSCAN clustering method is applied to identify severe Traffic Accident (TA) hotpots on roads. The research examines severe TA, defined as those that led to human damage (injury or death), in the city of Newton, MA and in the entire state of Massachusetts, USA from 2013 to 2018. DBSCAN algorithm was also applied to network-constrained uniformly distributed over road network data to locate threshold in number of points per cluster so that all more populated clusters identified in real data can be treated as statistically significant. For DBSCAN algorithm two types of distance metrics, Euclidean and over Network, were compared. It is found that both distances are equivalent on scale of 10 meters, which justifies hybrid approach to clustering: using Network distance only to generate uniformly distributed points needed for Monte-Carlo simulations. All clustering can be performed using Euclidean distances which is much faster and more memory efficient. Subsequent years analysis demonstrates the extend that hotspots identified are stable and occur consecutively for several years and hence may possess predictive value.
Ключевые слова: транспорт ДТП кластер DBSCAN статистическое испытание Монте-Карло Массачусетс.
Keywords: vehicle traffic accident hotspot cluster DBSCAN simulation Monte-Carlo Massachusetts.
В работе [1] найдены статистически значимые кластеры дорожно-транспортных происшествий (ДТП), которые можно интерпретировать как участки повышенной опасности ДТП (УПО). В данной работе, продолжающей исследования, проведенные в [1], рассмотрен простой способ обхода УПО при маршрутизации транспорта по критерию общей длины пути, заключающийся в том, что атрибуту длины каждой грани дорожного графа, ведущей к УПО, присваивается очень большое число, что делает эту грань практически непроходимой для алгоритма маршрутизации. Численные расчеты, для которых используется дорожная карта Спрингфилда (Массачусетс) и данные об УПО в Спрингфилде, показывают, что для маршрутов, чьи начальные и конечные пункты совпадают, маршрутизация с обходом УПО увеличивает протяженность маршрута относительно первоначальной, вычисленной без учета УПО. В пределе среднее отношение длин обоих маршрутов стремится для Спрингфилда к 1,04. Для проверки эффективности маршрутизации введен новый показатель — относительный риск ДТП, равный отношению числа ДТП вдоль маршрута, учитывающего УПО, к числу ДТП, подсчитанных вдоль исходного, построенного без учета УПО маршрута. Показано, что при использовании алгоритма обхода кластеров ДТП для маршрутов длиной более 4 км. средний относительный риск ДТП снижается на величину порядка 16 % при увеличении длины маршрута в среднем на 8 %. С. 5–18.
In [1] statistically significant clusters (hotspots) of severe Traffic Accidents (TA) are found. In this article, as a continuation of [1], a simple routing algorithm to avoid TA hotspots on a road network has been proposed («hotspot avoidance» path). If the road network is represented by a graph with edges and nodes, it is enough to mark every edge which lead to the TA hotspot as “not passable” by letting a attribute of the edge be a very large digit, much greater than max edge length for a given road graph — and the routing algorithm (Dijkstra or Bellman-Ford) will avoid the TA hotspot automatically. Computer simulation was performed for Springfield, MA. It is shown that for the same initial and end points of the route, an average ratio (Route avoiding TA length/Original route length) is bigger for shorter original (without taking into account TA hotspots) routes and gradually slows down to 1.04 for max original route length inside Springfield. Route length ratios show extra route length needed to avoid TA hotspots, but say nothing about new route safety. To estimate safety gain, a new Relative Risk Ratio RRR= (TAs along route which avoids TA hotspots/TAs along original route) was introduced. It is shown for Springfield that relatively short (less than 4 km) original routes are more dangerous (have more TAs along the «hotspot avoidance» route) than original ones, but for relatively long (> 4 km) original routes average RRR gets smaller by 16 % while modified path gets longer by 8 % in average.
Ключевые слова: маршрутизация транспорта, относительный риск ДТП, алгоритм Дейкстры, транспорт, кластер ДТП, DBSCAN, статистическое испытание Монте-Карло, Массачусетс.
Keywords: routing vehicle traffic, relative risk ratio, Dijkstra algorithm, accident hotspot, cluster, DBSCAN, Monte-Carlo simulation, Massachusetts.
Статья рассказывает о том, что изменилось за последние 5-6 лет в области подготовки системных программистов. Автор затрагивает следующие вопросы: потребность индустрии в IT-специалистах, cтандарты IT-образования, поддержка обучения предприятиями IT-индустрии, экономические вопросы подготовки кадров, поддержка IT-индустрии государством и др.
На примере г. Санкт-Петербурга рассмотрен способ повышения безопасности дорожного движения, заключающийся в построении маршрута, обходящего препятствия, выявленные на дорожной карте (графе). Препятствиями служат ребра дорожного графа, содержащие статистически достоверно большое число дорожно-транспортных происшествий (ДТП).
Для проверки эффективности маршрутизации используется показатель — относительный риск ДТП, равный отношению числа ДТП вдоль маршрута, учитывающего препятствия, к числу ДТП, подсчитанных вдоль исходного, построенного без учета препятствий маршрута.
Показано, что обход препятствий позволяет снизить относительный риск ДТП на 14,5–36 % (в зависимости от длины исходного маршрута) за счет увеличения средней длины маршрута на 8–10 % и увеличения среднего числа проходимых вершин дорожного графа на 3–12 %. С. 30-39.
A simple routing algorithm to improve vehicle safety on a road network has been proposed. If the road network is represented by a graph with edges and nodes, it is enough to mark most populated with Traffic Accidents (TA) edges by adding to a attribute of the edge some penalty and the routing algorithm (Dijkstra or Bellman-Ford) will try to avoid this edge automatically.
To estimate safety gain, a Relative Risk Ratio RRR= (TAs along route which avoids TA hotspots/TAs along original route) was used.
Computer simulation was performed for St. Petersburg, Russian Federation. It is shown that for the same start and end points of the route, an average RRR gets smaller by 14.5–36 % depending on original route length. It is also shown that the cost for improving vehicle safety is an increase in the route length (by 8–10 %) and an increase in the number of nodes in the route by 3–12 % is required.
Ключевые слова: транспорт, маршрутизация, относительный риск ДТП, алгоритм Дейкстры, статистическое испытание, Санкт-Петербург.
Keywords: routing, vehicle traffic, relative risk ratio, Dijkstra algorithm, accident hotspot, statistical tests, St. Petersburg.
В статье рассматривается эволюция идеи учета последующего контекста, возникшая в середине 50-х годов в задаче автоматического перевода с русского языка на английский, её пробная реализация в середине 70-х годов на примере синтеза эффективной объектной программы в компиляторах и, наконец, её современная реализация и применение в задачах поиска решений методом сначала-в-ширину (breadth-first). Для реализации этой идеи применялись различные техники, наиболее эффективной из которых оказалась техника использования BDD (двоичных диаграмм решений). Конечным, хотя и несколько неожиданным результатом, явилось утверждение, что для широкого класса рекурсивно-переборных задач метод решения сначала-в-ширину выигрывает у традиционного механизма возвратов (метод сначала-в-глубину).
The article covers the evolution of the idea of taking subsequent context into account. This idea emerged in the middle of 1950th in the automated Russian-English translation task. The article describes its trial implementation for the task of efficient object program in compilers in 1970th, and its modern implementation for the task of width-first searching problem decisions. Different techniques to implement this idea were applied, the most effective being the technique that uses BDD (binary decision diagrams). Finally, the advantages of the width-first method, as compared to traditional mechanism of backtracking (depth-first method) for wide class of recursive search tasks are claimed.
Ключевые слова: учет последующего контекста, методы сначала-в-ширину и сначала-в-глубину, рекурсивно-переборные задачи, BDD, оптимизация объектного кода.
Проект РуСи задуман в качестве инструмента обучения программированию школьников, студентов и взрослых людей, которые решили освоить эту замечательную специальность. Первоначальным толчком была необходимость создать простое, наглядное, но достаточно мощное средство программирования роботов, затем задача была расширена на обучение алгоритмической грамотности и информатике. Наконец, оказалось, что получившийся компактный компилятор с языка С (с некоторыми ограничениями) в коды оригинальной виртуальной машины может быть с успехом использован в курсе «Трансляция» специальности Программная инженерия. Архитектура виртуальной машины проекта РуСи будет описана в отдельной статье. С. 36-47.
The project RuC was designed as a tool for teaching programming among pupils, students and adults who have decided to learn this wonderful profession. Initially there was the need to create a simple, intuitive, yet powerful tool for robots programming, then the task was extended to the training of algorithmic and computer science. Finally, it was found that the resulting compact compiler with C language (with some restrictions) to the codes of the original virtual machine can be successfully used in the course «Translation» for software engineering specialty. The architecture of the RuC virtual machine project will be discussed in a separate article.
Ключевые слова: язык С, компилятор, виртуальная машина, обучение программированию, роботы, школьная информатика.
Keywords: C programming language, compiler, virtual machine, programming education, robotics, school informatics.