GSoC 2016 Application Archit Verma : SymPy Live and SymPy Gamma (on Google App Engine) - sympy/sympy GitHub Wiki

Table of contents

Basic Information

Personal Details

Name: Archit Verma

Email: [email protected]

University: Delhi Technological University, India

Github/IRC: architv

Blog: architv.me

Timezone : IST (UTC +5:30)

Personal Background

I am a 4th year undergraduate pursuing a bachelors of technology in Electronics and Communication Engineering at Delhi Technological University, India. I have a keen interest in Electronics and Computer Science and to develop it further I have taken multiple courses during my undergraduation including Advanced Engineering Mathematics - I,II, Discrete Mathematics, Introduction to Data Structures, Algorithm Design and Analysis and Web Technologies.

Programming Details

Platform and Editor

I work on an Ubuntu 14.04 LTS machine and have Sublime Text 3 as my primary text editor because of its light-weightedness compared to an IDE and the useful add-ons it has. I occasionally use VIM too.

Programming Experience

I have been programming for close to three years now. I use Python and JavaScript for most of my projects and I also have experience in working with Java and PHP. I have worked on various projects on the web, most of which are open source.

  • Soccer CLI: One of my most popular project. A Python-based command line app to get the latest football scores directly in the terminal.
  • Challenge Hunt: An app that lists coding contests and hackathons from around the world. Featured in the top ten daily products on Product Hunt and won the DevPost popular choice award.
  • Harvey: A command line app to manage license for open source projects.
  • StalkCoder: A chrome plugin for popular sport programming website CodeChef to allow users to compare their rank based on monthly coding contest.

Python Experience

I have been using Python for two years. I like python for its english-like syntax, small learning curve and the fact that it makes prototyping extremely fast. My favorite feature in Python is map, filter and reduce. Using this with lambda functions makes working with lists super easy.

I am quite familiar with version control system git and have been using it(GitHub, Bit Bucket) to contribute to many open source projects.

Contributions to SymPy

I first came across SymPy two months back and have contributed to SymPy since then.

  • (Merged) PR #10443 : Dict: Added support for collections.defaultdict Added support for collections.defaultdict which was previously not available.

  • (Open) PR #10517 : zeta function: zeta(x) for Re(x-1) not zero is finite

Bugs/issues reported:

The Project

Brief Overview

I plan to work on SymPy gamma. SymPy is a very useful library and is used in the backend of many other CAS systems like Mathics and Sage. Also, it's a great open source alternative to Maple, Mathematica and Matlab.

Currently Wolfram Alpha has a lot of powerful features but most of them are available only for a pro(paid) account. I feel having a free and open source alternative with SymPy would be very useful for anyone looking for an alternative CAS system.

The Plan

I plan to broadly work on two features:

Natural Language Parsing: In my opinion this is one of the most important features of SymPy. SymPy Gamma parser does a good job of understanding basic queries but fails for natural inputs and text-based math unlike Wolfram Alpha, which has this as one its main features. This issue has been brought up multiple times on the discussion forum and inorder to address it I have gone through the parsing wiki page and a research paper in addition to the mailing list. I understand that it's a complex problem but I have experience with Natural Language Processing which would help me in coming up with a solution.

Full-length symbol keyboard: Currently SymPy only supports a basic keyboard with seven symbols. Since SymPy Gamma is an end user application it makes more sense to have a full fledged symbol keyboard. Also, having a symbol keyboard would make it much more convenient for people using SymPy Gamma on mobile phones, and would add to its adaptability.

Timeline

TODO

Community Bonding Period & Week 1

Week 2

Week 3

Week 4

Week 5

Week 6

Week 7

Week 8

Week 9

Week 10

Week 11

Week 12

Week 13

References