810 research outputs found

    Fun with formal methods is more than fun

    Get PDF
    Almost half of a century has passed since Robert W. Floyd published the first research that explicitly discussed formally how to assign meaning to programs. But recently David L. Parnas have called Really Rethinking "Formal Methods", to question the assumptions underlying the well-known current formal software development methods to see why they have not been widely adopted and what should be changed. So, things are right where they started decades ago? Not at all, since industrial applications of Formal Methods are not the unique measure of success. Another dimension where we can discuss utility of Formal Methods could be better education. A very popular (in Russia) aphorism of Mikhail Lomonosov (the first Russian academician) says: "Mathematics should be learned just because it disciplines and bring up the mind". Similarly, Formal Methods discipline and bring up minds in Computer Science. and help to bridge a "cultural gap" (E.W.Dijkstra) between Mathematics and Computer Science

    ALIAS calculus for a simple imperative language

    Get PDF
    This research has been supported by Nazarbayev University Seed Grant KF-14/16 "Research of Formal Models for analysis of programs with Dynamic Memory"

    Developing Students’ Skills of Identifying Reliable Scientific Sources: The Role of a Librarian

    Get PDF
    Purpose. The purpose of this paper is to provide modes of teaching Russian undergraduate students fundamental critical analysis of scientifc papers and ways of identifying misinformation and disinformation in “Academic Writing” discipline. design/methodology/approach. “Academic Writing” discipline was taught to frst-year undergraduate students by scientifc library experts. At a starting period students were asked to complete a questionnaire and perform a test, and then write an essay to identify how students were able to assess Web scientifc literature and verify their “tolerance” to inaccurate and fake scientifc information. Then contact hours on theory and practice of identifying and assessing information were introduced into the curriculum. At the end of the semester lists of works cited in original essays and fnal assays were compared.Findings. The fndings reveal that entirely all frst year undergraduate students lack the ability to differentiate between qualitative certain scientifc information and misinformation and disinformation, and they willingly borrow anything from the Web. However, students acquired necessary skills to assess information critically using socio-technical systems infrastructures.This was demonstrated with list of literature analysis in students’ essays and peer-checking. originality. It is headline news and social networks when it is necessary to distinguish from authentic and inaccurate information. However, skills of critical assessment of scientifc publications are of vital importance at a starting period of studies. In publications of that sort falsifcations, fabrications and other fake discoveries can lead to reputational and fnancial risks, and then trigger unethical demeanour of future researchers. It is qualifed librarians being experts in electronic resources and data based use who are able to get students to “digital hygiene”.Practical implications. The results of the paper can be used for teaching in university curriculum. Embedding information literacy and academic writing as well as involving information resources into students’ curriculum are aimed at the ability to identify misinformation and disinformation. Librarian-developed “Academic writing” discipline component might be introduced into curriculum as a self-contained short course or a composing element of any students’ academic discipline. All this mitigate the risks of applying low-equality, unverifed and openly fake information in educational and scientifc works

    Верификация шаблонов алгоритмов для метода отката и метода ветвей и границ

    Get PDF
    The Design and Analysis of Computer Algorithms is a must of Computer Curricula. It covers many topics that group around several core themes. These themes range from data structures to the complexity theory, but one very special theme is algorithmic design patterns, including greedy method, divide-and-conquer, dynamic programming, backtracking and branch-and-bound. Naturally, all the listed design patterns are taught, learned and comprehended by examples. But they can be semi-formalized as design templates, semi-specified by correctness conditions, and semi-formally verified by means of Floyd method. Moreover, this approach can lead to new insights and better comprehension of the design patterns, specification and verification methods. In this paper we demonstrate an utility of the approach by study of backtracking and branch-and-bound design patterns. In particular, we prove correctness of the suggested templates when the boundary condition is monotone, but the decision condition is anti-monotone on sets of "visited" vertices.Курс проектирования и анализа алгоритмов является обязательной составляющей учебных программ по информатике всех уровней. В университетах этот курс обязательно включает изучение структур данных, методы проектирования алгоритмов, теорию сложности и т.д. Этот курс знакомит с такими методами проектирования алгоритмов, как жадные алгоритмы, динамическое программирование, метод разделяй и властвуй, метод отката, метод ветвей и границ. Обычно знакомство с этими методами происходит на примерах. Но (как показано в данной статье) они могут быть (полу)формализованы в виде "паттернов", специфицированы условиями частичной и/или тотальной корректности и обоснованы (доказаны) методом Флойда верификации алгоритмов. Такой формализованный подход может привести к новому, более глубокому пониманию этих методов. В статье демонстрируется перспективность такого подхода на примере метода отката и метода ветвей и границ. В частности, мы доказываем, что разработанные шаблоны корректны, если граничное условие - монотонная функция, а решающее условие - антимонотонная функция от множества уже проверенных вершин

    Пример верификации в проекте F@BOOL@, основанном на булевских решателях

    Get PDF
    A verifying compiler is a system computer program that translates programs written by man from a high-level language into equivalent executable programs, and besides, proves (veri¯es) mathematical statements speci¯ed by man about the properties of the programs being translated. The purpose of the F@BOOL@ project is to develop a transparent for users, compact and portable verifying compiler F@BOOL@ for anno- tated computational programs, that uses e®ective and sound automatic SAT-solvers (i.e. programs that check satis¯ability of prepositional Boolean formulas in the conjunctive normal form) as means of automatic validation of correctness conditions (instead of semi-automatic proof techniques). The key idea is Boolean representation of all data instead of Boolean abstraction or ¯rst-order representation. (It makes di®erence be- tween F@BOOL@ and SLAM.) Our project is aimed at the veri¯cation of functional properties, and it assumes generation of ¯rst-order veri¯cation conditions (from invari- ants), and the validation/refutation of each veri¯cation condition using SAT-solvers after \conservative" translation of the veri¯cation conditions into Boolean form. During the period from 2006 to 2009, a popular (at that time) SAT-solver zCha® was used in the F@BOOL@ project. The ¯rst three veri¯cation experiments that have been exercised with its help are listed below: swapping values of two variables, checking whether three input values are lengths of sides of an equilateral or isosceles triangle, and detecting a unique fake in a set of 15 coins. The paper presents general outlines of the project and details of the last (the most extensive) experiment.Верифицирующий компилятор - это системная компьютерная программа, которая транслирует написанные человеком программы с языка высокого уровня в эквивалентные исполнимые программы и, кроме того, доказывает (верифицирует) специфицированные человеком математические утверждения о свойствах транслируемых программ. Цель проекта F@BOOL@ - разработка понятного для пользователей, компактного и переносимого верифицирующего компилятора аннотированных вычислительных программ, использующего эффективные и достоверные автоматические SAT-решатели в качестве средств автоматической проверки истинности условий корректности (вместо средств полуавтоматического доказательства). В период с 2006 по 2009 гг. в проекте F@BOOL@ использовался SAT-решатель zChaff. С его помощью были выполнены первые эксперименты по верификации простых программ на Mini-NIL: программы обмена переменных своими значениями, проверки троек целых чисел быть длинами сторон равностороннего или равнобедренного треугольника, и поиска одной фальшивой среди 15 монет с использованием чашечных весов. В работе рассказано об основных идеях проекта F@BOOL@ и приведены детали эксперимента по верификации программы, решающей головоломку о монетах

    SCREENING OF POTENTIAL LIGANDS FOR THE MAIN PROTEASE OF THE SARS-COV-2 CORONAVIRUS BY USING MOLECULAR DOCKING

    Full text link
    An RNA virus from the Coronaviridae family, a subgroup of Coronavirinae, was first identified in late 2019 as the cause of severe acute respiratory infection in China.1 Despite the fact that clinical guidelines have been developed for the treatment of a new coronavirus infection, there are currently no specific medicine of preventing and treating a new coronavirus infection
    corecore