البرامج العلمية والتعليمية

البرامج التعليمية.
هناك القليل جداً من البرمجيات التعليمية العربية-الإسلامية لنظام غنو/لينكس بل وحتى هناك استخدام قليل لتلك الموجودة منها وذلك لا لسبب يتصل بطبيعة النظام في دعم اللغة (بل إنه يوفر مزايا تناسب العربية غير موجودة في أنظمة أخرى) ربما تتعلق بجشع ناشري البرمجيات العربية فهم أحياناً يرخصون أشياء لا يملكونها (مثلاً كتب السيرة أو التفاسير التي تعود لعدة قرون ماضية) وفق رخص مملوكة (تذكر أن الملكية الفكرية لا تكون على الوسيط الذي وضعت فيه الفكرة بل الفكرة نفسها) فتبذل جهدها لجعل النص ملازماً للبرمجية (بتشفيره مثلاً) فلا يفصل عنها لتملك الإثنين معاً، حتى في المشاريع البرمجية الخيرية التابعة لمؤسسات لا تهدف للربح وذلك بأن تكلف (ربما بسبب الجهل أو نصائح الخبرات المقنعة) شركة للقيام بالأمور الفنية فتعمل الأخيرة على إخضاع البرمجية إلى رخصة غير حرة كجزء من إدارتها له انظر الرخصة في أسفل مشروع تفاسير www.altafsir.com التي تمنعك من نسخ copy ولصق paste النص القرآني أو أحد التفاسيره. ولكن طبيعة الرخصة الحرة في غنو/لينكس (التي يدعي ناشري البرمجيات المملوكة أنها لا تناسب طموحاتهم الربحية) ليست السبب الرئيسي حيث أن أكثر التوزيعات تشبثاً بالحرية مثل ديبيان تدعم تشغيل برمجيات غير حرة (انظر ملحق عهد ديبيان) بل إنها تتعلق بجدية البرمجيات العربية وتنافسيتها حيث إن أغلب المصاحف الإلكترونية تكون عبارة عن تصوير للمصحف (عبر scanner) في حين يكون التفسير مجرد نص أصم غير مرقوم أو مترابط hybertext دون أي بحث ذكي. وتكون التطبيقات العربية مجرد ترجمة أو فلاشات! فحتى الآن كل المدققات الإملائية العربية المملوكة لا تستند إلى الصرف بل إلى القواميس. يوفر مشروع عرب-آيز نواة عمل لتطوير برمجيات حرة عالية الجودة تناسبنا مثل برنامج القرآن الكريم وهو بواجهة غنوم أو KDE أو حتى جافا (البرنامج لا يزال دون عرض للتفسير).


Keduca

Kalzium
هناك الكثير من برمجيات التعليم بمساعدة الحاسوب CAS لنظام غنو/لينكس، أهم مثال عليها هو حزمة KDE التعليمية KDE edutainment (ربما تسمى في توزيعتك 'kde-edu' أو 'kdeedu') وهي تأتي في أغلب التوزيعات، بها برمجيات تناسب أعمار مختلفة مثل:
  • flashkard - برنامج يستعمله المعلم لعمل بطاقات الأسئلة (اختيار من متعدد) التي تُشغل للطالب لاحقاً عبر برنامج 'keduca' الذي يعرض بطاقة السؤال لتختفي إذا أجاب إجابة صحيحة وإلا تكرر حتى تحفر في ذاكرته.
  • ktouch - تعليم الطباعة
  • kvoctrain - إثراء المفردات في اللغة الإنجليزية وغيرها
  • khangman - عبة شنق الرجل التقليدية، عليك تخمين حروف الكلمة.
  • kmessedword - الكلمة الضائعة، شبكة من الحروف المبعثرة تستخدم لتعلم كلمات جديدة.
  • klettres - تعليم الحروف الهجائية لفظاً وكتابة باللغات الدنماركية والألمانية والفرنسية، وقراءة مقاطع بسيطة.
  • kpercentage - حساب النسب المئوية.
  • kgeo - الهندسة التفاعلية Interactive geometry يستخدمه الطالب ليرى كيف أن طول الخط المستقيم الواصل بين ...إلخ.
  • kmplot - رسم الاقترانات الرياضية بيانياً.
  • kstars - برنامج يعرض القبة السماوية: مواقع النجوم والأبراج والعناقيد النجمية والمجرات والكواكب، كما نراها من على أي نقطة على سطح الأرض في وقت وتاريخ معين. تستطيع النقر بالزر الأيمن على أي شيء لتعرف معلومات تفصيلية عنه.
  • kalzium - الجدول الدوري للعناصر الكيميائية PSE حيث يعرض حتى 118 عنصراً المكتشفة قبل عام 2003، تستطيع تحديد سنوات سابقة (لعرض العناصر المكتشفة حينها) انقر على أي عنصر لمعرفة تفاصيل عنه. يوفر البرنامج امتحان اختيار من متعدد لمسوى الثانوية (الصف الحادي أو الثاني عشر)

