مقدمة عن علوم الحاسب - Computer Science
Ahmed AbuelfatehAhmed Abuelfateh

مقدمة عن علوم الحاسب - Computer Science

تعريف تخصص علوم الحاسب، علوم الكمبيوتر، علم الحاسوب، Computer Science، مواد علوم الحاسب، السمات الشخصية أو صفات خريج علوم الحاسب، الرياضيات المستخدمة في علوم الحاسب

تعريف علوم الحاسب

علوم الحاسب أو علوم الكمبيوتر بالإنجليزية Computer Science، وهو التخصص الذي يتم من خلاله التفاعل أو التجانس بين النظريات Theories، البرمجيات Software، العتاد Hardware والتطبيقات Applications، بحيث يتمكن دارس هذا العلم من دمج وتطبيق ما تعلمه على كل فروع المعرفة مثل الطب والإدارة والهندسة وغيرها من العلوم.

ما هي الخصائص التي تميز خريج علوم الحاسب؟

طبقا للطبعة الأخيرة من إرشادات المناهج الدراسية لدراسة علوم الحاسب المعدة من قبل جمعية الآلات البرمجية ACM و مجتمع الكمبيوتر IEEE، فقد توصلوا إلى مجموعة من الخصائص أو المهارات التي يجب أن يتميز بها خريج علوم الحاسب، تعد أهم هذه الخصائص كالتالي

الفهم الكامل لمناهج علوم الحاسوب الأساسية كما سنتاولها لاحقا في هذا المقال.

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

التفكير في أي نظام على عدة مستويات من التفاصيل، بحيث يمكن تجاوز تفاصيل تنفيذ بعض الأجزاء الخاصة بالنظام، وتعرف هذه الخاصية بالتجريد أو Abstraction.

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

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

الإلتزام بالمعايير والقيم المتبعة في تصميم وإنشاء الأنظمة المختلفة، وفهم وتقدير حدود الإمكانيات الخاصة بكل شخص وبالأدوات التي يتم إستخدامها.

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

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

مواد علوم الحاسب الأساسية

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

الهياكل أو الرياضيات المتقطعة

يعرف هذا التصنيف بـ Discrete Mathematics أو Discrete Structures، ويعد دراسة هذا العلم هو حجر الأساس للعديد من علوم الحاسب، هذا الفرع من المعرفة يقوم بتعليم النظريات الأساسية التي يتم البناء عليها في باقي المواد، والتالي أهم الموضوعات التي يتم دراستها في هذه المادة

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

يتم أيضا دراسة النظريات الخاصة بـ الـ Graph و الـ Tree، حيث يتم دراسة التطبيق العملي لهذه النظريات عند دراسة الخوارزميات وهياكل البيانات.

في هذا العلم أيضا يتم دراسة انظريات الخاصة بالمجموعات Set Theory، العلاقات Relations، والدوال أو الوظائف Functions، ويتم دراسة التطبيق العملي لهذه النظريات عند دراسة قواعد البيانات ولغات البرمجة المختلفة.

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

الخوارزميات والتعقيد

يعرف هذا الفرع بـ Algorithms and Complexity، وتعد دراسة الخوارزميات من الموضوعات الأساسية في دراسة علوم الحاسب وهندسة البرمجيات، ينقسم علم الخوارزميات إلى قسمين رئيسيين، قسم يتم من خلاله دراسة تحليل وقياس مدى كفاءة نظام ما وعادة ما يعرف هذا النوع بـ Algorithm Analysis وقسم آخر يتم فيه دراسة تصميم الخوارزميات أو كما يعرف بـ Algorithm Design and Implementation، وعادة ما يتم دراسة مبادئ التحليل والتصميم في مادة واحدة تعرف بمادة الخوارزميات.

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

في هذا التصنيف أيضا يمكن دراسة مادة متخصصة في ما يعرف بالأوتوماتا Automata، وهو نوع من العلوم الأساسية والذي يستخدم في إنشاء المترجمات Compilers، وهذا العلم أيضا يتم فيه دراسة النظريات و الخوارزميات المستخدمة لتطبيق هذه النظريات.

