[kde-edu]: An idea for a new application

Andreas Nicolai Andreas.Nicolai at gmx.net
Tue Jun 12 15:12:34 CEST 2007


Hi there,

while I still see some work on the program design, here's some information  
about those who want to start with the actual coding.

For KDE newbies: my general suggestion is to get an introduction into Qt4  
programming first (e.g. "C++ Programming with Qt4" or something like  
that). Understanding the Qt4 framework is the basis for KDE programming -  
once you get that, you'll know how to read and apply all the classes and  
widgets that come with the KDE framework and make your life even easier.

For the program:
- at first you need a mathematical token system that can handle symbolic  
expressions - something like a "Maple-light" version :-)
- next you'll need some tool that translates the mathematical expression  
in token form into a graphical representation (if drag/drop is involved,  
probably QGraphicsItems, but I also like the idea of identical operations  
better), when it comes to nice look and feel, the guys from  
KOffice/KFormula might have some ideas
- then the mathematical operations (expand parenthesis, make common  
denominator etc.) need to be implemented: requires some way for the user  
to select a term in the equation and apply an operation (or select several  
terms for an inverse expand-parenthesis operation -  how is that operation  
called in english?)

Considering the mathematical token system, which probably needs some kind  
of reverse polish notation implementation for both sides of the equation,  
I would rate this already as a higher difficulty level in terms of core  
programming. The user interface is probably not the major issue here.  
Actually, the way that the system works could be fairly straight forward:

evaluate user operation -> manipulate binary token tree -> update  
graphical display

For an example for the reverse polish notation and manipulation of the  
binary token tree see the attached figure.

Regarding KAlgebra: I wouldn't think that the functionality of KAlgebra is  
similar enough to allow merging both applications in one. Also the  
internals are quite different. KAlgebra uses a MathML parser which enables  
you to evaluate mathematical expressions, but doesn't give you the ability  
to manipulate the equations in a mathematical sense (unless you do those  
operations on the MathML code directly, which would not work IMHO for  
anything but trivial equations).

So, that's just my opinions on the project. It's a great idea and I would  
think also really useful - including a gaming perspective (how many  
"moves" you needed to solve the equation :-)

I would have some ideas on the core implementation and could also help out  
with setting up the initial framework, but for the real coding part  
unfortunately I'm way too busy :-(

Bye,
Andreas

-- 
Andreas Nicolai                         anicolai at syr.edu
PhD Candidate, M.A.M.E                  (315) 443-2641
Syracuse University
151 Link Hall
Syracuse, NY, 13244
-------------- next part --------------
A non-text attachment was scrubbed...
Name: binary_token_tree.pdf
Type: application/pdf
Size: 13076 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-edu/attachments/20070612/76e9f21c/attachment.pdf 


More information about the kde-edu mailing list