توفر عرب-آيز برنامج "بياني" لرسم الاقترانات الرياضية بأسمائها العربية (جاس و جتاس وظاس ...) بيانياً، هذا البرنامج يمكن استخدامه كأداة تعليمية مفيدة.


من جهة أخرى غنوم له مجموعة من البرمجيات المشابعة ولكن لأنها ليس جزءاً رسمياً من بيئة غنوم لهذا لن تجدها في أغلب التوزيعات (طبعاً تجدها في ديبيان) إليك قائمة صغيرة لبعض تطبيقات GTK+
  • GCompris - مجموعة من الألعاب التعليمية للأطفال الصغار بواجهة طفولية بديهية، بعضها يعلم استخدام الفأرة أو الكتابة على لوحة المفاتيح أو القيام بالعملية الحسابية في صورة ألعاب، أو قراءة الساعة أو التعرف على الحروف عند سماع أسمائهاها وبعض الألعاب الصغيرها. هذه البرمجية جزء من حزمة الإصبع الخامس في قدم غنوم The Fifth Toe of GNOME.
  • mathwar - تعليم الحساب عبر عرض البطاقات.
  • gperiodic - الجدول الدوري للعناصر بواجهة GTK2+، إنه يحتوي على العناصر المعروفة وعددها 118 عنصراً يوفر معلومات عنها عند النقر عليها.
  • Dr. Genius (أي drgenius) - برمجية هندسة تفاعلية Interactive geometry تدعم Guile لكتابة نصوص برمجية، يمكنه تصدير الصور بهيئتي LaTeX و EPS. (تجد الأمثلة في /usr/share/drgenius/examples)
  • Dr. Geo (drgeo) - شبيه بالسابق.

برمجيات الهندسة التفاعلية Interactive geometry يمكن أن تكون أكثر تعقيداً ليستخدمها المعلم لعمل نماذج modules، منها geomview (انظر www.geomview.org) البرنامج يعرض الكائنات في الفضاء اللإقليدي أو hyperbolic space أو spherical space تتحرك فيه وتتفاعل مع المستخدم أو يتحكم بها برنامج خارجي. يدعم الإضاءة والظلال وتحديد مادة الأجسام عبر OpenGL.

يوفر كل من غنوم و KDE واجهة للوصول إلى خادمات القواميس والمعاجم العامة عبر الإنترنت (هناك الكثير منها للعموم ترعاها The DICT Development Group) أو تلك الخاصة على شبكة محلية أو حتى على جهازك. إما أن تستخدم برمجية 'kdict' من KDE أو 'gnome-dictionary' (أو 'gdict') الذي هو جزء من أدوات عنوم 'gnome-utils'. أو تستخدم بريمجاً applet لإضافته انقر بالزر الأيسر إلى جانب الساعة (أو حيث تريد وضعه) ثم اختر بريمج القاموس/المعجم Dictionary applet. حتى يعمل أي منها عليك إعداده ليستخدم الخادم المطلوب، إذا لم تكن تملك اتصال إنترنت دائم يمكنك تركيب خادم على جهازك (اسم الحزمة 'dictd') ثم إعداد البرامج الواجهة على العنوان localhost (أو 127.0.0.1) ثم تركب حزمة تحتوي القاموس، يأتي ديبيان بالكثير من القواميس المختلفة للغات مختلفة من بينها المعاجم الإنجليزية-الإنجليزية التالية:
  • 'dict-gcide' - معجم غنو العالمي الجامع للغة الإنجليزية GNU Collaborative International Dictionary of English (وهو يحتوي المعاني قبل عدة عقود ربما لعام 1913)
  • 'dict-wn' - قاموس إنجليزي بتعاريف حديثة إضافية (ينصح بتركيبه إلى جانب gcide)
  • 'dict-jargon' - معجم المصطلحات الفنية والطلاسم من The On-Line Hacker Jargon File.
  • 'dict-foldoc' - معجم للمصطلحات الحاسوبية من Free On Line Dictionary of Computing.
  • 'dict-vera' - الاختصارات الحاسوبية من غنو