جزء من مادة إنشاء المترجمات Compilers والتي تستخدم في ترجمة لغات البرمجة المختلفة إلى لغة الآلة يعتمد بشكل أساسي على دراسة وفهم الخوارزميات، حيث يتم دراسة مجموعة من الخوارزميات المستخدمة في إنشاء هذا النوع من البرامج.

معمارية وتنظيم الحاسوب

يعرف هذا التصنيف بـ Computer Architecture and Organization، عند دراسة الموضوعات المتعلقة بهذا القسم فإنها تساعد في تطوير فهم أعمق لمكونات أجهزة الحاسوب وكيفية عملها، بما ينعكس عليك بشكل كبير في تطوير قراراتك في حل المشكلات بإستخدام جهاز الحاسوب.

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

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

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

يشمل هذا القسم أيضا دراسة لغة التجميع Assembly Language، وكيف يتم ترجمتها إلى لغة الآلة عن طريق دراسة مقدمة لهذه اللغة على آلة إفتراضية Hypothesis Machine، أو دراسة اللغة الخاصة بوحدة المعالجة intel x86.

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

نظم التشغيل

يعرف هذا الفرع بـ Operating Systems، وهو الفرع الذي يمثل مستوى وسيط بين العتاد Hardware والبرمجيات Software، حيث يقوم نظام التشغيل بإدارة الموارد المادية لجهاز الحاسوب أو كما تعرف بالعتاد وتوفير واجهة لبرمجة التطبيقات أو كما تعرف بـ API لكي تتمكن البرامج من إستخدام العتاد عن طريقها، ويشمل هذا الفرع العديد من الموضوعات الهامة مثل التزامن Concurrency، جدولة الأوامر Scheduling and Dispatching، إدارة الذاكرة Memory Management، إدارة مكونات العتاد Device Management، أنظمة الملفات File System، الأمن والحماية Security and Protection، والعديد من الموضوعات الأخرى، وتعد هذه الموضوعات من أهم الموضوعات في دراسة علوم الحاسب حيث يتم تطبيقها بشكل أو بآخر على باقي الفروع الخاصة بعلوم الحاسب.

الشبكات والإتصالات

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

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

إدارة البيانات

يعرف هذا التصنيف بـ Information Management، عند دراسة تخصص علوم الحاسب فإنه يتم دراسة الأساسيات الخاصة بإدارة البيانات وذلك لأن هذا الفرع من علوم الحاسب متوفر بشكل مستقل للدراسة ويعرف بـ علوم البيانات أو Data Science، وبالتالي يتم دراسة الأساسيات فقط.

تشمل الدراسة في هذا التصنيف دراسة قواعد البيانات عن طريق دراسة لغة الإستعلام، والنظريات التي بنيت عليها هذه اللغة، هناك بعض الجامعات تقوم بتدريس هذه المادة عن طريق دراسة إنشاء نظام إدارة البيانات أو ما يعرف بـ Database Management System أو DBMS.

بعض الجامعات تقوم بتدريس بعض المناهج الخاصة بعلم الإحصاء وهو العلم الرئيسي المهتم بالتعامل مع البيانات، وأيضا بعض الجامعات تقوم بتدريس مبادئ التنقيب عن البيانات أو ما يعرف بـ Data Mining.

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

أمن المعلومات

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

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

أساسيات تطوير البرمجيات

يعرف هذا التصنيف بـ Software Development Fundamental، ويهتم هذا القسم بدراسة أكثر من لغة برمجة بالإضافة إلى معرفة الفرق بين أنواع لغات البرمجة وكيفية إختيار لغة البرمجة المناسبة لعمل مشروع ما.

في هذا القسم أيضا يتم التعرف على أنماط التصميم المختلفة أو كما تعرف بـ Software Design Patterns، وتتعرف أيضا على المشاكل التي يمكن حلها عن طريق كل نمط من هذه الأنماط.

يعد هذا القسم هو المدخل لعلم هندسة البرمجيات أو كما تعرف بـ Software Engineering، وهناك بعض الجامعات التي تتيح دراسة هذا القسم منفصلا وبالتالي يتم التعمق في دراسة هذه المواضيع.

الحوسبة المتوازية والموزعة

يعرف هذا القسم بـ Parallel and Distributed Computing، عادة ما يتم دراسة مقدمة عن هذا النوع من الحوسبة كموضوعات مدمجة في مادة نظم التشغيل، وفي مواد عمارة الحاسب، ولكن هناك بعض الجامعات التي تتيح دراسة هذا التخصص عن طريق إتاحة مواد مستقلة بهذا الفرع من المعرفة.

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

وأيضا يتمكن دارس هذا الفرع من المعرفة من التعامل مع الأنظمة الكبرى والأنظمة السحابية والتي تحتوي على بيانات عملاقة كما في الشركات الكبرى مثل Google و Amazon وغيرها من الشركات الكبرى.

ملخص

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

عادة ما تختار كل جامعة المسار المناسب لدراسة علوم الحاسب، فهناك جامعات تبدأ من الأعلى إلى الأسفل أو كما يعرف بـ Top-Down، حيث يتم دراسة المستويات أو الطبقات العليا للحوسبة بداية من إنشاء برامج بلغات برمجة عالية المستوى مثل بايثون أو غيرها من اللغات ثم تبدأ بالهبوط في المستويات إلى أن تصل إلى طبقة العتاد.

وهناك جامعات أخرى تبدأ من الأسفل إلى الأعلى أو كما يعرف بـ Bottom-Up، حيث يتم التعرف على العتاد أولا ثم نبدأ في الإرتفاع أو التجريد في الطبقات إلى أن تصل إلى لغات البرمجة عالية المستوى.

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

الرياضيات و علوم الحاسب

يعد الحديث عن الرياضيات أثناء دراسة علوم الحاسب من أكثر المواضيع جدلا حتى الآن، فهناك من يرى أن دراسة الرياضيات في غاية الأهمية وهناك من يرى أنه لا يوجد أي فائدة من دراسة الرياضيات وهنا يجب التفريق بين دراسة علوم الحاسب وتعلم إحدى لغات البرمجة، إن كنت ترغب في تعلم واحدة من لغات البرمجة فلك مطلق الحرية في دراسة أو عدم دراسة الرياضيات، ولكن إن كنت تدرس علوم الحاسب فسوف أقوم بتوضيح أهمية علم الرياضيات لدراسة علوم الكمبيوتر.

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

عند التحدث عن الرياضيات يجب التفرقة بين الرياضيات العامة أو الأساسية مثل الرياضيات التي يتم دراستها في المرحلة قبل الجامعية (الثانوية أو المستوى المتوسط في بعض البلدان) وهي القدرة على إجراء العمليات الحسابية الأساسية بالإضافة إلى أساسيات التفاضل والتكامل، وبين الرياضيات ذات الصلة بموضوعات متخصصة في علوم الحاسب مثل الرياضيات المتقطعة أو الجبر الخطي Linear Algebra، أو الجبر المنطقي Boolean Algebra وغيرها من الموضوعات الخاصة.

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

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

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

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

7646

Discussion

  • Nahla
    Nahla
    ابني على وشك التخرج من المدرسة الثانوية، ويريد دراسة في جامعة خارجية للحصول على <a href="https://www.uowdubai.ac.ae/degrees/bachelors/computer-science/bachelor-computer-science-big-data">بكالوريوس </a> بكالوريوس علوم الحاسب في البيانات الضخمة، فهل يمكن أن تفيدوني بمعلومات حول هذه الدراسة أو ترشيح الجامعات المناسبة لذلك.
    • Reply to Nahla
    • Captcha
      Captcha
    • Notify me of follow up comments via email.

  • Ahmd Alahmd
    Ahmd Alahmd
    شكرآ
    • Reply to Ahmd Alahmd
    • Captcha
      Captcha
    • Notify me of follow up comments via email.

  • Add new Comment
  • Captcha
    Captcha
  • Notify me of follow up comments via email.