I'm a C/C++ programmer in essence (the language that I've most used during my graduation). Programming in C is essential for any human that will work with something related to IT, not just for learning a language, but to develop the "algorithmical intuition" on how to solve real-life problems.
C/C++ solves a huge amount of problems straight-forward but it can be a little boring to solve some problems, including working with "unconventional" paths. It's not impossible, but can be really painful and tedious.
During the course of Graph Theory I had the chance to work with Python (never programmed seriously in Python before - that's really natural and the learning curve is really fast) and NetworkX - a dedicated graph library for Python.
NetworkX eliminates all the worries with graph structures (nodes, edges, predetermined graphs) and allow to work with small to medium graphs with good performance. It have all support for graph files like GML and GraphML, and associated with MathPlot, can plot graphs directly from Python terminal. Really easy-to-use and straight-forward. The documentation is worth reading for more details.
Debian and Ubuntu have all the packages via repositories and you can install the necessary packages withouth trouble using aptitude or Synaptics, just search for python and networkx.
I recommend using an IDE for Python, specifically Ninja IDE. It will help you maintain your code clean and understandable for human-beings (because Python works with identation to isolate excerpts of code - it can turn into a real mess, believe me).
In the future I'll post some algorithms developed during my Graph Theory classes.
\o
Nenhum comentário:
Postar um comentário