لعله من المحير للبعض معرفة الفروق بين التخصصات الأساسية الثلاث في مجال الحاسبات: هندسة الحاسبات و علوم الحاسبات و هندسة البرمجيات.
هذا المقال البسيط يسرد تعريفاً لكل تخصص مع إيضاح الفرق بينه و بين الأخريين.
أولا: هندسة الحاسبات (Computer Engineering)
تتعامل مع تصميم و تطوير و تشغيل أنظمة التشغيل للأجهزة الرقمية عامة. و الأجهزة الرقمية هي أي جهاز مكون معالج (processor) و ذاكرة (memory) و دائرة كهربائية (electric circuit) ، مثل الكمبيوتر المنزلي أو الجوال ، أو حتى أجهزة ثانوية مثل كرت الشاشة و الشبكة المرتبط بجهاز الكمبيوتر المنزلي.
الفرق الأساسي بين هندسة الحاسبات وبين هندسة البرمجيات و علوم الحاسبات أنها تركز على حل المشكلات ببرمجة الهاردوير (digital hardware).
ثانيا: علوم الحاسبات (Computer Science)
تركز على فهم و تصميم و تطوير البرامج. كما تهتم بالبيانات (data) و بنيتها (data structures)وطرق تخزينها و نقلها و على طرق الحساب (algorithms) و طرق البرمجة و مفاهيم الشبكات و الاتصال و نقل المعلومات.
مجال علوم الحاسبات غير متخصص و مركّز كهندسة البرمجيات أو هندسة الحاسبات فهي مجموعة من العلوم المتخصصة بالحاسبة في مجالاتٍ عدة. لذلك هي تتيح مجال أوسع للطالب لبناء تطبيقات في مجالات مختلفة.
ثالثا: هندسة البرمجيات (Software Engineering)
تتعامل مع بناء و صيانة البرامج و أنظمتها. والبرامج هنا هي البرامج الكبيرة أو الضخمة كبرامج إدارة الشركات و المصانع أو أنظمة التشغيل. هندسة البرمجيات أكثر طبيقية و تخصصاً من علوم الحاسب فهي “هندسة” أي تتضمن جمع المعلومات و تحليلها و إيجاد الحلول و تصميمها بطرق علمية ثم البرمجة و إنتاج البرنامج ثم صيانته و تطويره أكثر و أكثر. مع الأخذ في الاعتبار في جميع المراحل السابقة بالتكلفة الإجمالية للبرنامج و ما يلحقه من تطويرات و تغييرات. كما تركز في أمن البرنامج (security) و قوة الاعتماد عليه (reliability). فهي تركز على عميلة بناء برامج ذات جودة عالية جدا (high quality programs) ، من بداية الفكرة إلى المنتج نهائي.
بالإضافة إلى الفرق السابق بين علوم الحاسبات و هندسة البرمجيات:
قيل أن”العالِم يبني لكي يتعلم، أما المهندس فإنه يتعلم لكي يبني”.
أرجو أنني وفقت في إيضاح الفرق بين التخصصات الثلاث. و الخيار في الأخير هو لك.
مع تحيات اخوكم بلاك جاك
مراسلكم من قسم هندسة البرمجيات