البرمجة الشخصية

أهلاً ،

بعد تعلم أول لغة برمجة في حياتك، ألا تشعر بأن كل مشاكل العالم تستطيع حلها بكتابة بضعة سطور برمجية؟ حينما كنت أدرس لغة الجافا في الجامعة، كنت – و مازلت- أحتفظ بمفكرات تحتوي على حلول لمشاكل كثيرة و في مشكلة أتّبع نفس المنظومة، الحل دائما في جمل التحكم أو عداد ما.

المبرمج مدفوع بحل المشكلة ، مهما كانت ،من كان يمرّ بها، دائماً تجد الحل في رأسه ، و هذا أمر نبيل إلى حد ما، أن تستخدم مهنتك في خدمة البشرية و أن تجعل حياتهم أسهل قليلاً من أسمى القيم التي يمكن لإنسان أن بتّسم بها.

و لكن هنالك وجه آخر للبرمجة، أن تبرمج لنفسك ، لا يبدو الأمر أنانياً كما يبدو، اذا أيقنّا بأن البرمجة ما هي الا طريقة لحل المشاكل ، لما لا نحل مشاكلنا الشخصية؟

رداً على السؤال السابق، يمكن أن يخطر على بال الشخص بأن البرمجة الشخصية ما هي إلا إضاعة للوقت، حقاً؟ لا أستطيع بأي حالة اعتبار الوقت المستغل في البرمجة هى إضاعة بأي شكل، لأن مهما استخدمت شفرات قمت ببرمجتها في السابق، ستجري تعديلاً هنا أو هنالك .

و البرمجة من العلوم التي و إن حاولوا أكدمتها( هذا فعل للتو اخترعته، أكدم الشيء أي جعله علماً أكاديمياً، أكدم الشيء يكدمه كدماً) تظل علماً يعتمد على التطبيق و التمرس ، لذلك ما تفعله حين تبرمج لنفسك يمكن اعتباره وقتاً للممارسة.

ماذا يمكن أن تبرمج لنفسك؟ الباب واسع ، اذا كنت من مدمني تطبيقات قوائم المهام و لكن لم تجد التطبيق المثالي الذي يناسبك ، مثلاً كنت تريد خاصية أرشفة آلية للمهمة حسب المحتوى ، يمكنك برمجة ذلك لنفسك.
شخصياً، أنا من محبين تطبيقات العد التنازلي لتاريخ معين، و لأن معرض الكتاب قادم ، برمجت تطبيق بسيط لنظام iOS ، يعدّ تنازلياً حتى تاريخ المعرض، بالأسفل ترون صورة لواجهته و التي جعلتها بسيطة للغاية.

app

ؤ أخيراً، أتمنى لكم يوماً برمجياً سعيداً

Advertisements

دورات حياة تطوير البرمجيات: النموذج التزايدي

أهلاً
في هذه التدوينة سأستعرض نموذجاً آخرًا من نماذج تطوير البرمجيات و هو النموذج التزايدي. هذا النموذج كما يقترحه اسمه يعمل بالتزايد، أي أن التطبيق الناتج لا يُصدر مرة واحدة و إنما على دفعات تسمى بالتزايدة.

كمثال، لنأخذ تطبيق على أجهزة المكتب ( هل ما تزالون تذكرون هذه الاجهزة؟) ، هذا التطبيق يسمح لك بإضافة عملاء و بياناتهم و بيانات شرائهم كما يسجل كل البضائع في المخزن و يتابع عددها بإنشاء تقارير اسبوعية.

إذا كان التطبيق سيتم تطويره باستخدام هذا النموذج، فإن أول عملية يقوم بها المطورون هو تقسيم الوظائف إلى مجموعات غير مترابطة، بحيث يتم تطوير كل مجموعة على حدة بكل تزايدة، يتم البدء بأهم و أعقد الوظائف و كون تحديد وظيفة ما بأنها مهمة راجع لأسباب منها رغبة العميل نفسه ، لنقل أن إضافة العملاء هي أهم خاصية برأي العميل، يتم إذا تطبيقها و اختبارها و اطلاقها في النظام و السماح للعميل لا لتجربتها فقط بل و البدء بالاستخدام الفعلي ، حالما تطلق الوظيفة يتم البدء حالاً بتطوير التزايدة اللاحقة و بنفس المنظومة يتم اختبارها و من ثم دمجها مع الوظيفة السابقة واطلاقها للعميل و هكذا، اذاً نرى أن العميل له دور تفاعلي اساسي في هذا النموذج ، كما أن المطورون يحصلون على رأيه بشكل متتالي و سريع مما يسمح لهم بالتعديل بفاعلية اكبر .