توفر عرب-آيز مشروعي قاموس وكلمات التي يمكن تحويلها إلى صيغة dict واستعمالها كما القواميس الأخرى كما توفر خادم عام على الإنترنت يمكن توجيه واجهات dict إليه إلى جانب واجهة ويب التي يمكن الوصول لها عبر متصفحات الويب.


2.8.2 الآلات الحاسبة.

هناك الكثير من الآلات الحاسبة لنظام غنو/لينكس مثل kcalc (جزء من KDE) الكثير منها علمية. حتى تلك العلمية مثل galculator (انظر http://galculator.sf.net) تكون ذات دقة محدودة لحسابات الفاصلة العائمة float point calculations ( ربما تصل إلى 16 منزلة للجزء الكسري وثلاثة للقوة) حيث تمثل الأرقام على صورة '0.3001x1030' على سبيل المثال. هناك العديد من المنازل (الأقل قيمة) اسقطت من الجهة اليمنى قد تتراكم لتؤدي إلى خطأ كبير. بعض الآلات الحاسبة تحاكي HP-28/48 مثل طور calc في XEmacs أو البرنامج البشع المنظر xcalc (ربما يحتاج لتمرير معامل ليكون كذلك). إذا أردت آلة حاسبة غير محددة الدقة، مثلاً في دراسة نظرية الأعداد لحساب مضروب 100 (حاصل ضرب الأرقام من 1 إلى 100) أو حساب Pi مقرباً إلى 3000 منزلة. من بينها gcalctool في غنوم.
أهمها GNU BC وهو أداة نصية غير محددة الدقة اكتب 'bc' للحصول على سطر أوامر تفاعلي،جرب أن تكتب 3 ^ 100 - 1 لتحصل على تلك القيمة دون تقريب في حين أن حاسبات الفاصلة العائمة العادية ستجد لك جواب تقريبي (هذا إن استطاعت) من عدة منازل مضروبة في 10 قوة عدد. يمكن للبرنامج تقريب الأعداد غير النسبية لأي دقة تطلبها منه مثلاً جرب 'sqrt(2.0000000000)' ثم 'sqrt(2.00000000000000000000)' كما يمكنك تحديد عدد المنازل بالأمر 'scale=20' (لتكون 20 في المثال) يمكنك استعمال الفاصلة المنقوطة ';' لتفصل بين الأوامر عند وضعها على سطر واحد جرب المثال التالي: 'scale=100; sqrt(2)'. إذا شغلت البرنامج بالأمر bc -l فإن هذا سيفعّل الاقترانات المكتبية وهي: جيب الزاوية 's' وجيب التمام 'c' والاقتران المعاكس لظل الزاوية 'a' واللوغاريتم الطبيعي 'l' والاقتران الأسي 'e' وفي كلاهما الأساس هو e (عدد Euler أو العدد النيبيري) واقتران Bessel النوني 'j(N,X)'. مثلاً لتجد Pi مقربة إلى 200 منزلة اكتب 'scale=200; a(1)*4' انظر كتيب bc. كما أن GNU BC لغة رقمة تشبه سي يمكن استعمالها في برمجة النصوص numeric ******ing language.

برنامج GNU Desk Calculator (الأمر هو dc) هو آلة غير محددة الدقة بصيغة أكثر تعقيداً، لأنه يستعمل الصيغة المعكوسة RPN (أي Reverse Polish Notation) التي تشبه صيغة العمليات اللاحقة postfix syntax، حيث تدفع الأرقام (والسلال النصية) إلى مكدس وعند إدخال عملية ثنائية تسحب آخر 2 وتقوم بالعملية ثم تعيد الناتج ،مثلاً 10 20 + p تطبع 30 وبهذه الطريقة أنت لا تحتاج أقواس مثلاً (2+5)*3 تصبح 2 5 + 3 * p ويمكنه القيام بعمل جبار مثلاً لتحليل 1000 لعوامله الأولية اكتب في سطر الأوامر (يمكنك استبدال 1000 بأي رقم آخر مهما كان ضخماً) bash$ dc 1000[p]s2[lip/dli%0=1dvsr]s12sid2%0=13sidvsr[dli%0=1lrli2+dsi!>.]ds.xd1<2
طبعاً ليست بحاجة لعمل ذلك تحليل الأعداد فهناك برنامج factor ولكنه مجرد مثال على قوة DC. وبامكانك استعمال في النصوص البرمجية انظر فصل 6.2 البرمجة بلغة سطر الأوامر bash. هناك حاسبات RPN غير DC مثل rpncalc (سطر الأوامر) أو grpn (بواجهة رسومية GTK+) كما أن بعض الآلات الحاسبة لها طور RPN.


2.8.3 برمجيات التحليل العددي والنظم الجبرية.


تهدف برمجيات التحليل العددي لحل المسائل الرياضية التي عادة ما تكون على المصفوفات (مثل الجبر الخطي والمعادلات التفاضلية) بجواب عددي تقريبي بنسبة خطأ مقبولة، في حين يفترض في برمجيات النظم الجبرية CAS توفير حل جبري رمزي صحيح للحسابات والتبسيط وحل المعادلات.
تلميح الجبر Algebra كلمة عربية الأصل تعني الربط وإزالة الكسر استخدمت لأول مرة بالمعنى المعروف الآن بواسطة العالم المسلم (غير العربي) محمد الخوارزمي (يكتب باللاتينية Algawarizmi أحياناً) في كتابه الجبر والمقابة (أي المساواة) وهو فن الحصول على القيم المجهولة من المعلومة إذا كان بينها صلة تستوجب ذلك. كلمتي الخوارزمية Algorithm ولوغاريتمات logarithms سميت على اسمه.
أشهر برنامج تحليل عددي ونظام جبري هو Matlab من شركة Math Works Inc. وهو يعمل في غنو/لينكس (انظر www.mathworks.com) وهو برنامج له واجهة رسومية ولكنه ليس برمجية حرة. البرنامج المعروف Matematica أيضاً يعمل على نظام لينكس لكنه هو الآخر ليس برمجية حرة.

برنامج غنو أوكتيف GNU Octave هو برمجية تحليل عددي متوافق إلى حد كبير مع صيغة Matlab. إنه لغة برمجة عليا (أي أنه يستعمل عبر أوامر)، صمم خصيصاً من أجل الحسابات العددية ويأتي مع أغلب التوزيعات. إلى جانب مكتبته الواسعة هناك مشروع بوتقة أوكتيف octave-forge (انظر http://octave.sf.net) يحتوي على أكثر من 500 اقتران بلغة غنو أوكتيف في مختلف الحقول مثل : audio و comm و control و geometry و ident و image و io و linear-algebra و optim و path و plot و set و signal و sparse و specfun و special-matrix و splines و statistics و strings و struct و symbolic و time. يستخدم غنو أوكتيف GNU Octave من أجل الرسم البياني GNU Plot بشكل تلقائي ولكن يمكنه أن يستعمل برامج أخرى مثل 'kmatplot' أو 'plplot' (انظر www.plplot.org).
تهدف glpk أي عدة البرمجة الخطية من غنو GNU Linear Programming Kit لحل المسائل العملاقة في البرمجة الخطية linear programming (للاختصار LP) و mixed integer programming (للاختصار MIP) وغيرها. تدعم لغة GNU MathProg (المشتقة من AMPL) والهيئات القياسية مثل MPS و LP. هناك برنامج آخر اسمه lp-solve يقوم بنفس الغرض ويدعم هيئة MPS.


Euler interface

Euler 3D plotting
برنامج Euler الصغير الخفيف التفاعلي بالواجهة الرسومية (عبر GTK+) يقوم بالحسابات على الأعداد الحقيقية والتخيلية والمصفوفات والفترات. يرسم الاقترانات في بعدين أو ثلاثة ويأتي مع مساعدة help وأمثلة للعرض demo.

لغة البرمجة التفسيرية Yorick (القريبة من سي) للمحاكاة العلمة والحسابات على ملفات المدخلات الكبيرة كما يمكنه إنتاج رسوم علمية. كما يمكن استخدامه تفاعلياً.
منظومة Yacas الجبرية (والتي يعني اسمها منظومة جبرية حاسوبية أخرى Yet Another Computer Algebra System) منظومة صغيرة جداً (لا يصل حجم حزمة ديبيان الخاصة بها إلى واحد ميغابايت دون الوثائق) كما أنه لغة جبرية عالية المروة (قريبة من Mathematica ولغة سي) يمكن استعماله لكتابة نصوص برمجية ******s كما تستطيع استعماله عبر سطر الأوامر (الرسومات عبر OpenGL) أو تستخدم واجهة رسومية منفصلة له تسمى proteusworksheet (تلك الواجهة الخفيفة عبر FLTK أي Fast Light Tool Kit) تجدها على حزمة صغيرة (دون 200 كيلوبايت) تسمى 'yacas-proteus'. يوفر عدة طرق للمساعدة مها ضغط TAB (مرة أو إثنتين) للمتابعة التلقائية لما تكتبه أنت (كما BASH)، اكتب 'Example();' (حرف E كبير، نعم إنها حساسة لحالة الحروف) للحصول على مثال عشوائي، اكتب '??' للحصول على فهرس المساعدة، أو اكتب علامة واحدة متبوعة بالموضوع الذي تريد مساعدة عنه (مثلاً '?Sin'). تستطيع تعريف الرموز (المتغيّرات أو الاقترانات) بعلامة ':=' أي نقطتان رأسيّتان ثم يساوي (مثلاً 'f(x):=x^2;'). اكتب أي تعبير رياضي وستحصل على قيمته الدقيقة (مثلاً 'Sin(Pi/3);' تعطي 'Sqrt(3)/2') حتى لو كانت أعقد من ذلك (مثلاً 'Sin(ArcSin(a))+Tan(ArcTan(b));' تعطي 'a+b') إذا لم يكن الجواب بسيط بما فيه الكفاية (مثلاً '(x+y)^3-(x-y)^3') تستطيع استخدام 'Simplify' وبدلاً من إعادة كتابة التعبير استعمل % التي تحمل آخر جواب، لجعله يبدو أجمل استعمل 'PrettyForm(%);'. يستطيع Yacas حل المعادلات لإيجاد قيمة متغيّر بما يشبه 'Solve(x^2+x == 0, x);' (التي تحل x2+x=0 لإيجاد قيمة x). كما يستطيع إيجاد النهايات (مثل 'Limit(x,0) Sin(x)/x;' التي تجد نهاية sin(x)/x عدما تقترب x من الصفر)، والمشتقة الأولى باستعمال 'D(x) f(x);' والمشتقات العليا (مثلاً 'D(x,3) f(x);' للمشتقة الثالثة ل f بالنسبة ل x) والتكامل المحدود (مثل 'Integrate(x,a,b) f(x);' لحساب التكامل على x ل f من a إلى b) أو حتى التكامل غير المحدود (مثل 'Integrate(x) Sin(x);').

هناك الكثير من النظم الجبرية لنظام غنو/لينكس منها:
  • Axiom - منظومة جبرية عامة الأغراض بدأت بالتطور منذ 1973، وهي أداة مفيدة في الأبحاث وتطوير الخوارزميات الرياضية لغة Axiom البرمجية تعرف شجرة هرمية من أنواع البيانات الصحيحة رياضياً ولها مصنّف compiler مبني ضمنياً. لقد كان برمجية تجارية مملوكة لعقود لكنه الآن برمجية حرة (يأتي مع Debian).
  • الثغرة GAP (اختصاراً للمجموعات والخورزميات والبرمجة Groups, Algorithms and Programming، الموقع: www.gap-system.org) - منظومة جبرية CAS (بلغة تشبه Pascal) للحسابات الجبرية المتقطعة (أي على الأعداد الطبيعية والمجموعات المعدودة خلافاً للمجموعات اللامعدودة المتصلة مثل الحقيقية) مع التركيز على نظرية المجموعات.
  • Maxima - منظومة جبرية بلغة Common Lisp بنيت على المشروع الأصلي Macsyma في معهد MIT في سبعينات القرن العشرين. تعمل عبر سطر الأوامر (مع أنها تعتمد على Tcl/Tk Wish لسبب ما)، ولها واجهة مستقلة كتبت على Tcl/Tk اسمها 'xmaxima' كما يمكن استعمالها عبر طور داخل Emacs. برنامج Maxima هي برنامج حسابات رمزية بالكامل يستطيع القيام بالعمليات الرمزية على كثيرات الحدود polynomials والمصفوفات matrices والاقترانات النسبية rational functions والتكامل integration و Todd-coxeter والرسم graphing و bigfloats.
  • PARI/GP ('pari-gp') - منظومة جبرية طورت بجهود متطوعين من جامعتي University Bordeaux I و University Paris XI في فرنسا.
  • MuPAD (انظر 'www.mupad.de') - منظومة أخرى بواجهة رسومية صيغته تشبه Mable.
  • gTybalt
  • JACAL

برنامج TeXmacs (زر موقع www.texmacs.org) هو محرر نصوص رياضي بواجهة رسومية مبنية على TeX و Emacs يمكن أن يكون واجهة للعديد من النظم الجبرية منها Axiom و Maxima و Octave و Pari-gp و Yacas.

يتبع