Thursday, July 5, 2012

التجربة الكندية 3: التطوير للجميع, ممكن؟


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

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

مهندس التطبيقات
تعرفت منذ سنوات قليلة على منصب غريب جدا موجود في اغلب الشركات العاملة في مجال إنتاج التقنيات المتقدمة و تقنيات المعلومات و البرمجيات, الا و هو منصب "مهندس تطبيقي" Application Engineer و هو منصب لم اسمع به عندما كنت اعمل بمصر, و ان كان بدء يظهر مؤخرا على استحياء في بعض الشركات, و لكن لم اعرف أهمية هذا المنصب الا بعد سفري لكندا, اكتشفت أن اغلب الشركات العاملة في المجال قد تمتلك إدارة كاملة من مهندسي التطبيقات, و مهام هذا النوع من المهندسين هو الذهاب في رحلات عمل لزبائن الشركة لتدريبهم على المنتج الذي اشتروه من الشركة, او الذهاب لزبائن محتملين للشركة او الذهاب للجامعات لعقد سلاسل التعريف و التدريب على منتجات الشركة, و مهندس التطبيقات يختلف في مهامه و اسلوبه و نوعية الخبرة المطلوبة من عن مهندس المبيعات Sales Engineer, حيث يكون يجب ان يتمتع بالقدرة على الشرح و توصيل المعلومة, الخبرة العملية و قدرة حل المشكلات للتواصل مع افكار العميل و تطلعاته في إستخدام منتج شركته ضمن مؤسسته.
نعود للموضوع الاساسي, مهندسي التطبيقات هم من رأيتهم يطوفون كندا لتقديم التعريف و التدريب و المشورة لطلبة الجامعات و و الاكاديميين و المهندسين من خلال المؤتمرات العملية القصيرة او المحاضرات و الندوات و غيرها.
لماذا تفعل الشركات كل هذا؟....ما هي مكاسبهم؟.....ما هي الانعكاسات التي تراها على المجال التقني من انتشار هذه الثقافة؟....في رأيي هذه الاسئلة تستطيع ان تحدد جوانب الإستفادة.

اكتب مقالاتي بشكل موجز حتى لا اصيب القارئ بالملل او الضجر, حيث اني لا اتمتع بمهارات كتابية عالية و اي استفاضة مني في الموضوع قد تضعف الاستفادة منه, و اشكرك على القراءة في جميع الاحوال.

كريم الريس
وواترلو, كندا
يوليو 5,
2012

Tuesday, June 12, 2012

التجربة الكندية 2 : المسؤلية الاجتماعية



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

عندما سافرت الى كندا للدراسة في بداية 2010, و كانت اول تجربة سفر لي خارج الحدود, بدأت بالاحتكاك مع المجتمع الكندي و لكن لم تتح لي الفرصة في البداية غير الاحتكاك و التفاعل مع طلبة جامعيين في مثل سني و ظروفي, و لكن بعد مرور بعض الوقت بدأت في التفاعل اكثر مع اشخاص من فئات عمرية و خلفيات عملية و ثقافية مختلفة, و قد لاحظت ان هناك البعض يشارك في بعض الانشطة بالمدرسة الابتدائية القريبة من منزله مثل القراءة للأطفال, و البعض يجمع الكتب و يرسلها "للمساجين", وجدت في الجامعة من يتطوع لمساعدة الطلاب الاجانب لتحسين لغتهم الانجليزية  بل و الاغرب, من وجهة نظري آنذاك, وجدت داخل الجامعة مكتب مختص بإدارة و توجيه الطلاب للأنشطة التطوعية تحت اسم WPIRG و عرفت انه يوجد مكتب مثله في كل الجامعات الكندية, و قابلت طلبة مدارس في المرحلة العمرية 8 ل 12 سنة يبيعون الشيكولاتة على ابواب المتاجر او في الشوارع الرئيسية لجمع تبرعات لمدارسهم, هناك من يجمع المعونات و الملابس القديمة للفقراء و ملاجئ المشردين او إرسالها الى احد الدول المنكوبة, احد المواقف التي أثارت انتباهي بشدة يوم انقطعت الكهرباء عن اغلب المدينة التي اعيش بها لعدة ساعات و كنت عائد في طريقي للمنزل لأرى واحد من سكان المنطقة يلبس "صديري فسفوري" و ينظم المرور في التقاطع القريب من المنزل نظرا لتعطل "إشارة المرور" نتيجة لإنقطاع التيار الكهربي.

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

