GSoC 2021 Application NTEM, KENYOR K.: Improving the Sympy Live and Sympy Gamma - sympy/sympy GitHub Wiki

Improving the Sympy Live and Sympy Gamma

to View the entire document: https://docs.google.com/document/d/1gf_YqM-vpz_troXhbxANky0iAFJ2JU4LdqRwOy16bho/edit?usp=sharing

Content-

  • Title: Improving the live sympy online editor and sympygamma.com
  • About Me
  • Personal Background
  • Programming Background
  • Proposal
  • Sympy Live * Side Examples * Interactive Code * Help and Introductive Examples * Themes (dark theme, light theme, user specified theme) * Automatic Suggestion
  • Gamma Sympy * Mathematical Input Board
  • Time and Milestone
  • After Google Summer of Code
  • Further Suggestions
  • Conclusion
  • Reference

About Me- Full name: Ntem, Kenyor Komommo University: University of Uyo. Faculty - Faculty of Engineering Course: Computer Engineering Email - [email protected] Github Profile - NtemKenyor Time zone - GMT +1

Personal Background: I am from Cross Rivers State in Nigeria. My love for programming made me break all limits to study Computer Engineering in the University. In my Secondary School days, I graduated as the best Science Student. I started python programming about 4 years ago. I am also a full stack developer (PHP, html, JavaScript, CSS).

Some of the courses in my academic curriculum include: Differential Equation I, ordinal Differential Equation II, Python, C++, ODE III, Linear Algebra, Statistics and lots more.

Programming Background: I started writing code on paper when I did not have a computer system, I love the entire concept of programming.

Today, I use a Linux PC with an Elementary OS. I use different kinds of code editors (e.g.: Sublime Text, Notepad qq, atom) but I like Vs.-Code better. I prefer Vs.-Code to others because of three properties.

  1. The Terminal: Some Code editors do not have a terminal in-built in them
  2. More Plugins: VS-Code has one of the widest range of plugins. Flutter, dart, react, python and many other plugins can be downloaded.
  3. Advanced Setting Page: You can change items in your settings page to debug a new programming language and you can even set auto save based on seconds as while as change the theme.

Proposal

Aim: The Aim of this proposal is to improve the functionality as well as the design of the Live sympy Editor. This proposal also looks for better input methods for the Gamma Sympy. Motivation: My love for VS-Code is a great inspiration for choosing this idea. I feel that The Live Sympy Editor can be improved to a level where all sympy programmers enjoy and prefer using it over other code editors. The Programming Languages used in this proposal include: HTML5, CSS3, PHP, JavaScript, JQuery, Ajax and Python.

Sympy Live: Themes (dark theme, light theme, user specified theme) People love different colors and people interpret colors differently. Some parts of the world believe that red is a divine color while others believe that red means danger. Most programmers like a dark development interface like sublime text. Others like a bright, shining environment like notepad++. Let’s make them select between themes in Sympy Live. Just a button to switch the Editor Theme and Colors. However on the sympy Editor Setting’s page, there would be more details about setting a user specified theme by choosing two colors. This would make our users much more comfortable and they can have fun.

Side Examples Like the text editors on our PC, files are opened by clicking the items on the left side bar. What if in Sympy Live Editor, we had live examples that on click can be appended to your code. This approach would really increase the learning curve of Sympy especially for programmers who are beginners or who would be using the Sympy Live Editor. If the programmer feels he/she does not need a sidebar of instructions and examples, the user can easily click close(x) or remove (Hide) the Live Examples navigation bar.

Full Screen Mode Most programmers want to see only their code and nothing else on their screen. With a click on a full screen button, all side bars and navigation bars would disappear. Giving the user a feeling of an offline Text Editor. Some Code Implementation Pure Js

Help and Introductive Examples When a user visits the Sympy Live Editor, It is appropriate to show him some guide. Many Software’s use an everyday-tips pop-up. This tips or hints would make the user updated with current changes and it would make the user understand more about the Sympy Software. It would also make the user interested in using new features implemented by the development team. We can always use this approach to make system users understand the use of a new feature in the site or from the documentary. I got this idea while using the Android Editor (Android Studio). I have learnt a lot from the “Today’s hint” in Android Studio. So as not to bug the user, the user can put-off (Disable) tip’s pop-up from the settings page.

Automatic Suggestion and Completion Many people program in different languages (e.g. C++, C, FORTRAN, PHP, Python and lots more) and the syntax are all different. The most complicated part is that most libraries and frameworks have their own methods, classes and in some cases new syntax. The “automatic suggestion and completion” feature is very important. My idea is to use JavaScript to read from a Json file containing all sympy methods making the sympy editor capable of suggesting methods to the user even if the user is offline.

Gamma Sympy Mathematical Input Board Many People do not know the names of equations or the topics the equations fall under. For Instance, many people do not know that x2 + 2x + 5 is a quadratic equation. So it would be a great task asking them to choose from a list of mathematical topics (Logarithms, Trigonometric, Polynomials, Sets …)

Let’s make an onscreen input board consisting of all mathematics operations and symbols. We can call it the “MIB-Mathematical input board”. With this board, people just need to duplicate (enter) the equation that they can see on their notes by pressing or clicking the relevant symbols. Similar to using a Calculator. At the end of the operation, if the user presses the Answer button, the sympy script is activated, the Answer is calculated and displayed. The present input method in Sympy Gamma should/may not be discarded, however, the user would be able to switch from one mode to the other.