Uploaded by Ujwal Matherchod

9781003139010 previewpdf

advertisement
Handbook of Computer
­Programming with Python
This handbook provides a hands-on experience based on the underlying topics, and assists students
and faculty members in developing their algorithmic thought process and programs for given computational problems. It can also be used by professionals who possess the necessary theoretical and
computational thinking background but are presently making their transition to Python.
Key Features:
• Discusses concepts such as basic programming principles, OOP principles, database programming, GUI programming, application development, data analytics and visualization,
statistical analysis, virtual reality, data structures and algorithms, machine learning, and
deep learning.
• Provides the code and the output for all the concepts discussed.
• Includes a case study at the end of each chapter.
This handbook will benefit students of computer science, information systems, and information
technology, or anyone who is involved in computer programming (entry-to-intermediate level), data
analytics, HCI-GUI, and related disciplines.
Handbook of Computer
­Programming with Python
Edited by
Dimitrios Xanthidis
Christos Manolas
Ourania K. Xanthidou
Han-I Wang
First edition published 2023
by CRC Press
6000 Broken Sound Parkway NW, Suite 300, Boca Raton, FL 33487-2742
and by CRC Press
4 Park Square, Milton Park, Abingdon, Oxon, OX14 4RN
CRC Press is an imprint of Taylor & Francis Group, LLC
© 2023 selection and editorial matter, Dimitrios Xanthidis, Christos Manolas, Ourania K. Xanthidou, Han-I Wang;
individual chapters, the contributors
Reasonable efforts have been made to publish reliable data and information, but the author and publisher cannot
­ ublishers
assume responsibility for the validity of all materials or the consequences of their use. The authors and p
have attempted to trace the copyright holders of all material reproduced in this publication and apologize to
­copyright ­holders if permission to publish in this form has not been obtained. If any copyright material has not been
­acknowledged please write and let us know so we may rectify in any future reprint.
Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or
utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, ­including
­photocopying, microfilming, and recording, or in any information storage or retrieval system, without written
­permission from the publishers.
For permission to photocopy or use material electronically from this work, access www.copyright.com or contact the
Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400. For works that are
not available on CCC please contact mpkbookspermissions@tandf.co.uk
Trademark notice: Product or corporate names may be trademarks or registered trademarks and are used only for
identification and explanation without intent to infringe.
ISBN: 978-0-367-68777-9 (hbk)
ISBN: 978-0-367-68778-6 (pbk)
ISBN: 978-1-003-13901-0 (ebk)
DOI: 10.1201/9781003139010
Typeset in Times
by codeMantra
Access the Support Material: https://www.routledge.com/9780367687779
Contents
Editors...............................................................................................................................................vii
Contributors.......................................................................................................................................ix
Chapter 1
Introduction...................................................................................................................1
Dimitrios Xanthidis, Christos Manolas, Ourania K. Xanthidou,
and Han-I Wang
Chapter 2
Introduction to Programming with Python...................................................................9
Ameur Bensefia, Muath Alrammal, and Ourania K. Xanthidou
Chapter 3
Object-Oriented Programming in Python................................................................... 59
Ghazala Bilquise, Thaeer Kobbaey, and Ourania K. Xanthidou
Chapter 4
Graphical User Interface Programming with Python............................................... 107
Ourania K. Xanthidou, Dimitrios Xanthidis, and Sujni Paul
Chapter 5
Application Development with Python..................................................................... 161
Dimitrios Xanthidis, Christos Manolas, and Hanêne Ben-Abdallah
Chapter 6
Data Structures and Algorithms with Python...........................................................207
Thaeer Kobbaey, Dimitrios Xanthidis, and Ghazala Bilquise
Chapter 7
Database Programming with Python........................................................................ 273
Dimitrios Xanthidis, Christos Manolas, and Tareq Alhousary
Chapter 8
Data Analytics and Data Visualization with Python................................................ 319
Dimitrios Xanthidis, Han-­I Wang, and Christos Manolas
Chapter 9
Statistical Analysis with Python............................................................................... 373
Han-­I Wang, Christos Manolas, and Dimitrios Xanthidis
Chapter 10 Machine Learning with Python................................................................................409
Muath Alrammal, Dimitrios Xanthidis, and Munir Naveed
Chapter 11 Introduction to Neural Networks and Deep Learning..............................................449
Dimitrios Xanthidis, Muhammad Fahim, and Han-I Wang
v
vi
Contents
Chapter 12 Virtual Reality Application Development with Python............................................ 485
Christos Manolas, Ourania K. Xanthidou, and Dimitrios Xanthidis
Appendix: Case Studies Solutions............................................................................................... 527
Index............................................................................................................................................... 617
Editors
Dimitrios Xanthidis holds a PhD in Information Systems from University College London. For the
past 25 years, he has been teaching computer science subjects with a focus on programming and
software development, and data structures and databases in various tertiary education institutions.
Currently, he is working in Higher Colleges of Technology in Dubai, U.A.E. Dimitrios’ research
interests and work revolve around the topics of data science, machine learning/deep ­learning,
­virtual/augmented reality, and emerging technologies.
Christos Manolas holds a PhD in Stereoscopic 3D Media (University of York, UK), and degrees
and qualifications in Postproduction (MA), Music Technology (MSc), Music Performance, Software
Development, and Media Production. Christos’ career includes work as a software developer, musician, audio producer, and educator for over 20 years. His research interests include multimodal
(audiovisual) perception, spatial audio, interactive and immersive media (VR/AR/XR), and generally the impact and role of digital technologies on media production.
Ourania K. Xanthidou is a PhD researcher at Brunel University, London. She holds an MSc in
Computer Science from the University of Malaya, Kuala Lumpur, Malaysia. She has more than
15 years of involvement with the IT industry in the form of supporting IT departments of SMEs
and more than 5 years of teaching experience in tertiary education. Ourania’s research interests are
in the areas of eHealth, smart health, databases, web application development, and object-oriented
programming with a focus on application development for VR/AR/XR.
Han-I Wang holds a PhD in Health Economics from the University of York, UK. Han-I has been
working as a research fellow for over 10 years, starting at the Epidemiology & Cancer Statistics
Group (ECSG) before joining the Mental Health and Addiction Research Group (MHARG) at the
University of York, UK. Her area of expertise spans across cost analysis, health outcome research,
and decision modeling using complex patient-level data, and her main research interests are related
with the exploration of different decision-modeling techniques and their application to predict
healthcare expenditure, patients’ quality of life, and life expectancy.
vii
Contributors
Tareq Alhousary
Business Information Systems
University of Salford
Manchester, United Kingdom
and
Department of Management Information
Systems
Dhofar University, College of Commerce and
Business Administration
Salalah, Oman
Muath Alrammal
Department of Computer and Information
Sciences
Higher Colleges of Technology
Abu Dhabi, United Arab Emirates
and
LACL (Laboratoire d’Algorithmique,
Complexité et Logique)
University Paris-Est (UPEC)
Créteil, France
Hanêne Ben-Abdallah
Computer and Information Science
University of Pennsylvania
Philadelphia, PA
Ameur Bensefia
Department of Genie Informatique
University of Rouen Normandy
Laboratoire d’Informatique de Traitement de
l’Information et des Systèmes (LITIS)
Rouen, France
and
Department of Computer and Information
Sciences
Higher Colleges of Technology
Abu Dhabi, United Arab Emirates
Ghazala Bilquise
Department of Computer and Information
Sciences
Higher Colleges of Technology
Abu Dhabi, United Arab Emirates
Muhammad Fahim
Department of Computer and Information
Sciences
Higher Colleges of Technology
Abu Dhabi, United Arab Emirates
Thaeer Kobbaey
Department of Computer and Information
Sciences
Higher Colleges of Technology
Abu Dhabi, United Arab Emirates
Christos Manolas
Department of Theatre, Film, Television and
Interactive Media
The University of York
York, United Kingdom
and
Department of Media Works
Ravensbourne University London
London, United Kingdom
Munir Naveed
Department of Computer Science
University of Huddersfield
Huddersfield, United Kingdom
and
Department of Computer and Information
Sciences
Higher Colleges of Technology
Abu Dhabi, United Arab Emirates
Sujni Paul
Department of Computer and Information
Sciences
Higher Colleges of Technology
Abu Dhabi, United Arab Emirates
Han-I Wang
Department of Health Sciences
The University of York
York, United Kingdom
ix
x
Dimitrios Xanthidis
School of Library, Archives, and Information
Sciences
University College London
London, United Kingdom
and
Department of Computer and Information
Sciences
Higher Colleges of Technology
Abu Dhabi, United Arab Emirates
Contributors
Ourania K. Xanthidou
Department of Computer Science
Brunel University of London
Uxbridge, United Kingdom
1
Introduction
Dimitrios Xanthidis
University College London
Higher Colleges of Technology
Christos Manolas
The University of York
Ravensbourne University London
Ourania K. Xanthidou
Brunel University of London
Han-I Wang
The University of York
CONTENTS
1.1 Introduction...............................................................................................................................1
1.2 Audience....................................................................................................................................2
1.3 Getting Started with Jupyter Notebook.....................................................................................2
1.4 Creating Standalone, Executable Files......................................................................................4
1.5 Structure of this Book................................................................................................................6
References...........................................................................................................................................6
1.1
INTRODUCTION
Undoubtedly, at the time of writing, Python is among the most popular computer programming
languages. Alongside other common languages like C# and Java, it belongs to the broader family of
C/C++-based languages, from which it naturally borrows a large number of packages and modules.
While Python is the youngest member in this family, it is widely adopted as the platform of choice
by academic and corporate institutions and organizations on a global scale.
As a C++-based language, Python follows the structured programming paradigm, and the associated programming principles of sequence, selection, and repetition, as well as the concepts of
functions and arrays (as lists). A thorough presentation of such concepts is both beyond the scope
of this book and possibly unnecessary, as this was the subject of the seminal works of computer
science giants like Knuth, Stroustrup, and Aho (Aho Alfred et al., 1983; Knuth, 1997; Stroustrup,
2013). Readers interested in an in-depth understanding of these concepts on a theoretical basis are
encouraged to refer to such works that form the backbone of modern programming. As an ObjectOriented Programming (OOP) platform, it provides all the facilities and tools to support the OOP
paradigm. Unlike its counterparts (i.e., C++, C#, and Java), Python does not provide a streamlined,
centralized IDE to support GUI programming, but it does offer a significant number of related modules that cover most, if not all, of the various GUI requirements one may encounter. It includes a
number of modules that allow for the implementation of database programming, web development,
DOI: 10.1201/9781003139010-1
1
2
Handbook of Computer Programming with Python
and mobile development projects, as well as platforms, modules, and methods that can be used for
machine and deep learning applications and even virtual and augmented reality project development. Nevertheless, one of the main reasons that made Python such a popular option among computer science professionals and academics is the wealth of modules and packages it offers for data
science tasks, including a large variety of libraries and tools specifically designed for data analytics, data visualization, and statistical analysis tasks.
Arguably, there is an abundance of online resources and tutorials and printed books that address
most of the aforementioned topics in great detail. On the technical side, such resources may seem
too complicated for someone who is currently studying the subject or approaches it without prior
programming knowledge and experience. In other cases, resources may be structured more like
reference books that may focus on particular topics without covering the introductory parts of
computing with Python that some readers may find useful. This book aims at covering this gap
by exploring how Python can be used to address various computational tasks of introductory to
intermediate difficulty level, while also providing a basic theoretical introduction to the underlying
concepts.
1.2 AUDIENCE
This book focuses on students of computer science, information systems, and information technology, or anyone who is involved in computer programming, data analytics, HCI-GUI, and related
disciplines, at an entry-to-intermediate level. This book aims to provide a hands-on experience
based on the underlying topics, and assist students and faculty members in developing their algorithmic thought process and programs for given computational problems. It can also be used by
professionals who possess the necessary theoretical and computational thinking background but are
presently making their transition to Python.
Considering the above, this book includes a wealth of examples and the associated Python
code and output, presented in a context that also discusses the underlying concepts and their
applications. It also provides key concepts in the form of quick access observations, so that the
reader can skim through the various topics. Observations can be used as a reference and navigation tool, or as reminders for points for discussion and in-class presentation in the case of using
this book as a teaching resource. Chapters are also accompanied by related exercises and case
studies that can be used in this context, and their solutions are provided in the Appendix at the
end of this book.
1.3 GETTING STARTED WITH JUPYTER NOTEBOOK
Ample information and support are available through online community channels and the
­official documentation and guides in terms of installing and running Python programming environments. Nevertheless, this section provides a brief and straightforward guide on how to use
Anaconda Navigator and Jupyter Notebook in order to interpret and execute Python code, as
the majority of examples in this book have been implemented and tested using this particular
configuration.
Once Anaconda Navigator is launched, a number of different editors and environments are
­presented in the home page (Figure 1.1).
Launching the Jupyter Notebook (i.e., clicking the Launch button) initiates a web interface based
on the file directory of the local machine (Figure 1.1). To create a new Python program, the user
can select New from the top right corner and the Python 3 notebook menu option (Figure 1.2). This
action will launch a new Python file under Jupyter with a default name. This can be changed by
clicking on the file name.
3
Introduction
FIGURE 1.1
Anaconda IDE homepage.
FIGURE 1.2
Create a new Python file in Jupyter Notebook.
Jupyter editor is organized in cells. The user can add each line of code to a separate cell or add
multiple lines to the same cell (Figure 1.3). The Run button in the main toolbar is used to execute
the code in the selected cell. If the code is free from errors, the interpreter moves to the next
cell; otherwise, an error message is displayed immediately after the cell where the error occurred
(Figure 1.4).
4
Handbook of Computer Programming with Python
FIGURE 1.3
Jupyter’s editor.
FIGURE 1.4
Run a Python program on Jupyter.
1.4 CREATING STANDALONE, EXECUTABLE FILES
With the exception of Chapter 12: Virtual Reality Application Development with Python that discusses applications that demand specific and highly specialized development platforms, the Python
scripts and examples presented in this book were implemented and tested natively in the Anaconda
Jupyter environment. In this context, the process of developing and testing software solutions is a rather
straightforward and intuitive process. However, when it comes to the actual deployment of applications in more realistic scenarios, things become slightly more complex. This is mainly due to the fact
that the Python code one develops is usually dependent on a number of external libraries, packages,
and files of various formats. These are automatically provided in the background when working within
the Anaconda environment, but this is not necessarily the case when scripts are exported as standalone files. The required libraries and resources may be located on numerous different places within
the file structures of the computer and/or network systems used during development.
In the context of application deployment, references to such external files and objects are generally referred to as application dependencies. Dependencies form a crucial and essential part of the
developed application, and the underlying files must be provided alongside the final deliverable
program (e.g., a standalone, executable application), as their absence will prevent the program from
Introduction
5
running correctly in machines lacking the necessary libraries and file structures. Fortunately, the
latter are automatically selected and packaged by special routines and processes during the deployment phase of the development cycle. This way, once the final deployment package is created, one
can run the application on other computers, irrespectively of whether these include the necessary
files and libraries or not.
Many SDKs and programming environments provide built-in routines (i.e., wizards) for the generation of the deployment packages and standalone executable files. In the case of Anaconda Jupyter,
although there is no automated, built-in wizard for such tasks, one can resort to a number of external
helper applications. A detailed, step-by-step tutorial of this process is beyond the scope of this book.
However, some basic, introductory examples are provided below, in order to assist readers with minimal or no previous experience with command line environments in familiarizing with such tasks.
At the moment of writing, two of the most widely used third-party applications for generating standalone executable files from Python scripts are PyInstaller for Windows (PyInstaller
Development Team, 2019) and Py2app for Windows/Mac OS (Oussoren & Ippolito, 2010). Both
applications can handle dependencies and linking, and the decision on which one should be used
comes down to the operating system at hand and personal preference. In broad terms, the steps one
needs to follow when creating standalone executable files are summarized below:
• Step 1: Irrespectively of what program and procedure one choses to generate the standalone application, the original script(s) must be firstly exported from Anaconda Jupyter,
as one or more Python.py file(s). This will be the file(s) used as input to the deployment
application.
• Step 2: Another essential task is to ensure that the application is installed on the system.
This can be achieved in a number of ways that are detailed in the numerous a­ ssociated
online guides and tutorials (Apple Inc, 2021; Cortesi, 2021; Microsoft, 2021a, 2021b;
Oussoren & Ippolito, 2010; PyInstaller Development Team, 2019). For the purposes of this
example, one possibility is to install PyInstaller using a Command Prompt/PowerShell
window (Microsoft, 2021a, b) using the following command:
• pip install pyinstaller
• Step 3a (Windows): Once PyInstaller is installed, and given that the associated files and
the command line environment are set up appropriately, the generation of the standalone
file could be as simple as the following command:
• pyinstaller yourprogram.py
Alternatively, the user can refer to the PyInstaller official documentation, in order to execute more specific and complex commands with appropriate parameters and flags, as necessary. For instance, using the same command with the --onefile flag would force the
generated executable file to be packaged in a single file rather than in a folder structure
containing multiple files:
• pyinstaller --onefile yourprogram.py
• Step 3b (Mac OS): The same basic idea also applies when using the Py2app (Oussoren &
Ippolito, 2010), although the procedure and commands may be slightly different. For
instance, when used on a Mac OS system, Py2app generates application bundles instead of
an executable file. As an example, users of Mac OS systems can use the Terminal window
(Apple Inc, 2021) to firstly install Py2app:
• pip install -U py2app
Py2app can be then used to create a setup file:
• py2applet --make-setup yourprogram.py
Finally, the setup file can be used to generate the standalone application bundle:
• python setup.py py2app
In both cases, the standalone application is usually placed at a specified directory structure
according to the settings and parameters used.
6
Handbook of Computer Programming with Python
In order to be able to successfully execute the example commands provided here, the reader may
have to execute a number of other necessary commands and set up tasks and navigate to the correct
­directories using the command line environment. Detailed information on how to use both PyInstaller
and Py2app can be found on the official documentation pages (Cortesi, 2021; Oussoren & Ippolito,
2010) and on the large variety of associated online resources. It must be noted that the third-party
applications mentioned here are just two of the tools one may choose to use for creating standalone
executable files based on Python scripts, and they are not the only way of dealing with such tasks.
The development and deployment processes vary depending on the characteristics of the developed application, the chosen development platform, and the targeted operating system(s). As most
chapters of this book utilize the Anaconda Jupyter environment, most of the examples and programming scripts can be developed and tested within the development platform (or even other platforms)
without the need to generate standalone executable files. However, the information provided here
can be used as a general guide for the deployment procedure and the necessary conversions, should
the reader choose to create standalone versions of the various examples.
1.5 STRUCTURE OF THIS BOOK
This book is divided into three main parts, based on the knowledge field, character, and objective
of the presented topics.
The first part (Chapters 2–5) covers classic computer programming topics like introduction to
programming, Object-Oriented Programming, Graphical User Interface (GUI) programming, and
application development. It is meant to assist readers with little or no prior programming experience to start learning computer programming using Python and the Anaconda Jupyter platform.
The related concepts, techniques, and algorithms are discussed and explained with examples of the
necessary code and the expected output.
The second part (Chapters 6–9) covers concepts related to data structures and organization, the
algorithms used to manipulate these structures, database programming (SQL), data analysis and
visualization, and the basics of statistical analysis. These concepts cover most of the topics, algorithms, and applications that make up what is collectively referred to as data science. The structure
of this part of this book provides a potential entry point for readers with no prior knowledge in data
science, as well as a reference point for those who would like to focus on the implementation of
specific data science tasks using Python.
The third part (Chapters 10–12) covers machine and deep learning concepts, while also providing a brief introduction to using Python in contexts not traditionally linked with the language like
virtual reality (VR) application development. This part introduces concepts that are potentially
more advanced from a contextual perspective, but not necessarily more challenging when it comes
to their implementation using Python. For instance, while a deeper understanding of the principles
and algorithms behind machine and deep learning may be out of scope for many of the readers of
this book, the development of applications using the various related modules and methods provided
by Python may be something that is of interest. Similarly, while video game and VR/AR application
development is certainly a topic that falls outside the scope of a Python textbook in the strict sense,
a basic understanding of how such applications could be developed using the Python language may
provide a useful insight to the most adventurous of the readers.
All the scripts and case studies presented in this book, as well as the related data and files necessary for their execution, are included as supplementary material in Appendix A.
REFERENCES
Aho, A.V., Hopcroft, J.E., Ullman, J.D., Aho, A.V., Bracht, G.H., Hopkin, K.D., Stanley, J.C., Jean-Pierre, B.,
Samler, B.A., & Peter, B.A. (1983). Data Structures and Algorithms. USA: Addison-Wesley.
Introduction
7
Apple Inc. (2021). Terminal User Guide. Support.Apple.Com. https://support.apple.com/en-gb/guide/terminal/
welcome/mac/.
Cortesi, D. (2021). PyInstaller Documentation. PyInstaller 4.5. https://pyinstaller.readthedocs.io/_/downloads/
en/stable/pdf/.
Knuth, D.E. (1997). The Art of Computer Programming (Vol. 3). Pearson Education.
Microsoft. (2021a). Installing Windows PowerShell. https://docs.microsoft.com/en-us/powershell/scripting/
windows-powershell/install/installing-windows-powershell?view=powershell–7.1.
Microsoft. (2021b). Windows Command Line. https://www.microsoft.com/en-gb/p/windows-command-line/9
nblggh4xtkq?activetab=pivot:overviewtab.
Oussoren, R., & Ippolito, B. (2010). py2app – Create Standalone Mac OS X Applications with Python. https://
py2app.readthedocs.io/en/latest/.
PyInstaller Development Team. (2019). PyInstaller Quickstart. https://www.pyinstaller.org/.
Stroustrup, B. (2013). The C++ Programming Language. India: Pearson Education.
Introduction
Aho, A.V. , Hopcroft, J.E. , Ullman, J.D. , Aho, A.V. , Bracht, G.H. , Hopkin, K.D. , Stanley, J.C. , Jean-Pierre, B.
, Samler, B.A. , & Peter, B.A. (1983). Data Structures and Algorithms. USA: Addison-Wesley.
Apple Inc . (2021). Terminal User Guide. Support.Apple.Com. https://support.apple.com/engb/guide/terminal/welcome/mac/.
Cortesi, D. (2021). PyInstaller Documentation. PyInstaller 4.5.
https://pyinstaller.readthedocs.io/_/downloads/en/stable/pdf/.
Knuth, D.E. (1997). The Art of Computer Programming (Vol. 3). Pearson Education.
Microsoft . (2021a). Installing Windows PowerShell. https://docs.microsoft.com/enus/powershell/scripting/windows-powershell/install/installing-windows-powershell?view=powershell–7.1.
Microsoft . (2021b). Windows Command Line. https://www.microsoft.com/en-gb/p/windows-commandline/9nblggh4xtkq?activetab=pivot:overviewtab.
Oussoren, R. , & Ippolito, B. (2010). py2app – Create Standalone Mac OS X Applications with Python.
https://py2app.readthedocs.io/en/latest/.
PyInstaller Development Team . (2019). PyInstaller Quickstart. https://www.pyinstaller.org/.
Stroustrup, B. (2013). The C++ Programming Language. India: Pearson Education.
Introduction to Programming with Python
Dijkstra, E. W. , Dijkstra, E. W. , Dijkstra, E. W. , & Dijkstra, E. W. (1976). A Discipline of Programming (Vol.
613924118). New Jersey: Prentice-Hall Englewood Cliffs.
Jaiswal, S. (2017). Python Data Structures Tutorial. DataCamp.
https://www.datacamp.com/community/tutorials/data-structures-python.
Knuth, D. E. (1997). The Art of Computer Programming (Vol. 3). Pearson Education.
Stroustrup, B. (2013). The C++ Programming Language. India: Pearson Education.
Data Structures and Algorithms with Python
Dijkstra, E. W. , Dijkstra, E. W. , Dijkstra, E. W. , & Dijkstra, E. W. (1976). A Discipline of Programming (Vol.
613924118). Prentice-Hall: Englewood Cliffs.
Hoare, C. A. R. (1961). Algorithm 64: Quicksort. Communications of the ACM, 4(7), 321.
Knuth, D. E. (1997). The Art of Computer Programming (Vol. 3). Pearson Education.
Stroustrup, B. (2013). The C++ Programming Language. India: Pearson Education.
Database Programming with Python
APACHE . (2021). APACHE Software Foundation. https://apache.org.
Elmasri, R. , & Navathe, S. (2017). Fundamentals of Database Systems (Vol. 7). Pearson, Hoboken, NJ.
MAMP . (2021). Download MAMP & MAMP PRO. https://www.mamp.info/en/downloads.
MySQL . (2021). Oracle Corporation. https://www.mysql.com.
Oracle . (2021a). MySQL Documentation. https://dev.mysql.com/doc.
Oracle . (2021b). Oracle.com.
Data Analytics and Data Visualization with Python
American Diabetes Association . (2018). Economic costs of diabetes in the US in 2017. Diabetes Care, 41(5),
917–928. https://doi.org/https://doi.org/10.2337/dci18-0007.
Freedman, D. , Pisani, R. , & Purves, R. (1998). Statistics (3rd ed.). New York: WW Norton & Company.
McEwen, L. N. , & Herman, W. H. (2018). Health care utilization and costs of diabetes. Diabetes in America
(3rd ed.), 40-1–40-78. NIDDK.
Pandas . (2021a). pandas.DataFrame.boxplot. Version: 1.2.5.
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.boxplot.html.
Pandas . (2021b). pandas.DataFrame.plot.pie.
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.pie.html.
Statistics — Mathematical statistics functions . (2021). Python. https://docs.python.org/3/library/statistics.html.
Statistical Analysis with Python
Anaconda Inc . (2020). Anaconda Distribution Starter Guide.
https://docs.anaconda.com/_downloads/9ee215ff15fde24bf01791d719084950/Anaconda-Starter-Guide.pdf.
De Winter, J. F. C. , & Dodou, D. (2010). Five-point likert items: t test versus Mann-Whitney-Wilcoxon
(Addendum added October 2012). Practical Assessment, Research, and Evaluation, 15(1), 11.
Diabetes UK . (2019). Number of People with Diabetes Reaches 4.7 Million.
https://www.diabetes.org.uk/about_us/news/new-stats-people-living-with-diabetes.
Fagerland, M. W. , & Sandvik, L. (2009). The Wilcoxon–Mann–Whitney test under scrutiny. Statistics in
Medicine, 28(10), 1487–1497.
Kim, H.-Y. (2017). Statistical notes for clinical researchers: Chi-squared test and Fisher’s exact test. Restorative
Dentistry & Endodontics, 42(2), 152–155.
Koehrsen, W. (2018). Histograms and Density Plots in Python. Towardsdatascience.com,
https://towardsdatascience.com/histograms-and …. https://towardsdatascience.com/histograms-and-densityplots-in-python-f6bda88f5ac0.
McDonald, J. H. (2014). Correlation and linear regression. In Handbook of Biological Statistics (3rd ed.).
Baltimore, MD: Sparky House Publishing. https://www.biostathandbook.com/HandbookBioStatThird.pdf.
McKinney, W. , & Team, P. D. (2020). Pandas-Powerful python data analysis toolkit. Pandas—Powerful Python
Data Analysis Toolkit, 1625. https://pandas.pydata.org/docs/pandas.pdf.
McLntire, G. , Martin, B. , & Washington, L. (2019). Python Pandas Tutorial: A Complete Introduction for
Beginners. Learn Data Science-Tutorials, Books, Courses, and More.
https://www.learndatasci.com/tutorials/python-pandas-tutorial-complete-introduction-for-beginners/.
Minitab . (2015). Choosing between a nonparametric test and a parametric test. State College: The Minitab
Blog. https://blog.minitab.com/blog/adventures-in-statistics-2/choosing-between-a-nonparametric-test-and-aparametric-test.
Pandas Development Team . (2020). pandas.read_excel. https://pandas.pydata.org/pandasdocs/stable/reference/api/pandas.read_excel.html.
Scikit-posthocs . (2020). The Scikit Posthocs Test. https://scikit-posthocs.readthedocs.io/en/latest/.
SciPy Community . (2020). scipy.stats.ttest_ind.
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_ind.html.
Sharma, A. (2019). Importing Data into Pandas. https://www.datacamp.com/community/tutorials/importing-datainto-pandas#::targetText=ToreadanHTMLfile, to read the HTML document.
Tavares, E. (2017). Counting and Basic Frequency Plots.
https://etav.github.io/python/count_basic_freq_plot.html.
WorldCoinIndex . (2021). WorldCoinIndex. https://www.worldcoinindex.com/.
Machine Learning with Python
Andrade, E. de O. , Viterbo, J. , Vasconcelos, C. N. , Guérin, J. , & Bernardini, F. C. (2019). A model based on
lstm neural networks to identify five different types of malware. Procedia Computer Science, 159, 182–191.
Keshari, K. (2021). Top 10 Applications of Machine Learning: Machine Learning Applications in Daily Life.
https://www.edureka.co/blog/machine-learning-applications/.
Kwon, B. J. , Mondal, J. , Jang, J. , Bilge, L. , & Dumitraş, T. (2015). The dropper effect: Insights into malware
distribution with downloader graph analytics. Proceedings of the 22nd ACM SIGSAC Conference on Computer
and Communications Security (1118–1129), Denver, Colorado.
Mitchell, T. M. (1997). Machine Learning (1st ed.). New York: McGraw-Hill.
Mola, F. (1998). Classification and Regression Trees Software and New Developments BT – Advances in Data
Science and Classification ( A. Rizzi , M. Vichi , & H.-H. Bock eds.; pp. 311–318). Berlin Heidelberg: Springer.
Naveed, M. , & Alrammal, M. (2017). Reinforcement learning model for classification of Youtube movie. Journal
of Engineering and Applied Science, 12(9), 1–7.
Naveed, M. , Alrammal, M. , & Bensefia, A. (2020). HGM: A Novel Monte-Carlo simulations based model for
malware detection. IOP Conference Series: Materials Science and Engineering, 946(1), 12003.
https://doi.org/10.1088/1757-899x/946/1/012003.
Quinlan, J. R. (1986). Induction of decision trees. Machine Learning, 1(1), 81–106.
https://doi.org/10.1007/BF00116251.
Raghupathi, K. (2018). 10 Interesting Use Cases for the K-Means Algorithm. DZone AI Zone.
https://dzone.com/articles/10-interesting-use-cases-for-the-k-means-algorithm.
Salzberg, S. L. (1994). C4.5: Programs for machine learning by J. Ross Quinlan. Morgan Kaufmann Publishers,
Inc., 1993. Machine Learning, 16(3), 235–240. https://doi.org/10.1007/BF00993309.
Sharma, P. (2020). 4 Types of Distance Metrics in Machine Learning. Analytics Vidhya.
https://www.analyticsvidhya.com/blog/2020/02/4-types-of-distance-metrics-in-machine-learning/.
Introduction to Neural Networks and Deep Learning
Hardesty, L. (2017). Explained: Neural Networks – Ballyhooed Artificial-Intelligence Technique Known as “Deep
Learning” Revives 70-Year-Old Idea. MIT News Office. https://news.mit.edu/2017/explained-neural-networksdeep-learning–0414.
IBM Cloud Education . (2020). Neural Networks. IBM. ibm.https://wwwcom/cloud/learn/neural-networks.
Virtual Reality Application Development with Python
Ardakani, H. A. , & Bridges, T. J. (2010). Review of the 3-2-1 euler angles: a yaw-pitch-roll sequence. Tech.
Rep. Guildford: University of Surrey.
Ascher, D. , & Lutz, M. (1999). Learning Python. Sebastopol, CA: O’Reilly.
Autodesk . (2020). 3DS Max -3D modelling and rendering software for design visualisation, games and
animation. https://www.autodesk.co.uk/products/3ds-max/overview?plc=3DSMAX&term=1YEAR&support=ADVANCED&quantity=1.
Blender . (2020). Our mission. https://www.blender.org/about/.
Carlson, W. E. (2017). Computer graphics and computer animation: a retrospective overview. Columbus: Ohio
State University.
Dq, N. (2019). Cartesian coordinates. http://mathinsight.org/cartesian_coordinates.
Dunn, F. , & Parberry, I. (2011). 3D Math Primer for Graphics and Game Development. Boca Raton, FL: Taylor
and Francis.
Epic Games . (2019). What is Unreal Engine 4? https://www.unrealengine.com/en-US/what-is-unreal-engine-4.
Glover, J. , & Linowes, J. (2019). Complete Virtual Reality and Augmented Reality Development with Unity:
Leverage the Power of Unity and Become a Pro at Creating Mixed Reality Applications. Birmingham: Packt
Publishing Ltd.
Mendiburu, B. (2012). 3D Movie Making: Stereoscopic Digital Cinema from Script to Screen. New York:
Routledge.
Microsoft . (2019). Visual studio: best in-class tools for any developer. https://visualstudio.microsoft.com/.
Rosen, K. R. (2008). The history of medical simulation. Journal of Critical Care, 23(2), 157–166.
Sherman, W. R. , & Craig, A. B. (2018). Understanding Virtual Reality: Interface, Application, and Design.
Cambridge, MA: Morgan Kaufmann.
Smith, R. (2010). The long history of gaming in military training. Simulation & Gaming, 41(1), 6–19.
Unity Technologies . (2019). Unity 3D. https://unity3d.com/unity.
WorldViz . (2019). Vizard 6 (64-bit). https://www.worldviz.com/vizard-virtual-reality-software.
Zone, R. (2007). Stereoscopic cinema and the origins of 3-D film, 1838–1952. Lexington: University Press of
Kentucky.
Download