داخل المؤسسات الكندية  "فكر" او ثقافة تعرف "بالمسؤلية الاجتماعية "Social commitment للمؤسسة, و هو يحدد و يؤسس لدور المؤسسة في التفاعل و خدمة المجتمع سواء على المستوى الوطني او المجتمع الموجود في المحيط الجغرافي للمؤسسة, حيث تنص اغلب قواعد المؤسسات الصناعية و الاقتصادية في كندا على مسؤليتها تجاه المجتمع الكندي و مشاركتها فيه, و ترد الحكومة الكندية على هذا التفاعل الاجتماعي بشكل ايجابي يتمثل في تخفيض ضريبي "مميز" لهذه المؤسسات حسب تفاعلها مع المجتمع و تقديمها مساعدات, بل و تقديم الشكر و التقدير لهذه المؤسسة و تقديم خدمات و تسهيلات عملية و مالية لهذه المؤسسة في حال تعرضها لأزمات.

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

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

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

كتبت هذه المقالة في فبراير 2012 و نشرت في شهر يونيو من نفس العام.  

كريم الريس
وواترلو, كندا
يونيو 12
2012

Sunday, December 4, 2011

التجربة الكندية 1: الجامعة

تعريف موجز بكاتب المقال, مهندس مصري حاصل على درجة الماجستير في الهندسة الكهربية من جامعة وواترلو بكندا, حيث عمل بالجامعة باحث و معيدا بها لمدة عامين, و من واقع ما عاصره يحكي لكم عن تجربته الشخصية و ملاحظاته عن التجربة الكندية في تنمية "حب العلم" و التعلم و تطوير ملكات البحث العلمي و الابتكار للنشأ في مرحلة التعليم ما قبل الجامعي و تحديدا للصغار ما بين عمر 7 و 14 سنة.
عندما بدأت دراساتي العليا في يناير 2010 كنت الاحظ من آن لآخر في محيط الجامعة و تحديدا في المباني او المناطق التي بها المعامل و الورش الهندسية الخاصة بالطلبة, حيث ان هناك معامل اخرى مخصصة لفرق الابحاث فقط و تختلف في تطورها و تخصصها عن المعامل المخصصة للطلاب و الانشطة العلمية, زيارات لاشخاص يبدو من اعمارهم انهم ليس من طلبة الجامعة و معهم عادة شباب اصغر سنا (في عمر طلبة المرحلة الثانوية حسب ما استنتجته), و اتضح لي انهم مجموعة من الاهالي مع ابنائهم الذين في غضون سنة او عدة اشهر سينهون مرحلة التعليم الثانوي و بدأوا مرحلة البحث عن افضل الجامعات للدراسة بها, و ان الجامعة تخصص لهم مجموعة من طلابها لإرشادهم داخلها و شرح إمكانيات الجامعة و نظامها التعليمي.
ثم لاحظت في الصيف و تحديدا اثناء الإجازة الصيفية للمدارس ان الجامعة تفتح ابوابها لطلاب المدارس من مختلف المراحل من خلال برنامج تعاون مع المدارس الموجودة في المدينة التي اقيم بها, وواترلو, لتقديم برنامج ترفيهي و تعليمي لهولاء الطلبة من خلال اشراكهم في العديد من الانشطة و التجارب العلمية المبسطة داخل حرم الجامعة, كذلك الذهاب بهم في جولات لفرق الابحاث المختلفة داخل الجامعة و على كل فريق بحث ان يعرض بشكل مبسط و ممتع نشاط الفريق العلمي و إن امكن بعض التجارب العلمية, و قد اتيحت لي الفرصة بشكل شخصي, كأحد اعضاء فريق "الفضاء و الصواريخ", ان اكون موجودا طوال شهر يوليو و اغسطس لمقابلة طلبة المدارس الصغار و شرح نشاط الفريق لهم و اعداد بعض التجارب العلمية المسلية لهم.
و اليوم, حيث انه أخر يوم لي في الجامعة كطالب, كنت متوجها لاحد المعامل التي اعمل بها, وجدت احد المباني ممتلئ باطفال اعمارهم بين السابعة و العاشرة, لاكتشف ان اليوم هو مسابقة "روبوت" شهيرة لطلاب المرحلة الابتدائية, ثم توقفت بعض الوقت لاشاهد جزء من فعاليات المسابقة, و الحق يقال برغم بساطة المسابقة من الناحية التنظيمية و لكن استمتعت برؤية ابتكارات و ابداع هؤلاء الصغار و كيف ان الجامعة تأخذ هذه المسابقة على محمل الجد كجزء من سياستها و مسؤليتها تجاه المجتمع.
هنا ينتهي الجزء الاول من ملاحظاتي خلال العاميين السابقين للتجربة الكندية, أرجو ان تكون مفيدة الى حد ما.