ان هذا النموذج حقق تطورا فظيعا في تطوير البرمجيات و انشئ مفاهيم جديدة، كما انه يتميز بملائمته للعصر الحالي و الرغبة بالحصول على التطبيقات في وقت سريع حيث ان مدة المشاريع تصل الى شهور حينما تمتد مشاريع نموذج الشلال الى سنين .

لكن اذا لاحظتم، هذا النموذج يطلق نسخ كثيرة من التطبيق نفسه، هذا ربما يسبب الانزعاج لدى المستخدم و الذي لا يكون بالضرورة نفس شخص العميل ، في مثالنا السابق مثلا يكون العميل هو صاحب الشركة لكنه لا يستخدم النظام فعليا و انما موظفونه، ان الموظفون هم المستخدمون المقيقون لهذا التطبيق و كونهم لا يشترونه منك لا عني ان لا تضعهم في الحسبان ، لأن في النهاية الغرض من التطبيق دائما هو لتحسين و تطوير فاعلية العمل و حين يكون الموظفون منزعجون فإن فاعليتهم ستقل و سينزعج منك العميل في النهاية.

لكن هذا العيب يمكن اصلاحه بسهولة بتقسيم مناسب للوظائف بحيث في كل دفعة يتوجه الاهتمام لقسم معين ، او بالتدريب المناسب لموظفين حال اطلاق نسخة حديدة بحيث لا يشعرون بالضياع ، أو أسوأ: أن يشعروا بالغباء و هو السبب الحقيقي غالباً وراء كل انزعاج من المستخدم .

و أخيراً، أتمنى لكم يوماً برمجياً سعيداً.

العلم على بعد متصفح

images

أهلاً

في تدوينتي هذه سأتحدث عن أحد أشيائي المفضلة على الانترنت: مواقع التعلم الالكتروني ، نحن في عصر انفجار معلوماتيّ رهيب ، العلم ليس فقط يُعرض و يُفهم بوسائل و وسائط مختلفة بل و متوفر بكميات مهولة و بكلفة بسيطة نسبياً .

العلم في هذه الأيام أصبح حجة علينا لا لنا، يمكنك عبر حاسوبك، الآيباد أو حتى هاتفك الذكي عرض محاضرات من جامعات عريقة مثل هارفرد و اكسفورد بدون أي تكلفة إضافية عدا الاتصال بالانترنت ، هناك مواقع تقدم لك تجربة مشابهة تماماً للتعليم الجامعي و تسمح لك بالتواصل مع الأستاذ و تسليم الواجبات بل و تُصدر لك بطاقة طالب مما يعطيها بعداً جديداً للمصداقية.

إن مثل هذه المواقع  تواكب نظام الحياة الحالي بما إنها أنشئت أساساً لتناسبه ، لأنها متوفرة متى ما أردت ولأنها لا تتطلب أي تغيير مكانيّ مثل أن تذهب إلى القاعة كما أنها مرنة جداً بخصوص التواصل و الأهم من ذلك كله : يكاد يكون من المستحيل خسارة أي شيء خلال هذه التجربة.

لماذا نتعلم؟ يبدو السؤال فلسفياً أكثر مما يجب ، لكن إذا أردنا اجابته بنقاط عملية فبرأيي :

١- نتعلم حتى نتطور، العصر يكاد يكون تطوره لحظي ، و المواكبة باتت ضرورية ، يمكنك التعلم أجدّ ما هنالك لتعلمه بكل سهولة وبذلك تضمن كفائتك.

٢- نتعلم لنكتشف ، أحد أكثر الهواجس التي تطارد طلاب الثانوية هي اختيار التخصص ، تصفح مثل هذه المواقع يعطي فكرة ولو بسيطة عن ما يجب توقعه حين الانخراط في التعليم الجامعي لنفس التخصص.

