[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