Saturday, November 12, 2011

Microcontroller المحكام الدقيق


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

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

منذ ظهور الحاسب الآلي في أربعينات القرن العشرين ثم ما تلاه من ظهور الحاسبات الشخصية في الستينات والسبعينات القرن العشرين من شركات مثل Intel, Texas instruments,IBM ظهرت الحاجة على الصعيد المدني والعسكري إلى أجهزة تتميزة بصغر الحجم والوزن قادرة على القيام ببعض (أو كل) العمليات التي تقوم بها الحاسبات الشخصية بنفس الكفاءة والقدرة وذلك توفيرًا للوقت والجهد وفتح الباب إلى أنظمة أكثر رفاهية.

إلى أن أعلنت شركة (Intel) في عام 1976 عن معالج جديد (Intel 8048) ذي معمارية تختلف تمامًا عن المعالجات المتعارف عليها وقتها، حيث من المتعارف عليه أن المعالج يعمل بتصميم تحتاج إلى توصيلات خارجية لذاكرة (ROM) أو(RAM) ومهيئات إدخال وإخراج (I/O interfaces) مما يحتاج إلى دائرة ليست صغيرة الحجم ولا يمكن تداولها بسهولة كانت معمارية هذا المعالج الذي أعلنت عنه إنتل يتكون من وحدة معالجةمركزية (CPU) وذاكرة RAM وذاكرة ROM معًا صغيرة الحجم ومنافذ إدخال/ إخراج (I/O Ports) لكن محدودة كل هذا على شريحة واحدة فقط مما يتيح للمبرمجين إنزال البرنامج الخاص بهم على ذاكرة الـ ROM ويستطيع بعدها هذا المعالج أن يتعامل تلقائيًا مع أوامر إدخال/ إخراج البيانات ومعالجتها دون الحاجة إلى تدخل مستقبلي منه كما أتاحت لهم صغر الحجم وخفة الوزن التي لم تكون متوفرة للمعالجات العامة (General purpose Microprocessor) و بالتالي سهولة الحركة والانتقال لحامل الجهاز، لكن كما ذكرنا أن ذاكرة الـ ROM والـ RAM كانت صغيرة المساحة (وذلك لاستطاعة دمجها على نفس الشريحة) إلى جانب أن وحدة المعالجة المركزية (CPU) تعمل بسرعة أقل من المعالجات ذات الأغراض العامة المعروفة وقتها، مما يجعل هذا المعالج غير قادر على القيام ببعض المهام التي يستطيع المعالج العادي القيام بها، لكي تم التغلب على مشكلة السرعة مستقبلاً بتحديد الأوامر التي يستطيع المعالج القيام بها، فيما عرف فيما بعد بمعمارية (RISC) Reduced instruction set computer حاسب ذات معمارية بأوامر مختزلة ووجدوا أن اسم معالج غير مناسبة لهذا الابتكار الجديد فاصطلحت تسمية المحكام الدقيق (Microcontroller) على هذا النوع من المعالجات.

المحكام الدقيق هو عبارة عن حاسب على مرققة (Computer-on-Chip), و من التسمية نفسها نستطيع أن نستنتج بعض الحقائق عنه, كلمة "محكام" تدل على أنه جهاز يستخدم في التحكم او معالجة شئ او إشارة ما, و كلمة "دقيق" تدل على إنه جهاز صغير الحجم, و يطلق على الأنظمة مثل المحكام الدقيق كلمة "أنظمة مدمجة" (embedded systems) نظرا لانها هي و الدوائر المساعدة تكون مدمجة داخل النظام التي تتحكم به المحكامات.

إذا ألقينا نظرة على الرسم التخطيطي للحاسوب الأولى سنجد أن تصميمها الداخلي يتكون من:

1- وحدة المعالجة المركزية والمكونة من وحدة الحساب والمنطق ALU و وحدة تحكم.

2- وحدة الذاكرة الـROM والـ RAMو القرص الصلب.