٣- نتعلم لننجح، هذه النقطة واقعية ربما أكثر مما يجب ، و لكن ألم تمرّ بحياتك الجامعية بمقرر تواجه صعوبة فيه فقط لأن أسلوب أستاذك في الشرح لا يلائمك؟ عوضاً عن دفع تلك المبالغ الطائلة للمدرسين الخصوصيين، يمكنك الوصول إلى ذات المعلومة عبر هذه المواقع.

طبعاً يبقى السبب الرئيسي لما يجب علينا أن نتعلم ، لأن الرب لم يخلقنا ذباباً.

في هذه التدوينة سأتحدث عن بعض المواقع التي أتصفحها بشكل مستمر والتي من خلالها أتعلم تقنيات جديدة في مجالي أو حتى لإشباع حب الاستطلاع و  التعرف على العلوم الأخرى.

١- كورسيرا

من المواقع الرائدة في هذا المجال، وهو من أكثر المواقع الذي ينقل لك تجربة الدراسة الجامعية بكل تفاصيلها ، حين تنخرط في دراسة مادة ما فإنك على لقاء أسبوعي بالأستاذ عبر مقاطع الفديو المسجلة ، بالأغلب ستكون هناك واجبات و تُسلم و هنالك جلسات مناقشة بين الطلاب – بعض الأساتذة يقيمون الطالب من خلالها حتى ! – و هناك أيضاً اختبارات تُحلّ عبر الموقع.

الموقع يقدم مناهج ممتعة في أغلب العلوم كما يوجد مناهج مُعدّة بالعربية  ، لكن المناهج بشكل عام لا تكون متوفرة على الدوام و يمكنك إضافة منهج ما إلى قائمتك بحيث يتم تنبيهك في حال بدئه.

٢- يوديمي

هذا الموقع اكتشتفه قريباً من مدونة أسماء (هنا) ، ما أعجبني بهذا الموقع هو توفر المناهج على الدوام لأنها عبارة عن تسجيلات فديو و لا تتطلب تسليم واجبات أو غيره ، الموقع صُمم بطريقة جذابة جداً و بفعالية ممتازة ، يوجد جلسات مناقشة لكل منهج مثل كورسيرا و لكن ما فضلته هنا وجود لوح ملاحظات لك لتسجل عليها ملاحظاتك أثناء عرض المحاضرة! فكرة حفظ الملاحظات ضمن المنهج فكرة عبقرية حتى لا تضيع و نضمن وجود المصدر.

٣- أكاديمية خان

هذه الأكاديمية تقدم محاضرات في مجالات متعددة ، تابعت بعض المحاضرات في علم الاحياء و كانت ممتعة ، لكن المناهج تُعد قليلة مقارنة بالمثالين السابقين كما أن الوظائف محدودة و لكنها خيار جيد .

٤- اليوتيوب.

الأب العظيم لكل الفيدوهات التعليمية، لا أذكر مرة خيّب ظني فيها حينما كنت أبحث عن طريقة عمل أو محاضرة  شرح بسيط لأشياء معقدة ، جامعات عريقة بدأت بوضع كاميرات لتسجيل المحاضرات  في قاعاتها مثل هارفرد و اكسفورد لتنقل لك تلك التجربة الجامعية المميزة ، أن تستطيع السماع لمحاضرات تُقام بأكثر الجامعات حداثةً فهو ميزة لا ريب فيها، هل ذكرت أنه بالمجان؟!

هنالك العديد من المواقع الأجنبية التي تقدم هذه المناهج و التي لم أتطرق إليها ، بحث بسيط عبر قوقل سيتيح لك التعرف إليها ، علىّ أن أذكر هنا موقع رواق و الذي لم أجربه بعد لكن سمعت عنه الكثير من الثناء ، أظنه يحتاج إلى تدوينة منفصلة 🙂 .

و أخيراً ، أتمنى لكم يوماً علمياً سعيداً.

دورات حياة تطوير البرمجيات – نموذج الشّلال

images

أهلاً

في هذه التدوينة سأتحدث عن دورات حياة تطوير البرمجيات، دورة حياة تطوير برنامج ما هي باختصار عبارة عن مراحل يمرّ بها فريق التطوير ، المستخدمين ، العملاء و المنظمات و تهدف في النهاية لإنتاج منتج ما ، كتطبيق للهواتف أو موقع على الويب و غيرها.

