[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-edu
Subject:    [kde-edu]: Dylon: New developer in training
From:       "Dylon Edwards" <integr8e () gmail ! com>
Date:       2008-12-24 22:04:50
Message-ID: 2f5efd1f0812241404u228bcb07j486ca17820c6ff6f () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


I'm working on writing a fontend for computer algebra systems -- like Maxima
-- to learn KDE+Qt, however, I'm very new to the programming world.  It
seems there are plenty of excellent free software CAS's, but nobody's
developed an intuitive interface to any of them yet.  Maxima does an awesome
job of formatting its solutions at the command line, but many people are
weary of using consoles; I would like to develop an application that would
make using them as easy as (or easier than) their commercial counterparts,
such as Maple and Mathematica.  Such an application will take some time to
develop, especially by a new programmer, but I'm prepared to spend a while
on it, and have actually been working on it for about a year now (but only
an upcoming 4th semester sophomore, working on my 1st Bachelor's at a local
university, I haven't generated as much code as I would have liked).  My GUI
would be much further along than it is, but until last week, I was writing
my own CAS because I was unaware of Maxima.

Some of my goals for my CAS were:
 - It needed arbitrary precision
 - It should be able to break the solution down into easy-to-understand
steps
 - It needed a clear, natural syntax that would be easy for anyone to pick
up

For the 1st, I noticed floating point calculations were not very accurate,
and had begun working on my own version of what I've now come to know as
Java's LargeDecimal class, which broke the operations down into steps and
stored the result of each sub-calculation in Strings.  I thought I'd
discovered something revolutionary until I learned about LargeDecimals a
month ago (which made such operations much easier) :P

I developed a good algorithm for the 2nd; basically, it solved an infix
expression as we do, parsing through it using the order of operations to
determine whether to perform each calculation.  The parser would pass
through the expression multiple times until it solved the whole thing,
printing the current state of the expression upon the completion of each
pass.  Pretty simple stuff, if you think about it, but for somebody who had
just completed his 2nd semester, the algorithm took some work.  I'm still
not aware of anything like it, and being so simple, I will probably try to
get Maxima's devs (or those of whichever CAS I decide to use) to implement
it.

The 3rd is self-explanatory.

In the last week, I've taught myself C++ and have begun studying, more in
depth, Qt and XML.  Originally, I had planned to write the application in
QtJambi, but have become aggravated with its current state and have decided
C++ would be better.

My basic plan is to obtain a user's expression from a TextEdit widget, pass
it to Maxima, which will be embedded and running in the background, have it
solve and export the solution in MathML (which it already has a class for),
and send the solution to KFormula's FormulaElement class which will draw the
nicely formatted solution beneath the user's expression on the canvas.  Does
that sound like a plan?

Also, if any of you would be interested in helping me get something off the
ground, that would be cool too; I would be more than willing to help revamp
KAlgebra, if its devs like the direction I'm heading, or I could create a
separate project, it doesn't matter to me; I'm of the opinion that working
with people on already existing projects is good, and that I should only
branch out and start my own thing if absolutely necessary (thus the reason
I've decided to go the Maxima route).  I have a MUCH larger vision for my
application than I've included with this email, but I figured this is
probably a good starting point.

Hello World!

-- 
Dylon Edwards
SSWJ - Stay(ing) Strong With Jesus, Always!

[Attachment #5 (text/html)]

I&#39;m working on writing a fontend for computer algebra systems -- like
Maxima -- to learn KDE+Qt, however, I&#39;m very new to the programming
world.&nbsp; It seems there are plenty of excellent free software CAS&#39;s, but
nobody&#39;s developed an intuitive interface to any of them yet.&nbsp; Maxima
does an awesome job of formatting its solutions at the command line,
but many people are weary of using consoles; I would like to develop an
application that would make using them as easy as (or easier than)
their commercial counterparts, such as Maple and Mathematica.&nbsp; Such an
application will take some time to develop, especially by a new
programmer, but I&#39;m prepared to spend a while on it, and have actually
been working on it for about a year now (but only an upcoming 4th
semester sophomore, working on my 1st Bachelor&#39;s at a local university,
I haven&#39;t generated as much code as I would have liked).&nbsp; My GUI would
be much further along than it is, but until last week, I was writing my
own CAS because I was unaware of Maxima.<br>
<br>Some of my goals for my CAS were:<br>&nbsp;- It needed arbitrary \
precision<br>&nbsp;- It should be able to break the solution down into \
easy-to-understand steps<br>&nbsp;- It needed a clear, natural syntax that would be \
easy for anyone to pick up<br>

<br>For the 1st, I noticed floating point calculations were not very accurate, and \
had begun working on my own version of what I&#39;ve now come to know as Java&#39;s \
LargeDecimal class, which broke the operations down into steps and stored the result \
of each sub-calculation in Strings.&nbsp; I thought I&#39;d discovered something \
revolutionary until I learned about LargeDecimals a month ago (which made such \
operations much easier) :P<br> <br>I developed a good algorithm for the 2nd; \
basically, it solved an infix expression as we do, parsing through it using the order \
of operations to determine whether to perform each calculation.&nbsp; The
parser would pass through the expression multiple times until it solved
the whole thing, printing the current state of the expression upon the
completion of each pass.&nbsp; Pretty simple stuff, if you think about it,
but for somebody who had just completed his 2nd semester, the algorithm
took some work.&nbsp; I&#39;m still not aware of anything like it, and being so
simple, I will probably try to get Maxima&#39;s devs (or those of whichever
CAS I decide to use) to implement it.<br>
<br>The 3rd is self-explanatory.<br><br>In the last week, I&#39;ve taught
myself C++ and have begun studying, more in depth, Qt and XML.&nbsp;
Originally, I had planned to write the application in QtJambi, but have
become aggravated with its current state and have decided C++ would be
better.<br>
<br>My basic plan is to obtain a user&#39;s expression from a TextEdit
widget, pass it to Maxima, which will be embedded and running in the
background, have it solve and export the solution in MathML (which it
already has a class for), and send the solution to KFormula&#39;s
FormulaElement class which will draw the nicely formatted solution
beneath the user&#39;s expression on the canvas.&nbsp; Does that sound like a
plan?<br>
<br>Also, if any of you would be interested in helping me get something
off the ground, that would be cool too; I would be more than willing to
help revamp KAlgebra, if its devs like the direction I&#39;m heading, or I
could create a separate project, it doesn&#39;t matter to me; I&#39;m of the
opinion that working with people on already existing projects is good,
and that I should only branch out and start my own thing if absolutely
necessary (thus the reason I&#39;ve decided to go the Maxima route).&nbsp; I
have a MUCH larger vision for my application than I&#39;ve included with
this email, but I figured this is probably a good starting point.<br>
<br>Hello World!<br clear="all"><br>-- <br>Dylon Edwards<br>SSWJ - Stay(ing) Strong \
With Jesus, Always!<br>



_______________________________________________
kde-edu mailing list
kde-edu@mail.kde.org
https://mail.kde.org/mailman/listinfo/kde-edu


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic