Showing posts with label School. Show all posts
Showing posts with label School. Show all posts

Thursday, October 9, 2008

Sage - Does the hard math for you!

Sage

Does the hard math for you!

Sage is a free mathematical software, released under the GPL license.

Features:
* Includes a huge range of mathematics functions
* Easy handling of most mathematical software based on Python
* Represents an alternative to Magma, Maple, Mathematica, and Matlab



If you are involved in some activity or another that occasionally requires you to make fast calculations in fields such as geometry, algebra, number theory or anything else related to these, it may be worth your while to try out Sage, an open source, free math software. It could prove to be just the tool you needed if you are working on a team project, as this program places great stress on collaboration and openness, therefore being a great teaching or training software.

I must admit that I was never a math genius in school, but I did pretty well, and almost effortlessly, with the concepts that were mandatory to finish the courses. Maybe that's one of the reasons why I was lured to see what this program was about, being curious to find out how much knowledge I still had after a few years of no mathematical quest whatsoever. Being based on Python, I felt a little more confident that the migration to Sage would not be too shocking, as I had just finished reading a tutorial about this high-level language.

After I installed the program, I was a little surprised to discover that it didn’t have a regular editor, using instead the local web browser to load its interface. After a fresh IDE install, I have made a personal habit out of verifying what documentation is provided and, in this case, I cannot but praise Sage for delivering such a vast collection of helpful material, from which I'd like to single out a very good tutorial and a complete reference manual. The best way to get started is to create a new worksheet (you'll see the button for that right after Sage loads in your browser), and then go to Help -> Tutorial, at which point, a new tab with the Sage tutorial becomes available. Now, you can start reading and testing any command you find interesting in the worksheet.

I decided to try out the tutorial myself because it did not seem to be very long and I thought it would be best to take a general look at what this program could do before I started exploring it in a more detailed manner. As I browsed the tutorial, I simply could not believe how many functions were provided and how well they were explained. Of course, for a non-math person, it would be rather hard to grasp that, for example, diff(sin(x)) = cos(x) or diff(x^2) = 2*x, but I think that, with a basic knowledge, there should be no problem getting through this tutorial very fast and without any headaches. Besides, it is a software aimed for a particular purpose, which addresses a specific user base, therefore we have to judge it from one of these users' perspective. In other words, it doesn't teach you math - you are supposed to have at least a general idea of it for this software to be of any real use to you.

I cannot depict Sage's entire functionality here, for reasons that are easy to understand, one of the most obvious being the fact that a tutorial is already available, as well as lots of additional information, as soon as you finish installing the program. I merely intend to point out some of the simpler traits I found useful and interesting, and which could come in handy in many situations. I do not presume to give a decent, documented opinion on Sage's expertise areas, which require you have a solid understanding of advanced math, like number theory, some parts of linear algebra, elliptic curves, Dirichlet characters, modular forms, and more. There are, however, a few functions that can really be useful, and about which I'd like to tell you a few words. But, first things first, let us get the general idea of the program, before moving ahead to exploring its capabilities.

The interface is, in my opinion, one of the most important aspects of an IDE because it directly influences the developer's productivity and handling. If the interface provides intuitive and easy to learn and use functionality, it's easy for the IDE to become a popular one. I've stated my thoughts on this because I want to give an extra reason as to why I think this program comes with a very interesting and, at the same time, useful interface. The main trait is workspace organization, which lets the user handle files with great ease and in such as manner as to need just a minor amount of time to get familiar with. Like Python, Sage is a scripting language, so you have the two well-known possibilities of writing scripts, or using the interactive shell. The shell is organized in worksheets, which resemble a source file of a compiled language, but the difference is that you can evaluate what you wrote at any given moment. A small example is in order here, I know, so here it is.

Let's say that you have an equation, and you obviously want to solve it. So, take a few moments and think how you would do it in C or Java. Of course, it's certainly possible to write a simple program that can do the job in either of the two languages mentioned. But it takes some time, doesn't it? That is, time you don't have to dispose of because you need results rapidly. Well, with Sage, solving equations, systems of equations or differential equations is absolutely no trouble. Now, back to the example, let’s suppose you have the equation x^2 - x - 20 = 0; the biggest power of x is 2, so there are going to be 2 valid solutions for x as well. All you have to do in order to generate the desired output is to declare a variable and then apply the solve function on the equation created with that variable. That sounds a bit harder than it actually is, but the code is really simple: var('x'), and then solve(x^2 - x - 20, x). After you click on evaluate or press Shift-Enter, the following output will appear: [x == 5, x == -4], representing the solutions for our equation.

The thing I tried out for a pretty long time and that I honestly enjoyed very much was plotting. For those of you (experts, please don’t take this as an insult) who have no idea what this is, plotting is used to give a graphical representation to a mathematical function, with the help of 2 orthogonal axes for 2D plots and 3 axes for 3D plots, respectively. I just wish I had this tool when I was in high school or at least during my first year of college because, surely, it would have made a difference. However, the idea that you get to benefit from it makes me forget about not having it when I mostly needed it, because at least now I know that this tool, the plotting, will certainly make life easier for you. Even more, you could even recommend it to your teacher, if you're still in school. It makes it possible for you to draw the plot of any given function, be it linear, polynomial, exponential, logarithmic, factorial, or any combination you could think of. Then, you can even save the output as a PNG image in a file for later reference, the quality of the image being more than satisfactory. Even more, you have parametric plots that are a little more complex but which, when applied in 3D geometry, can turn into real works of art – a few examples being provided in the tutorial as well.

The Good:

I believe I already made it clear which are the things Sage excels at, but a short summing up would be in order at this point. First, it's a completely capable IDE that can help you in various ways; secondly, it has an intuitive interface and, last but certainly not least, it comes with a well written documentation.

The Bad:

Other than the fact that its most advanced functions are truly inaccessible to someone who doesn't have the right academic background, I didn't find anything not to my liking. May I remind you that I tried as best as I could to view this software from the perspective of someone who had at least a general idea of the matter.

The Truth:

To conclude, I'd say that this software is suited to meet numerous needs, and not just those related to math and school. It may very well be used, for instance, to satisfy one's curiosity regarding a particular aspect, or it could be a great help for graphical developers who need a quick look at a certain function's 3D plot.

Source : Softpedia.net
Read More..

Little Wizard - A development environment for children

Little Wizard is a development environment for children.

Features:
· easy to use;
· user friendly;
· only mouse usage;
· simple to grasp.

I've always wanted to present an educational product, one intended especially for children in primary school because, that way, I would contribute to making the learning process just a tad better for some. And by better I mean more fun, with less stress associated with it and, why not, a real pleasure.

Well, now that I have this opportunity, I will tell you about the most user-friendly development environment you ever set your eyes upon, an IDE especially designed for children. Although far less powerful than the usual programming environments, Little Wizard is just what a kid needs to be introduced to, if s/he is to regard learning how a computer program is crafted as something fun.

Little Wizard's job is indeed a difficult one, and that’s mainly because of two reasons. First off, children tend to become bored extremely fast, and I'm sure we can all agree on that - so it's fair to say that you can't really make a child do something, let alone enjoy it, if that thing doesn't profoundly arouse her/his interest. Any school teacher can confirm that boredom among pupils is one of the biggest obstacles standing in the way of an effective learning experience – so, to put it simply, there has to be something that, even if harder to grasp at first, dons a very user-friendly wrapper. The second reason is that computer programming is a field that is fundamentally difficult to comprehend. I don't want to analyze here what it takes to be a skilled developer, but trust me, it takes both time and effort, and to become an expert, well, let's just say it's hard to get there.

Then, is it possible to put together these two conflicting aspects and yet come up with something that's worth anything? The answer is yes, as Little Wizard is one of the most nicely implemented educational software I have seen. Although it's relatively straightforward, having no complicated commands or too complex concepts to deal with, it's certainly not a toy. I mean, it's true that in terms of user interface it has little in common with the more technical, real development environments, being very cute, with little animations all over, and a truly well made interface. Nevertheless, it's a serious application when it comes to its offerings.

When I first started using Little Wizard and saw that it was designed to teach kids, I thought there was no need for me to waste my time reading the tutorial, as I felt confident on my small programming background to help me get started quickly. However, in the first ten minutes or so, I literally felt overwhelmed with the multitude of tabs, small pictures of a little clown (which, after a while, I realized was the actual “little wizard”) and various other aspects. I was only familiar with the math tab, which contains all the digits and operations (both the basic ones such as addition, subtraction, division and multiplication, and the slightly more advanced concatenation or logical operations), and with the loop&conditions tab, including basic clauses such as if, else, for, while, repeat-until, break and continue.

With some guilt that I could not even get how to use a children's application, I began going through the tutorial, in order to understand how to start using its full potential. The conclusion I reached was that this is a software that a teacher has to learn thoroughly, and only afterwards can he introduce it to his pupils, because it does not offer any documentation whatsoever about how a computer program is structured, its core concepts and fundamental issues. It skips all that, and begins by briefly describing the program UI, and then gets right to how the commands are used. For me, and for anyone who has written and complied a program at least once, it was really easy. However, I think that. for someone who is new at this, getting used to it would be a real problem. Therefore, for those who want to start learning programming on their own, I have to recommend first a reading on the fundamental issues.

I may have been a little to drastic above, but that’s because I suppose no one with absolutely no background in this area would venture using Little Wizard, so it will probably be a good experience for most that do. Now, let's see exactly what this tool is about and in what circumstances it may prove to be the optimum choice.

Little Wizard is a drag and drop development environment with a top priority to be as eye-pleasing and user-friendly, while offering as many of the facilities of a regular IDE as possible. The first thing you should know right from the start is that you'll probably never have to touch the keyboard, as everything you add to the program is done solely by using the mouse. For example, if you want to make a short loop to print all the numbers between 1 and 10, you have to first select a variable and assign it the value of 1, then drag down a loop clause (like while or for), open a logical block (a curly bracket, like so {), print the variable's value (which is done here by putting the create wand and the variable name next to each other), increment the variable (x = x + 1), and then close the logical block (}). Of course, there are other ways to do this, by using more specialized clauses, such as for, which increments the variable automatically with whichever step you desire (not necessarily 1 like in the previous example).

The Good

As I said before, Little Wizard has a real tough mission, that of combining a kid's need for something s/he deems intriguing, with the tedious work of studying computer programming. From my point of view, which might not be the most accurate one, it does a pretty good job at it, having a nice childish interface and various other features that kids can relate to.

The Bad

Having to constantly drag and drop figures out of the palette and into the program grid, especially if you want to create a larger program, may become a little tiring after a while. However, the most bugging aspect is removing pieces of program, as you have to select each separately, and drag it upwards in the palette. Also, there is no tool for selecting more than one item at a time, so to modify a program, you have to replace each item with the new one. This can definitely be seen as a downside since, when programming is first learnt, changes occur very often with your program as you experiment with various techniques and code statements.

The Truth

Overall, Little Wizard is an application that may prove to be satisfying for many school teachers in search for something additional to the main course (I can't say with certainty because I haven't had the opportunity to see it in real action, meaning, with kids working in it). I for one have enjoyed it because Little Wizard allows you to do a little more than just programming – an aspect I intentionally left out for you to experiment on your own. Have fun!

Source : Softpedia
javascript:void(0)
Read More..