إن عملية تطوير البرامج من العمليات التي قد تبدو بديهية نوعاً ما ، أعني ما الذي يلزمنا فعلياً لنبرمج موقعاً على الانترنت غير أن نفتح المفكرة و نبدأ بالتحدث بلغة هتمل HTML أو أي لغة أخرى؟ إن هذا السيناريو هو ما – و لا أقصد أن أكون دراماتيكية هنا و لكنها الحقيقة- بتشويه صورة المطورين في العالم البشري، لأن عملية غير مدروسة كهذه ستؤدي إلى مشاكل قد لا تبدو ظاهرة في الأفق في بداية المشروع ، إن لديّ أحاديث كثيرة بخصوص هذا الموضوع و لكني لن أسترسل في هذه التدوينة على الأقل.

ما سأقوم به هنا هو شرح أحد أشهر و أقدم دور الحياة هذه و المعروف باسم Waterfall Model و الذي يُترجم إلى ” نموذج الشلال” ، و الذي لا يبدو أفعوانيّاً كما يقترحه الإسم على الإطلاق.

نموذج الشلال سُمّي بذلك لأن الخطوات فيه تندفع بإتجاه واحد ، تنتهي من خطوة ما و تنتقل الى ما بعدها و لا تستطيع الرجوع إليها – “لا تستطيع” كلمة أقوى من المطلوب ، المقصود بأنه لا يُقترح العودة من باب أنك من المفترض انتهيت من تلك المرحلة تماماً – . في الصورة التالية رسم توضيحي ترجمته لمراحل نموذج الشلال.

الشلال

 و كما ترون فإنه يتكون من خمسة مراحل:

١- المتطلبات:

هنا يعمل فريق التطوير على اكتشاف المتطلبات اللازمة لتطوير هذا البرنامج، المتطلبات هي الإجابة على السؤال: ماذا سيفعل هذا البرنامج؟ يبدو السؤال بديهياً و لكنها في الحقيقة مرحلة حرجة جداً ، إنها الأساس لكل مرحلة قادمة بل و الأساس لكل نموذج لتطوير البرمجيات بشكل عام ، هناك كتب كثيرة في هذا المجال لأن سؤالك للعميل : ماذا تحتاج؟ لن يعود عليك بنفع ، في أغلب اأحيان – و أنا كريمة جداً بأغلبيتي هذه – العميل لا يعرف ما يريد ، إنها تكاد تكون نظرية ثابتة.

يتم تجميع هذه المتطلبات في مستند يسمى مواصفات متطلبات البرمجيات (Software Requirement Specification)  و بهذا تنتهي هذه المرحلة ، يُلاحظ هنا أن العميل يحتاج للحضور في هذه المرحلة فقط لأن فريق العمل سيبدأ بالتصميم لوحده.

٢- التصميم:

لا يُقصد هنا التصميم الجرافيكي ، بل بتصميم نموذج البيانات و كيف سيتم تبادلها عبر مكونات البرنامج ، أيضاً تصميم مكونات البرنامج كلاً على حدة و فهم كيفية التواصل بين هذه المكونات ، يمكن النظر إلى التصميم بأنها  نسخة  تصويرية – لأنها تستخدم رسوماً بيانية- للمستند الذي تم إنشائه في المرحلة السابقة.

يُلاحظ هنا أن هذه المرحلة تعتمد تماماً على مخرجات المرحلة السابقة ، مما يعني لو اكتشف فريق التصميم شيئاً خاطئاً في المستند فإن عليهم أولاً تصحيح هذا الخطأ و تصحيح كل ما هو معتمد و متأثر بهذا الخطأ ، المستندات بالأغلب تصل إلى مئات الصفحات فتعقب الخطأ هنا أمر حرج فعلاً.

٣- التطبيق:

التطبيق هي كلمة مبهرجة للبرمجة، هنا تبدأ العملية المفضلة لكل المبرمجين ، إعتماداً على النماذج السابقة و التي يمكن اعتبارها مثل مخطط العمارة، يستطيع المطور بناء الشفرة بكل سهولة ، لكن لو اكتشف صديقنا المطور هذا أي خطأ فإن عليه تصحيحه في مرحلة التصميم و مرحلة المتطلبات ، هنا تبرز أحد أكبر مساوئ الشلال، التصحيح المتسلسل.

٤- التحقق:

