Mahmoud Samir Fayed

Last updated
Mahmoud Samir Fayed
محمود سمير فايد
Mahmoud Samir Fayed the creator of PWCT.jpg
Born (1986-12-29) December 29, 1986 (age 37)
Nationality Egyptian
Alma mater Menoufia University
(B.Eng., 2008)
King Saud University
(M.Sc., 2017)
Occupation Computer Programmer
Years active2005-present
Known for PWCT, Ring

Mahmoud Samir Fayed (born December 29, 1986) is a computer programmer, known as the creator of the PWCT programming language. PWCT is a free open source visual programming language for software development. He also created or designed Ring. He is a researcher at King Saud University. Prior to that, he worked at the Riyadh Techno Valley in the Information and Communication Technology Incubator. [1] [2] [3] [4] [5] [6] [7]

Contents

Background

Fayed started to learn computer programming at 10 years old under the supervision of his father who works as a computer programmer. He started using the Clipper programming language under MS-DOS. In 2006 he wrote free Arabic programming books. He studied computer science at the Faculty of Electronic Engineering, Menoufia University, Egypt, graduating in 2008. [8] [9] [10] [11]

Fayed received a Master's degree in 2017, from the College of Computer and Information Sciences, King Saud University, Saudi Arabia. [12]

Career

PWCT language

In 2005 Fayed began work on a new visual programming language called PWCT and distributed it as a free-open source project in 2008. [13] [14] [15]

Supernova language

In 2009 Fayed began work on a new programming language called Supernova and distributed it as a free-open source project in 2010. The language support writing the source code in Arabic/English keywords at the same time and it's a Domain-specific language for GUI development using natural code. Supernova is developed using PWCT. [16] [17] [18]

JVLC Journal

In 2013 Fayed worked with other researchers as a reviewer for the Journal of Visual Languages and Computing. [19] The journal is published by Elsevier. [20]

LASCNN algorithm

In 2013–2014 Fayed worked with other researchers on designing the LASCNN algorithm. In graph theory, LASCNN is a Localized Algorithm for Segregation of Critical/Non-critical Nodes. The LASCNN algorithm establishes k-hop neighbor list and a duplicate free pair wise connection list based on k-hop information. If the neighbors are stay connected then the node is non critical. [21] [22]

Ring language

In 2013 Fayed began work on a new programming language called Ring and distributed it as a free-open source project in 2016. Ring aims to offer a language focused on helping the developer with building natural interfaces and declarative DSLs. [23] [24] [25]

Machine Learning

In 2022-2023 Fayed worked with other researchers on developing different machine learning models and solutions. One of these models uses natural language processing to predict the citations count of research papers in Otology field using the paper title, abstract and authors. the results indicate that using neural networks provides the best results compared to other algorithms like linear regression and random forest. The paper abstract has more influence on the citations number compared to the paper title or authors names. [26]

Also, they developed a model to predict the post-operative electrode impedances after cochlear implantation surgery. These models are developed using Ring and Microsoft Azure Machine Learning. [27]

Papers

Related Research Articles

Computer programming or coding is the composition of sequences of instructions, called programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of procedures, by writing code in one or more programming languages. Programmers typically use high-level programming languages that are more easily intelligible to humans than machine code, which is directly executed by the central processing unit. Proficient programming usually requires expertise in several different subjects, including knowledge of the application domain, details of programming languages and generic code libraries, specialized algorithms, and formal logic.

A distributed system is a system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another. Distributed computing is a field of computer science that studies distributed systems.

<span class="mw-page-title-main">Programming language</span> Language for communicating instructions to a machine

A programming language is a system of notation for writing computer programs.

Pascal is an imperative and procedural programming language, designed by Niklaus Wirth as a small, efficient language intended to encourage good programming practices using structured programming and data structuring. It is named after French mathematician, philosopher and physicist Blaise Pascal.

