Programming languages, natural languages, and mathematics

1975 ◽  
Vol 18 (12) ◽  
pp. 676-683 ◽  
Author(s):  
Peter Naur
2021 ◽  
Vol 14 (2) ◽  
pp. 187-196
Author(s):  
Francisco Javier Triveno Vargas ◽  
Hugo Siles Alvarado

STEM education is a strategy based on four disciplines (science, technology, engineering and mathematics), integrated in an innovative interdisciplinary approach. Although, the concept of STEM education is more relevant today, the discussion of a teaching model with special attention in the four subjects aforementioned began in the early 2000s. Taking into account this context, the strategy presented in this paper has been disseminated in Bolivia’s main universities for the last five years. A country that has not yet managed to associate basic disciplines such as calculus, matrix algebra, and/or differential equations to solve problems of an applicative nature, that is, to establish the link between theory and practice. To establish the connection, it is necessary to deduce differential equations associated with practical problems; solve these equations with numerical methods, appeal to the simulation concept to later introduce programming languages like Python/VPython to build virtual laboratories. The classical problem addressed for this purpose is the satellite of two degrees of freedom.


Author(s):  
Xiaoqing Wu ◽  
Marjan Mernik ◽  
Barrett R. Bryant ◽  
Jeff Gray

Unlike natural languages, programming languages are strictly stylized entities created to facilitate human communication with computers. In order to make programming languages recognizable by computers, one of the key challenges is to describe and implement language syntax and semantics such that the program can be translated into machine-readable code. This process is normally considered as the front-end of a compiler, which is mainly related to the programming language, but not the target machine. This article will address the most important aspects in building a compiler front-end; that is, syntax and semantic analysis, including related theories, technologies and tools, as well as existing problems and future trends. As the main focus, formal syntax and semantic specifications will be discussed in detail. The article provides the reader with a high-level overview of the language implementation process, as well as some commonly used terms and development practices.


2020 ◽  
Vol 2020 (8) ◽  
pp. 309-1-309-6
Author(s):  
Xunyu Pan ◽  
Colin Crowe ◽  
Toby Myers ◽  
Emily Jetton

Mobile devices typically support input from virtual keyboards or pen-based technologies, allowing handwriting to be a potentially viable text input solution for programming on touchscreen devices. The major problem, however, is that handwriting recognition systems are built to take advantage of the rules of natural languages rather than programming languages. In addition, mobile devices are also inherently restricted by the limitation of screen size and the inconvenient use of a virtual keyboard. In this work, we create a novel handwriting-to-code transformation system on a mobile platform to recognize and analyze source code written directly on a whiteboard or a piece of paper. First, the system recognizes and further compiles the handwritten source code into an executable program. Second, a friendly graphical user interface (GUI) is provided to visualize how manipulating different sections of code impacts the program output. Finally, the coding system supports an automatic error detection and correction mechanism to help address the common syntax and spelling errors during the process of whiteboard coding. The mobile application provides a flexible and user-friendly solution for realtime handwriting-based programming for learners under various environments where the keyboard or touchscreen input is not preferred.


With the tremendous growth in the areas of computing, statistics, and mathematics has led to the rise of the emerging field of expertise, named ‘Data Science’. This paper focuses on the comparative study and evaluation of the data science libraries used in Python Programming Languages, named ‘Matplotlib’ and ‘Seaborn’. The sole purpose of this paper is to identify areas and evaluate the strengths and weaknesses of these libraries with the implementation of code and identify the classification of the univariate and multivariate plotting of data concerned with patterns of data visualization and computational modelling of data in the form of processed information using techniques of big data and data mining


2019 ◽  
Vol 26 ◽  
pp. 29-35
Author(s):  
I.A. TREGUBOVA ◽  

Progress in hardware and software development is impressively fast. The main reason of computer graphics fast improvement is a full experience that can be reached though visual representation of our world. Therefore, the most interesting problem of it is a realistic image with high quality and resolution, which often requires procedural graphics generation. The article analyzes simplicity of a fractal and mathematics abstraction. Mathematics describes not only accuracy and logic but also beauty of the Universe. Mountains, clouds, trees, cells do not fit into the world of Euclidean geometry. They cannot be described by its methods. But fractals and fractal geometry solve that problem. Fractals are fairly simple equations on a sheet of paper with bright, unusual images, and, above all, they explain things. Fractal is a figure in the space, which consists of statistical character as the whole. It is self-similar, and therefore looks ‘roughly’ same and does not depend on its scale. So, any complex object can be called a fractal, if it has the same shape, as the parts it consists of. Fractal is abstract, and it helps to translate any algebraic problem into geometric, where solution is always obvious. A lot of researches in the field of fractal graphics has been carried out, but there are still issues that deserve considerable attention and more perfect solutions. The main purpose of the work is codes development with object-oriented programming languages for fractal graphics rendering. The article analyzes simplicity of a fractal and mathematics abstraction. Procedural generation was described as a method of algorithmic data generation for 3D models and textures creation. Code was written with general-purpose programming language Python, which renders step by step creation of fractal composition and variations of fractal images. Fractal generation used for modeling is part of realism in computer graphics In summary, procedural generation is very important for video games, as it can be used to automatically create large amount of game content. The random generation of natural looking landscapes is based on geometric computer generated images Created compositions can be used in computer science for image compression, in medicine for the study of the cellular level of organs, etc.


2020 ◽  
Vol 34 (01) ◽  
pp. 1169-1176
Author(s):  
Huangzhao Zhang ◽  
Zhuo Li ◽  
Ge Li ◽  
Lei Ma ◽  
Yang Liu ◽  
...  

Automated processing, analysis, and generation of source code are among the key activities in software and system lifecycle. To this end, while deep learning (DL) exhibits a certain level of capability in handling these tasks, the current state-of-the-art DL models still suffer from non-robust issues and can be easily fooled by adversarial attacks.Different from adversarial attacks for image, audio, and natural languages, the structured nature of programming languages brings new challenges. In this paper, we propose a Metropolis-Hastings sampling-based identifier renaming technique, named \fullmethod (\method), which generates adversarial examples for DL models specialized for source code processing. Our in-depth evaluation on a functionality classification benchmark demonstrates the effectiveness of \method in generating adversarial examples of source code. The higher robustness and performance enhanced through our adversarial training with \method further confirms the usefulness of DL models-based method for future fully automated source code processing.


2018 ◽  
Vol 76 (2) ◽  
pp. 116-120 ◽  
Author(s):  
Nicos Valanides

Modern technology is transforming in an accelerating rate our physical, economic, cultural and educational environments. The new generation of learners, both adults and students of all ages, is surrounded by a multitude of technological tools, and these tools (computers, robots, software, internet etc.) are used ubiquitously not only in learning environments, but in daily life as well. Today’s children are furthermore characterized as “digital natives” and are clearly distinguished from their teachers and adults who constitute the generation of “digital immigrants” (Prensky, 2001). Visual programming languages, specifically designed for young learners, provide additional programming tools that are integrated in robotics education as well, while additional advances provide support to the idea of following the STEM (Science, Technology and Engineering and Mathematics) approach.


Sign in / Sign up

Export Citation Format

Share Document