Google Season of Docs 2020 - New NumPy Community Member
I am very excited to introduce myself to the NumPy community!
I am Themistoklis Spanoudis, I come from Greece and I have recently finished my 5-year (Integrated Masters) Degree in Mechanical Engineering at Aristotle University of Thessaloniki.
I am very happy to see that NumPy has been selected for Google Season of Docs 2020, because I love scientific computing and Python and I would really like to contribute in one of your GSoD projects. Specifically, what caught my attention is “Creating high-level documentation, such as Tutorials and How-Tos, covering topics that are missing from the official documentation”. I have a pretty clear idea on where I would like to make this project go, but first let me share a few things about my background.
My first introduction to scientific computing came during the first year of my studies through a semester course on this topic, based on MATLAB. During that semester I had a lot of course assignments that eventually got me hooked with scientific computing. My journey in this area continued with me getting to know NumPy and Python and choosing a plethora of courses during the following years of my studies that included computational assignments. During those years I built programs that range from Structural Finite Element Analysis, Fatigue Analysis and Lagrangian Dynamics to Statistical Quality Control, Operations Research and Supply Chain Optimization.
Moreover, last year I completed my Master Thesis during a 6-month full-time position at Airbus Helicopters in Germany, during which I had the chance to work on flight trajectory optimization and data-driven flight dynamics modelling. This involved a lot of scientific programming building state-space models and defining optimization problems as well as tasks related to working with a large amount of data such as, cleaning, filtering, transforming to extract training examples and utilizing them in various models.
Additionally, last summer I participated in Google Summer of Code 2019 with AerospaceResearch, which is an international space community helping realise space exploration. My project involved the development of a software module to be integrated within a research project tackling electric propulsion system optimization for small satellites. The module is responsible for the visualization of genetic algorithm data in order to extract insights about the evolution process that can be used both to improve the algorithm and as heuristics by human designers. This project involved working with evolution data to automatically create static plots as well as animations that are completely configurable through a user-readable XML input file. My work along with other advancements in the research project was published at the 36th International Electric Propulsion Conference.
On a similar note, last fall I participated in Google Season of Docs 2019 with OpenSCAD, which is a scripting software for creating solid 3D CAD models. My project involved the creation of a tutorial focused on new OpenSCAD users. My mentors introduced me to the great presentation “What nobody tells you about documentation” by Daniele Procida at PyCon Australia 2017, which was a major influence for my work. Closely following the guidelines of the presentation for the “tutorial” type of documentation and reviewing existing material and references, I developed a hands-on, follow-along tutorial designed to get new users started with creating their own models as soon as possible, while gradually introducing more advanced features and building their confidence by following a steady progression and a consistent style.
So that was about my background and experience, let me now say a few words about my plans for this year.
For Google Season of Docs 2020 I would like to work with the NumPy community to create a more advanced, application-based tutorial that will serve as the next step to the previous year’s project “NumPy: the absolute basics for beginners”. Having gone through most of the currently available documentation under https://numpy.org/devdocs/index.html as well the external linked educational material, I believe this project would be a great addition to the existing documents. It would help new users understand how NumPy can be used in practice to solve real problems, get them familiar with more advanced features not referenced in the basic tutorial and get them ready to work on their own projects.
This tutorial would include step-by-step explanations providing a lot of context to the users as well as follow-along exercises/challenges. The topics presented on this tutorial can be focused around scientific simulation, optimization and data science. In my opinion data science is a stronger candidate for this purpose, since the same techniques and methodologies are directly applicable to a wider audience across different fields, compared to scientific simulation which is more coupled to domain knowledge and could potentially repel users lacking the relevant background. The exact presented cases of course is something to be discussed and adapted to fit the educative flow and the covered material.
In order to avoid this introductory message getting too long and to give you a practical idea of what I mean by step-by-step, follow-along explanations as well as by providing context and explaining the thought process behind doing things a certain way, I would like to link to my work from Google Summer of Code 2019 and Google Season of Docs 2019.
I would also like to add here my 100+ page Master Thesis as an additional example of my technical writing work but unfortunately it is currently set confidential by Airbus.
I think this is a good overall introduction to my background, my work and my intentions regarding working with NumPy to get the discussion going about the specific project that I would like to complete during this year’s Google Season of Docs program. I would highly appreciate your input, feedback, thoughts and comments.