هنا تُعدّ عمليات الاختبار و التأكد من أن البرنامج يعمل كما يجب و يعمل كما يريده العميل ، هذه المعلومات متوفرة في المستند الذي أُعدّ مسبقاً ، يُلاحظ هنا الاعتماد التام على صحة البيانات المذكورة ، بعد هذه المرحلة يتم تسليم المنتج للعميل الذي يراه لأول مرة ، أحدأ أكبر المخاطر هنا بأن العميل ربما لن يعجبه التصميم أو لن يكون سهل التعامل كما تخيّله ، إن هذا النموذج يفتقد القدرة على التواصل التفاعلي مع العميل و الذي يظهر في نماذج أخرى سأتطرق لها لاحقاً.

٥- الصيانة: 

هذه ليست مرحلة منهية المدة بالضرورة ، إن تطويرك لبرنامج ما يجعله في مسؤوليتك و تربيته ( إصلاحه) يظل في مسؤوليتك ، لذا يُشاع بالقول بأن هذه المرحلة في مجتمع هندسة البرمجيات بأنها مفتوحة للأبد.

إن نموذج الشلال يعتبر أب لكل النماذج اللاحقة ، يعتبر أساساً لها كما ساعد في استكشاف المشاكل التي بُنيت على حلّها نماذج كثيرة. في هذه التدوينة أردت شرح هذا النموذج بشكل مبسط ،و آمل بأني حققت ذلك.

أتمنى لكم يوماً برمجياً سعيداً.

سبعة

logo

مرّ وقت طويل!

انشغلت بالفترة السابقة باختباراتي ، و أنهيت الفصل الدراسي الأول من دراسة الماجستير و لله الحمد ، أيضاً كنت منشغلة بالتجهيز و التخطيط لأحد أهم أحداث حياتي : إطلاق شركة سبعة !

انا و شريكتاي ( سارة السمّاحي و غادة السبيّل) قمنا بإطلاق سبعة في الأول من هذا العام ، الشركة تقنية و تقدم خدمات للويب و التطبيقات ، يمكنكم معرفة كل ما هنالك لمعرفته عبر موقع سبعة  .

قرابة الستة شهور قبل إطلاق شركة سبعة  بدأنا نحن الثلاثة  نتجول بين مطاعم مدينة الرياض لنجري اجتماعاتنا ، الكثير و الكثير من التخطيط تمّ  خلال تلك الفترة و الكثير الكثير من الشاي تم شربه خلال تلك الفترة ، شخصياً أنا أستطيع الاعتراف بأني مدمنة تخطيط ، ولا أمانع جلسات التخطيط أبداً ، و أحب التوثيق لدرجة أني أؤمن بحياة أخرى أني آلة طابعة.

أطلقنا شركة سبعة في الساعة السابعة ، كان الإطلاق افتراضيا – رغم أني أرى العالم الافتراضي واقعي أكثر مما تحتمل الافتراضية- عبر تويتر:

Screen Shot 2014-01-12 at 7.19.39 AM

نحن الآن في الثاني عشر من الشهر و قاربنا على الانتهاء من أحد المشاريع و نعمل على عدد آخرمن المشاريع ولله الحمد.

 في سبعة نحن نتبع المنظومة الرشيقة Agile Management  ( عليّ أن أعترف أن الترجمة هنا فاجئتني ..) هذه المنظومة تعني أن كل فريق العمل يتحمل مسؤولة خاصة وكما لكل عضو فريق منصب معين لكن كل القرارت تتم بالمشاركة ، هذه الطريقة في ادارة المشاريع لها فاعلية كبيرة خاصة في مجال تطوير البرمجيات ، لأنها تجعل من العميل فرداً من فريق العمل و يناقش و يتفاعل مع فريق التطوير حتى نصل الى منتج متكامل حسب رغبته، و تجعل من فريق العمل يعمل بسهولة في بيئة وديّة.

41Np7RGJmDL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_

من الكتب التي قرأتها والتي تتحدث بالتفصيل عن الادارة الرشيقة هو كتاب Agile Project Management: Creating Innovative Products .

الكتاب يتحدث عن مزايا هذه الطريقة بالتفاصيل  كما يقارن بالطريقة التقليدية من مناظير مختلفة .

 

و بالتحدث عن طرق الادارة ، سأدوّن بالفترة القريبة عن منظومات تطوير البرمجيات ، مثل منظومة الشلال – نعم، جميع الأسماء في مجال هندسة البرمجيات لا تتم للبرمجيات بصلة ..- .