In computer science, pseudocode is a description of the steps in an algorithm using a mix of conventions of programming languages with informal, usually self-explanatory, notation of actions and conditions. Although pseudocode shares features with regular programming languages, it is intended for human reading rather than machine control. Pseudocode typically omits details that are essential for machine implementation of the algorithm. The programming language is augmented with natural language description details, where convenient, or with compact mathematical notation. The purpose of using pseudocode is that it is easier for people to understand than conventional programming language code, and that it is an efficient and environment-independent description of the key principles of an algorithm. It is commonly used in textbooks and scientific publications to document algorithms and in planning of software and other algorithms.

In computing, source code, or simply code, is text that conforms to a human-readable programming language and specifies the behavior of a computer. A programmer writes code to produce a program that runs on a computer.

SuperCollider is an environment and programming language originally released in 1996 by James McCartney for real-time audio synthesis and algorithmic composition.

In compiler optimization, register allocation is the process of assigning local automatic variables and expression results to a limited number of processor registers.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language, also known as diagrammatic programming, graphical programming or block coding, is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations. VPLs are generally the basis of Low-code development platforms.

<span class="mw-page-title-main">History of programming languages</span> History of languages used to program computers

The history of programming languages spans from documentation of early mechanical computers to modern tools for software development. Early programming languages were highly specialized, relying on mathematical notation and similarly obscure syntax. Throughout the 20th century, research in compiler theory led to the creation of high-level programming languages, which use a more accessible syntax to communicate instructions.

<span class="mw-page-title-main">Recursion (computer science)</span> Use of functions that call themselves

In computer science, recursion is a method of solving a computational problem where the solution depends on solutions to smaller instances of the same problem. Recursion solves such recursive problems by using functions that call themselves from within their own code. The approach can be applied to many types of problems, and recursion is one of the central ideas of computer science.

The power of recursion evidently lies in the possibility of defining an infinite set of objects by a finite statement. In the same manner, an infinite number of computations can be described by a finite recursive program, even if this program contains no explicit repetitions.

<span class="mw-page-title-main">DRAKON</span> Algorithm mapping tool

DRAKON is a free and open source algorithmic visual programming and modeling language developed as part of the defunct Soviet Union Buran space program in 1986 following the need in increase of software development productivity. The visual language provides a uniform way to represent processes in flowcharts.

<span class="mw-page-title-main">Computer cluster</span> Set of computers configured in a distributed computing system

A computer cluster is a set of computers that work together so that they can be viewed as a single system. Unlike grid computers, computer clusters have each node set to perform the same task, controlled and scheduled by software. The newest manifestation of cluster computing is cloud computing.

<span class="mw-page-title-main">Visual Studio Code</span> Source code editor developed by Microsoft

Visual Studio Code, also commonly referred to as VS Code, is a source-code editor developed by Microsoft for Windows, Linux and macOS. Features include support for debugging, syntax highlighting, intelligent code completion, snippets, code refactoring, and embedded Git. Users can change the theme, keyboard shortcuts, preferences, and install extensions that add functionality.

<span class="mw-page-title-main">PWCT</span> Visual programming language

PWCT is an free open source visual programming language for software development. The project was founded in December 2005 as a free-open source project that supports designing applications through visual programming then generating the source code. The software supports code generation in many textual programming languages.

<span class="mw-page-title-main">Ring (programming language)</span> Dynamically typed, general-purpose programming language

Ring is a dynamically typed, general-purpose programming language. It can be embedded in C/C++ projects, extended using C/C++ code and/or used as a standalone language. The supported programming paradigms are imperative, procedural, object-oriented, functional, meta, declarative using nested structures, and natural programming. The language is portable and can be used to create console, GUI, web, game and mobile applications.

In graph theory, LASCNN is a Localized Algorithm for Segregation of Critical/Non-critical Nodes The algorithm works on the principle of distinguishing between critical and non-critical nodes for network connectivity based on limited topology information. The algorithm finds the critical nodes with partial information within a few hops.

VoTT is a free and open source Electron app for image annotation and labeling developed by Microsoft. The software is written in the TypeScript programming language and used for building end-to-end object detection models from image and videos assets for computer vision algorithms.

Asma bint Muqbi bin Awad Al-Ahmadi is a Saudi academic writer and critic.

References

  1. M. Ayouni (29 July 2020). "A Dialogue with Mahmoud Fayed" (PDF). Springer.
  2. Beginning Ring Programming - From Novice to Professional | Mansour Ayouni | Apress.
  3. Mones Hawas (29 May 2018). "Progress in developing PWCT 2.0". youm7.com. youm7.
  4. Rich (14 December 2011). "The Anvil Podcast: Programming Without Coding Technology". SourceForge.
  5. Ahmed Tartour (January 2020). "Your way to programming (Arabic Book, Pages 56-57)" (PDF). Kotobna.
  6. Ahmed Mohammed Hassan. "Ring: A programming language developed by Arab". muslims-res.com. Retrieved 2020-09-28.
  7. Zayed. "Programming Without Coding Project". itwadi.com. Retrieved 2020-09-28.
  8. Hend Al-Khalifa (29 February 2008). "Free Open Source Visual Programming Language". Al Riyadh.
  9. Naglaa Elsayed (2009). "Programming Without Coding Technology - Innovative Project (offline source)" (PDF). Al Gomhuria. Archived from the original (PDF) on 2019-06-18.
  10. Samar Shaker (2008). "Learn Programming with Mahmoud Fayed (offline source)" (PDF). Rose_al-Yūsuf. Archived from the original (PDF) on 2020-10-11.
  11. Omar Selim (2019). "Ring programming language" (PDF). bimarabia.com.
  12. Fayed, Mahmoud Samir. "General-Purpose Visual Language and Information System with Case-Studies in Developing Business Applications." arXiv preprint arXiv:1712.10281 (2017).
  13. Computer Total Magazine (7 October 2018). "Free software: the best freeware from October 2018 - Includes (You can make almost anything with PWCT)". Computer!Totaal.
  14. AL-AALEM Magazine (November 2008). "Programming Without Coding Technology Review" (PDF). Al-ʻĀlim = Al-Aalem (Scientist) Magazine. AL-AALEM the Scientists Magazine, Issue No. 116, Pages 26-27 Deposit number 18/0157. ISSN   1319-6545.
  15. Andrei Fercalo (11 March 2014). "Programming without coding technology review". Softpedia.
  16. Omnia (24 December 2011). "An Egyptian young man invents the Supernova programming language". youm7.com. youm7.
  17. Zayed. "Supernova (Arabic programming language)". itwadi.com. Retrieved 2020-10-09.
  18. "السوبرنوفا.. لغة برمجة تستخدم اللغة العربية". 18 April 2010. Archived from the original on 2017-07-17.
  19. "Thanks to Reviewers". Journal of Visual Languages & Computing. 24: 68–69. 2013. doi:10.1016/j.jvlc.2012.12.001 . Retrieved 2020-09-29.
  20. "Journal of Visual Languages and Computing". elsevier.com. Retrieved 2020-09-29.
  21. G. Sugithaetal., International Journal of Advanced Engineering Technology E-ISSN 0976-3945
  22. Alnuem, Zafar, Imran, Sana, and Fayed. "Formal specification and validation of a localized algorithm for segregation of critical/noncritical nodes in MAHSNs." International Journal of Distributed Sensor Networks 10, no. 6 (2014): 140973
  23. Hany Salah (11 January 2016). "Ring: A New programming language". youm7.com. youm7.
  24. Bernhard Lauer (14 August 2018). "Ring: flexible, simple, fast". Dotnetpro.
  25. Softpedia Team (20 May 2020). "Ring 1.12 review". Softpedia.
  26. Alohali, Y.A., Fayed, M.S., Mesallam, T., Abdelsamad, Y., Almuhawas, F. and Hagr, A., 2022. A machine learning model to predict citation counts of scientific papers in otology field. BioMed Research International, 2022.
  27. Alohali, Y.A., Fayed, M.S., Abdelsamad, Y., Almuhawas, F., Alahmadi, A., Mesallam, T. and Hagr, A., 2023. Machine learning and cochlear implantation: predicting the post-operative electrode impedances. Electronics, 12(12), p.2720.

Further reading