3- منافذ إدخال (Input Ports) للوحة المفاتيح والفأرة وأي أجهزة إدخال أخرى مثل الماسحات الضوئية (Scanners).

4- منافذ إخراج للشاشة والطابعة وأي أجهزة إخراج أخرى ودائمًا ما تحتاج المعالجات ذات الأغراض العامة إلى دوائر أخرى للعمل جنبًا إلى جنب وحدة المعالجة المركزية فتحتاج إلى وحدات RAM خارجية دائمًا كما إذا نظرنا إلى اللوحة الأم (Mother Board) سنجد العديد من الدوائر الأخرى الخاصة بكل منفذ مثل شريحة خاصة لمنفذ الـ USB وقد نجد وحدة منفصلة تمامًا خاصة بالشاشة مثل (VGA Card) أو للصوت أو المودم.

على الجانب الأخر إذا نظرنا إلى التصميم الداخلي إلى المحكامات الدقيقة (Microcontrollers) فإنها تتضمن وحدات التخزين الرئيسية (RAM, ROM) ووحدات الإدخال/ الإخراج (I/O modules) جنبًا إلى جنب وحدة المعالجة المركزية (CPU) على نفس الشريحة أو الدائرة المتكاملة نفسها، لكن يجب أن نوضح الفروق التي تجعل المحاكم الدقيق مختلف عن المعالج ذي الأغراض العامة وهي:

1- وحدات الذاكرة سواء الـ ROM أو الــ RAMغالبًا ما تكون محدودة المساحة والقدرة والسرعة مقارنة بوحدات الذاكرة في الحاسبات التي تستخدم المعالجات ذات الأغراض العامة.

2- وحدات إدخال/إخراج الخاصة بالمحكام دائما ما تكون بسيطة للغاية, و وحدات الإدخال و الإخراج في المحكام الدقيق تعمل على مستوى البتات (Bit level interface) و غير قادرة او مجهزة للتعامل مع لوحة مفاتيح او شاشة عرض.

3- وحدات المعالجة المركزية الخاصة بالمحاكم الدقيق غالبًا ما تكون محدودة القدرة والسرعة أي أنها قادرة على القيام ببعض المهام التي يستطيع المعالج ذي الأغراض العامة القيام بها، كما أن سرعة المحكام الدقيق محدودة مقارنة بالمعالجات العادية حيث من المعتاد أن يعمل على مذبذبات 4 أو 5 ميجا هرتز على عكس المعالجات العادية التي تعمل عادة على مذبذبات 2 و 3 جيجا هرتز.

ومحدودية المهام هذه جعلت الأوامر الخاصة ببرمجة المحكام الدقيق محدودة وقليلة العدد، وقد أوحت هذه المحدودية الى إنتاج وحدات معالجة مركزية للمحكامات الدقيقة تتميز بالعمل في بيئة الأوامر المحدودة عرفت بــ RISC (Computer Reduced Instruction Set) تتكون من ثلاث وحدات أساسية:

1- وحدة الحساب والمنطق (Arithmetic Logical Unit ALU)

2- وحدة التحكم في إرسال واستقبال البيانات والخطوط (Buses).

3- مسجلات (Registers).

ودور المسجلات داخل أي وحدة معالجة مركزية هام جدًا والمسجلات هي وحدة الذاكرة صغيرة الحجم (عادة ما تكون قادرة على تخزين عدد محدود من البتات) وسريعة للغاية تستخدم داخل وحدة المعالجة المركزية للاحتفاظ بعنوان معلومات او مكان ما فى الذاكرة مرتبط بالنشاط القائم داخل المعالج وعدد المسجلات داخل المعالجات ذات الاغراض العامة كبير نسبياً وذلك نظراً لعدد العمليات القائمة عليها والسهام الموكلة اليها وقد تسبب زيادة عدد المسجلات داخل وحدة المعالجة المركزية فى بطئ المعالج بعض الشئ خاصة مع اوامر المقاطعة (Interrupt ) والتى يجب فيها على المعالج الانتقال من البرنامج الجارى تنفيذه الى حالة انتظار او توقف لاستقبال بيانات من وحدة الادخال والاخراج (Input/Output ) وعند حدوث حالة المقاطعة للمعالج يتم حفظ البرنامج الجارى تنفيذه والمسجلات داخل مكان ما فى الذاكرة على ان يعود المعالج الى البرنامج الجارى التنفيذ واعادة المسجلات اصبح نقلها من مكان الى اخر فى حالة مقاطعة يحتاج الى وقت اكثر مما قد يجعل المعالج البطئ بعض الشئ.

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