و أخيراً،

أتمنى لكم يوماً برمجيّاً حافلاً.

سلاف تتعلم البايثون، تدوينة ٤

Screen Shot 2013-11-08 at 1.33.06 AM

أهلاً !

لمحة سريعة:

تدوينة اليوم ستتناول بايثون و كيفية إنشاء ، كتابة و قراءة الملفات النصية.

بايثون تتعامل مع نوعين من الملفات، الملفات النصية ( التي تنتهي بـ .txt ) و الملفات الثنائية

(Binary files)، في هذه التدوينة سأتناول الملفات النصية.

١- إنشاء و كتابة الملف النصي:

ما أفضله في بايثون و تعامله مع الملفات النصية هو أنني لا أحتاج حقيقة إلى استخدام أي حزمات أو مكتبات إضافية، كما لا يستلزم الأمر إحاطة النص البرمجي لإنشاء ملف نصي بأي بروتوكولات أمنية من نوع try مثلاً ، فقط افتح الملف و أقرأ/أكتب ببساطة.

كما هو معروف، في حالة أردت كتابة إلى ملف غير موجود أصلاً فإن أغلب لغات البرمجة تحل هذا الإشكال بإنشائها للملف ثم الكتابة له، في بايثون تتم هذه العملية بوظيفة open.

 file = open("newfile.txt","w")

و كما جرت العادة فإن المدخل الثاني ( في المثال السابق كان w) هو الذي يحدد صلاحية الاستخدام الحالي.

لكتابة نص الملف:

 file.write("this is a string")

لكتابة متغير:

name="sulaf"
file.write(name)

لكتابة متغيرات غير نصية، كأن تكون رقم أو مصفوفة ، يجب تحويلها أولا الى متغير نصي عبر استخدام وظيفة str.

num = 7
str_num=str(num)
 file.write(str_num)

٢- لقراءة الملف النصي:

read_file = open("newfile.txt","r")
print ( read_file.read())
 

هذه تدوينة سريعة لكنها حلّت لي فوبيا التعامل مع الملفات النصية والتي سببتها جافا لي.

أتمنى لكم يوماً باثونياً سعيداً

ورشة عمل: ماتلاب و معالجة الصور

matlablogo

أهلاً، مرّ وقت طويل!

أقمت في الثلاثاء الماضي ورشة عمل تابعة للمجموعة البحثية SKERG تناولت بيئة التطوير ماتلاب و معالجة الصور.

خبرتي في الماتلاب حديثة جداً، هو من بيئات التطوير المفضلة لديّ، القوة التي يوفرها في إجراء وظائف معقدة بأسهل طريقة ممكنة و المكتبات الهائلة التي يوفرها تجعل منه بيئة مناسبة للتعلم و الاستكشاف.

اهتمامي بمجال معالجة الصور بدأ حين تعرفت على العلم نفسه في مشروع تخرجي، والذي كان عبارة عن نظام أمني يستخدم صور عروق اليد عبر كاميرا خاصة و طبقنا منظومات معالجة الصور لاستكشاف ما يُميّز عروق اليد عن بعضها البعض. خلال فترة تطوير مشروع  التخرج – والتي كانت قصيرة نسبياً، ٣ أشهر تقريباً- استخدمت الماتلاب و لكن لم أستمتع بالتعلم منذ الصفر و لم يكن هناك الوقت الكافي لقراءة كتب تتناول معالجة الصور بشكل نظري ، وهو ما يزعجني حقيقة، لأن برأيي معرفة تطبيق علم ما بدون دراسته نظرياً يجعلني كآلة حاسبة، و أنا لا أحب الآت الحاسبة.

لذلك بدأت بقراءة بعض الكتب التي تتناول معالجة الصور مصممة خصيصاً لماتلاب و استفدت منها في ورشة العمل التي أقمتها، و من بعض الكتب التي قرأتها:

1- A Guide to MATLAB: For Beginners and Experienced Users.

2- Digital Image Processing Using MATLAB.

3- MATLAB Introduction Applications.

و خطتي الحالية هي قراءة كتب معالجة الصور بشكل عام حتى أستطيع تطبيق هذه المعرفة في بيئة تطوير غير الماتلاب، بايثون مثلاً!

بخصوص ورشة العمل، يمكنكم الاطلاع على عرض الوسائط من هنا.