و من أهم مميزات المحكامات الدقيقة هي استهلاكها الضئيل للطاقة, خاصة إن وضعت في المقارنة مع المعالجات ذات المهام العامة, مما يجعل المحكامات الدقيقة قادرة على العمل داخل الأنظمة الإلكترونية ذات الإستخدام الضئيل للطاقة (Low power electronics) او الأنظمة التي تعمل على مصادر الطاقة المتنقلة و المحدودة مثل البطاريات و وحدات الطاقة الشمسية, و تعتبر ميزة إستهلاك الطاقة من أهم الأسباب التي جعلت المحكام الدقيق على صدارة المكونات المستخدمة في التصميم الإلكتروني في العالم, مثال على ذلك تستهلك عائلة PIC 16F8x من إنتاج شركة Microchip تقريبا 800 ميلي وات كحد أقصى للإستهلاك.

و قد نرى تطبيقات المحكام الدقيق منتشرة و متوغلة بشكل قوي في حياتنا, عندما ترى اي جهاز يتمتع بنوع من "الذكاء" او التحكم الذاتي تأكد انه يحتوي على محكام دقيق, و من اشهر تطبيقات المحكام الدقيق الموجودة في حياتنا الهواتف المحمولة و التي تستخدم نوع خاص من المحكامات الدقيقة (DSP) او معالجات الإشارات الرقمية لضمان سرعة الإستجابة و معالجة البيانات, كما توجد المحكامات الدقيقة بشكل قوي في السيارات بدءا من انظمة المراقبة و الإنذار حتى منظومة الفرامل تحتوي على محكام دقيق, كما تحتوي اللوحة الأم (mother board) على عدد من المحكامات الدقيقة مع المعالج ذي المهام العامة للعمل على بعض المهام لضمان التكامل في العمل, و عادة تستخدم مع مهايئات المنافذ (I/O ports interface) لتسهيل عملية إخراج و إدخال البيانات إلى المعالج الرئيسي.

كما تستخدم المحكامات الدقيقة في مجال الصناعة و التحكم الآلي في المصانع التي تعتمد على ماكينات التحكم الرقمية (CNC), كما تعتمد أنظمة الإنسان الآلي بشكل أساسي على المحكامات الدقيقة خصوصا و إن كانت أنظمة متحركة او جوالة و ذلك لضمان التحكم الذاتي و القدرة على إتخاذ القرار بشكل سريع.

المحكام الدقيقPIC 16F84 من إنتاج شركة Microchip من أشهر انواع المحكامات الدقيقة المنتشرة بالاسواق و تآتي شهرتها من عدة اسباب منها بساطة المعمارية و سهولة البرمجة و رخص ثمنها, يحتوي المحكام الدقيق على:

· ذاكرة Flash سعة 1 كيلوبايت, و ذاكرة الflash تتميز قدرة الكتابة و المسح عدة مرات بدون ان تتأثر, كما تتميز بسرعة ولوج (access time) اسرع من الانواع الآخرى من ذاكرات الROM, و تستخدم لنقل البرنامج عليها من ذاكرة الROM اليها عند تشغيل الجهاز.

· ذاكرة قراءة فقط (Read Only Memory ROM) من النوع القابل لإعادة البرمجة (EEPROM) سعة 64 بايت.

· ذاكرة تداول إنتقائي (Random Access Memory RAM ) سعة 68 بايت.

· منفذين إخراج/إدخال (Input / Output ports) لعملية إدخال و إخراج البيانات تحت اسم RA و .RB

· كما تستطيع بعض المنافذ القيام ببعض المهام الآخرى غير الإخراج و الإدخال مثل مهام التعداد و التوقيت (counters / timers).

برمجة الـ Microcontroller :

يمكن برمجة المحكام الدقيق بلغات برمجة عديدة لكن كان دائما لغتين اساسيتين لبرمجة المحكام الدقيق وان اللغات الاخرى او طرق البرمجة الاخرى مشتقة عن هاتين اللغتين:

1- لغة Assembly .

2- لغة C (وفى بعض الاحيان تستخدم الـ C++), وتستخدم هاتين اللغتين لعدة اسباب:

1- لغة الـ Assembly من اقرب اللغات الى لغة الالةmachine language وبرنامجها ذى مساحة

صغيرة للغاية مما يسهل عملية تخزينه وتنفيذه.

2- لغة ( C) توفر صغر حجم البرنامج وسهولة تنفيذه لكن ليس بقدر لغة الـ Assembly حيث انها من اقرب لغات المستوى العالى ( High level language ) فى تركيبتها الى لغة الالة ( Machine Language) بعد لغة الـ Assembly كما تتميز لغة الـ C بسهولة اوامرها مقارنة بلغة الـ Assembly التي تتطلب معرفة جيدة بمعمارية وحدة المعالجة المركزية داخل المحكام الدقيق حيث لا تتطلب البرمجة بلغة C معرفة قوية بمعمارية المحكام الدقيق من الداخل.

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

وظهرت فى الاسواق السنوات الاخيرة محكامات دقيقة يمكن برمجتها باستخدام لغة Basic فيما عرفت بـ ( Basic Stamp Microcontrollers ) وان كانت غير منتشرة فى اسواق الشرق الاوسط بكثرة.

ومن اشهر انواع المحكامات الدقيقة PIC من انتاج شركة Microchip و AVR من انتاج شركة Atmel وتتميز انواع عديدة من المحكامات الدقيقة برخص الثمن وسهولة البرمجة خاصة مع توافق العديد من برامج برمجة المحكامات الدقيقة مجاناً على شبكة الانترنت مثل MPLAB من شركة Microchip .

توجد بعض الانواع الخاصة من المحكامات الدقيقة واشهر هذه الانواع الخاصة هو معالج الاشارات الرقمية ( Digital Signal Processor) ويعرف غالباً بالاختصار DSP)) حيث يتميز عن المعالجات العادية بوجود عدد من وحدات الحساب والمنطق على عكس المعالجات العادية التى تحتوى على وحدة حساب ومنطق ( ALU) واحد فقط، وعدد اكبر من المسجلات (Registers) اكثر مما تحتويه وحدة المعالجة المركزية فى المحكامات الدقيقة ويستخدم هذا النوع من المحكامات الدقيقة فى التطبيقات ذات السرعة العالية والتى تتطلب معالجة بيانات فى زمن حقيقى ( Real Time Processing) مثل تطبيقات الاتصالات فى الهواتف المحمولة لمعالجة بيانات انتقال الصوت والصورة بدون تاخير او اضطراب كما تستخدم فى العديد من التطبيقات الاخرى مثل تطبيقات ( Video and Image Processing ) والرادار كما ذكرنا لسرعة استجابتها ومعالجتها للبيانات وفى كروت الشاشة ( VGA) بالحواسب. ومن اشهر الشركات المنتجة للـ DSP شركة Texas Instruments .

نموذج لبرنامج بلغة C لبرمجة احد منافذ محكام دقيق من نوع PIC:

كتبت هذه المقالة في عام 2007 و لكن لم يشاء الله ان اتنشر الا في عام 2011 بعد ان ذكرني بها مقال مشابه نشره احد الاصدقاء, لعله خير.

كريم الريس
مدينة وواترلو, كندا
نوفمبر 13
2011

Monday, May 3, 2010

Knowledge Acquisition in Brief

I.Introduction

What is the difference between information, knowledge and expertise?
Such a question is very important because the answer will clear the overlap and confusion most of people suffer from.
Knowledge is the result of intelligent processing done on some input “Information”, and the same is the “Expertise” when intelligent processing is applied on some “Knowledge”, thus its clear now the difference between the three main topics that define the main elements of the field of “Knowledge Engineering”.
The story of “Knowledge Engineering” isn’t from short time, it returns to the beginning of the 20th century when the industry became larger and stronger, needed more labor to be involved, more sophisticated process needed for higher production rate, better quality and, for sure, more profit.
The main industry, in my opinion, that motivated the foundation and establishments for field of “Knowledge Engineering” was the automotive industry.
Automotive industry started by the beginning of the 20th century, this industry need a huge a large number of other fields to incorporate together to made this industry succeed like mechanical engineering, chemicals and metallurgy industries, electrical engineering, sales, marketing, finance, human resources and their management, two main industrial organizations were dominating the market at this time: “Ford” in U.S.A. and Canada and “Daimler – Benz” in Europe, also there were other competitors but they weren’t strong like those organizations, both organizations motivated the researchers and funded them to find the best ways to achieve more success for their organizations..
To manage all these fields together and achieve the integration needed many things should be done, one of the main things needed is to know what they want, what to do, how to do it, how to keep it and how achieve more success in it, one word was the answer “Knowledge”, later they discovered that knowledge isn’t enough and a huge field needed to be established to deal with everything about knowledge, which was “Knowledge Engineering”.
Knowledge, by the time, become very important and critical issue, the more sophisticated the organizations become the more complex knowledge become, organization could be a corporation, educational institute, a research center, a medical center or even the government of a country, and become well known one of the measurements for the strength of any organization is the amount of knowledge the organization have.
But how to get knowledge, from whom, where we can find, why we will need and how will be used, these questions drove the researchers to more deep area that the target isn’t about getting knowledge only or storing knowledge without using it, its more about how this knowledge should be used for the best benefit for the organization, a new hierarchy was founded to organized everything about knowledge: how to manage knowledge, how to store this knowledge and how to get the knowledge you need.
When the researchers get to the knowledge, it was fine and very confusing, especially with huge amounts of knowledge, so the need for standard organizing methodology became a demand to ease the access and understanding the knowledge, so “Knowledge Bases” field was established.
Later they discovered with the increase of the amount of knowledge, knowledge became more confusing even to specialists and the matter is beyond the storage of knowledge in an organized way and the need to put this amount of knowledge into use and not wasting it, so new techniques were developed to organize the knowledge, relations between knowledge topics and elements, resources of knowledge, what to do with it, how to do it, who should do, who can access this knowledge, who should be aware with something specific with this amount or a type of knowledge…etc., all previous questions was stated as the goals for new branch of “Knowledge Engineering” called “Knowledge Management”.
On a later stage it was very important to know how to get the knowledge we want to store and manage?, the matter, as mentioned previously, became more complex and sophisticated and information need to pass a processing stage to achieve knowledge needed for the organization, also when we get this knowledge how to make sure its valid or just correct and not corrupted.
The end of the 1970’s and early 1980’s it became a must to separate between “how to manage knowledge” and “how to get knowledge”, so they sat the rules for a new field under the hierarchy of knowledge engineering called “Knowledge Acquisition”.
II. What is “Knowledge Acquisition”?
Knowledge acquisition, or shortly we will call it KA, is the process of eliciting knowledge from either people or from a process involves and/or results acceptable form of knowledge.
But why we will extract this knowledge from someone or some process?, there should be a result why we want to elicit knowledge or an end product, our end product is to create or provide a contribution for a knowledge base.
Knowledge Acquisition was first established to extract knowledge from expert’s minds, in case they are getting retired or moving to somewhere else, especially when the number of experts in the field is few and their knowledge should be transferred to other people in the organization.
KA processes, in the early days, was done in the organization using interviewing technique to elicit knowledge from experts, but this method wasn’t sufficient enough to elicit all the knowledge needed, also it didn’t show good performance toward validating the elicited knowledge, so the need for more efficient methods and techniques to be introduced to this field, also knowledge need to be categorized and sorted and map the best technique for each type or category of knowledge, so they got to this classification of knowledge:

1.From the point of view of the general frame this knowledge represents:
a.Procedural knowledge: it’s about process, tasks and activities.
b.Conceptual knowledge: it’s about the way things relate to each other and about their properties.

2.From the point of view of the level the knowledge represents:
a.Basic, explicit knowledge.
b.Deep, implicit knowledge.

Also in the early days of KA, KA processes were fully manual processes done by the employees of the organization, a general framework was settled later in the form of steps and procedures to perform KA operation, also they did set aspects for these step procedures to follow.
The KA process consists of 47 procedure step, divided upon four phases, before going through the KA operation phases and steps, the main aspects for procedure step will be explained first, however, not all the aspects mentioned here, just the main aspects because the other aspects are more related to management process or less technical aspects.

2.1.Main aspects for Knowledge Acquisition procedure step
2.1.1.Knowledge capturing

In order to have knowledge acquisition process we should capture this knowledge from either an expert or from a running process, this aspect aim for two main goals:
a.Elicit knowledge.
b.Validate knowledge.
In the following sub-sections knowledge capture main techniques.

2.1.1.1.Interviewing Technique:

This technique is a manual process for questioning the expert; it’s very useful in knowledge elicitation but not efficient in knowledge validation, there are three types of interviewing used:
a.Unstructured interview: little planned and free form chat with the expert.
b.Semi-structured interview: pre-defined questions to the expert, in addition to supplementary questions asked at the interview.
c.Structured interview: pre-defined questions to the expert without any supplementary questions.

2.1.1.2.Modeling Technique:

Using knowledge models to show them to the experts and let them comment, correct or modify any of the fields of the model, this technique is useful in knowledge validation.

2.1.1.3. Specialized Techniques:

Techniques developed by psychologists to elicit knowledge from experts by letting them perform tasks that can reveal knowledge difficult to articulate.
Main goals from knowledge capture techniques are:
a.Focus the expert on the required knowledge only.
b.Help expert to recall knowledge.
c.Help expert to explain knowledge in a clear way.

2.1.2. Knowledge Analysis

Knowledge analysis is a process to perform identification of the elements of knowledge will be entered to the K-base to form its structured and main components; four elements are required to be identified for successful knowledge analysis process:
a.Concepts: things that constitutes a domain, they form main structure of K-base.
b.Values.
c.Attributes.
d.Relations.
“Attribute” and “Values” describe the properties of a concept while the “Relation” element, from its name, describes the relations between concepts and properties of this relation.

2.1.3. Knowledge Modeling

It is the process of creation and use of knowledge models (K-Models) for viewing content of the knowledge base in a clear simple way.
Each K-Model should provide different perspective or different view point to see all different aspects of the knowledge base, main types of K-Model:
a.Tree Model.
b.Matrix Model.
c.Maps.
d.Timelines.
e.Frames.
f.Knowledge pages.

III.Knowledge Acquisition process phases and steps

In this section we will show in brief the four phases of a KA project process, also will go through the steps.
As mentioned before, KA project process consists of 47 procedure step divided between four phases, they are:
I.Phase 1: Start the project, define project scope and plan for the project.
II.Phase 2: Initial capture and modeling for knowledge.
III.Phase 3: a detailed capture and modeling for knowledge elicited.
IV.Phase 4: share and store knowledge.

3.1.Phase 1: Start, Scope and plan for the project

This phase consists of steps 1 to 13, in steps 1 to 4, KA project team will identify the project idea and how this project will benefit the organization, then start to gather opinions from relevant people, create project proposal and get the agree of the key people on the project.
In steps 5 to 8, the project team will create a K-Base to store the future knowledge acquired, in the meantime start to analyze the main topic and decompose it to smaller different topics and rank these topics against key criteria.
In steps 9 to 13, the project team will identify sources of knowledge needed, identify more accurately what sort of project they are doing and define procedures they will follow for the project, using all data from previous steps to create project schedule and build a project plan.

3.2. Phase 2: Initial Capture and Modeling

This phase consists of steps 14 to 29, in steps 14 to 17 the project team will start learning domain basics from documents or free discussion with experts, also they will start preparations for some semi-structured interviews and conducting them, for sure record these interviews and document all data gathered from them.
In steps 18 to 21, analysis for captured knowledge will take place to identify main concepts and create concept tree for the project, validation for this concept tree takes place after with experts and update the project with recent information added after all previous steps.
In steps 22 to 29, project team should create a K-page describing concepts and glossary for all domain terms and expressions then build a meta-model for defining attributes, values for each concept and the relations with other concepts and validate this model with experts.

3.3. Phase 3: Detailed Capture and Modeling

This phase consists of steps 30 to 39, in steps 30 and 31 more deep data capturing process will be conducted for detailed knowledge and creates a finalized main k-model.
In steps 32 to 35 a prototype of the end product of the project and propose it to a sample of end-users and get their feedback for end-product assessment and capturing more deep knowledge by analyzing feedback, in the meantime a completion plan is produced to define actions required to complete the project.
In steps 36 to 39, a cross validation takes place with secondary expert to check models developed before and gather the differences between experts opinions and try to resolve it, finally record all validated knowledge and finalize the K-models and the K-base of the project.

3.4.Phase 4: Share and Store Knowledge

This phase consists of steps 40 to 47, in steps 40 to 43 a format for the end-user is created, using this format and the K-base a semi-final end product is created and presented to end users to conduct a full assessment by them and identify modifications and improvements, then create the final product.
In steps 44 to 47 a final product is released to the market and publicized, after this product is used for a time, its impact on the organization is assessed and documented.
A complete project review takes place to learn lessons and make suggestions for further improvements in methodologies and support the system.


Karim El-Rayes
May 3, 2010
Canada