علم الحاسوب
علم الحاسوب علوم الكمبيوتر أو الحاسب أو الحوسبة هي منهج علمي وعملي للحوسبة وتطبيقاتها وهي دراسة منهجية لدراسة الجدوى « Feasibility » والبنية « Structure » والمصطلحات والعبارات « Expression » والمكننة « Mechanization » والإجراءات الرياضية ( أو الخوارزميات ) « Methodical Procedures »، كل السابق يظهر في التخزين « Storage » والمعالجة « Processing » والإتصالات « Communication » والتقديمات « Representation » والوصول إلى المعلومات ومعالجة البيانات والنظريات والتطبيقات التي تشكل الأساس أتمتة لنقل المعلومات وتشغيلها وتحويلها، وذلك بدراسة برمجيات الحاسوب وعتاد الحاسوب بشكل علمي مجرد، يتخصص عالم الكمبيوتر في نظرية الحوسبة وتصميم النظم الحاسوبية.
لعلوم الحاسب مجالات متنوعة كلها تصنف تحت العنوان العريض "علوم الحاسوب". يؤكد البعض على الحوسبة وبعض تطبيقاتها مثل رسوميات الحاسوب في حين أن فروعًا أخرى تدرس خواص المشاكل الحسابية ومجال مثل نظرية التعقيد الحسابي. وتبقى فروع أخرى تركز على التحديات التي تطرحها تطبيقات الحوسبة. ومجال مثل نظرية لغة البرمجة تدرس الطرق والوسائل لوصف عملية حوسبة، في حين تقوم برمجة الحاسوب بتطبيق لغات برمجة معينة لاستخراج جواب أو حل لمشكلة حوسبة معينة ومجالات أخرى مثل الأنظمة المعقدة ومثل التفاعل الإنساني الحاسوبي.
ويتم تعريف علم الحاسوب بشكل دقيق على أنه علم يختص بالقدرة على تطبيق المعرفة الناتجة من الحاسوب والرياضيات على جميع فروع المعرفة، والقدرة على تحليل أي مشكلة وتحديد المتطلبات لها باستخدام الحاسوب لوضع الحل المناسب، والقدرة على تصميم وتنفيذ وتقييم النظام القائم على الحاسوب و العمليات و البرنامج لتلبية الاحتياجات المطلوبة، ويسهل القدرة على العمل بفعالية في فرق ومجموعات لتحقيق هدف مشترك.
في بعض أجزاء من الدول العربية يطلق على مصطلح علم الحاسب الآلي علم المعلومات اختصارًا وليس بقصد خلطه مع العلوم الأخرى وخاصة التخصصات المتعلقة بتكنولوجيا المعلومات المهتمة بالتطبيق غير المبني على أسس علمية، كما يُطلق عليه في الجزائر اسم "الإعلام الآلي".
يبحث علم الحاسوب في استخدام الحوسبة بجميع أشكالها لحل المشكلات من منظور علمي رياضي. وغالبًا ما يشمل ذلك تصميم وبرمجة البرمجيات لكي تستعمل كأداة لحل هذه المشاكل.
علم الحاسوب ليس معنيًا بتعلم طريقة استخدام البرمجيات بشكل عام وبحد ذاتها. من الصحيح القول أن هناك بعض الوظائف التي تعتمد بشكل أساسي على بعض البرمجيات كبرمجيات التصميم لمصممين الجرافيك أو محررات النصوص والجداول لمدخلي البيانات، لكن علم الحاسوب ليس معنيًا بدراسة طريقة التعامل مع هذه البرمجيات وغيرها بشكل عام وليس معنيًا كذلك بتصميم صفحات الويب أو تجهيزها.
عند الحديث عن البرمجيات فإن علم الحاسوب يُعنى “بطريقة” بناء البرمجيات بناء على أسس علمية ورياضة وبدراسة الخوارزميات الأنسب استخدامًا في تلك البرمجيات.
أما تكنولوجيا المعلومات فهو مجال آخر يُعنى بمسائل أخرى مثل طُرُق استخدام البرمجيات والتعامل معها وطرق استعمال المعلومات أو حتى طريقة استخدام ما هو جاهز في أغلب الأحيان لإنجاز عمل ما، وغالبًا ما يُستخدم مصطلح تكنولوجيا المعلومات « Information Technology أو IT » بشكل واسع بين العامة وفي سوق العمل.
أنظر أيضا تاريخ الحوسبة وتاريخ المعلومات
يعود تاريخ أقرب تعريف لعلوم الحاسوب إلى ما قبل أول آلة حاسوب رقمي « Digital Computer »، لحساب المهام العددية الثابتة مثل المعداد الذي كان موجود منذ العصور القديمة للمساعدة في العمليات الحسابية مثل الضرب والقسمة وبعد ذلك وجدت الخوارزميات لأداء العمليات الحسابية في العصور القديمة « Antiquity » وحتى قبل تطوير المعدات الحاسوبية المعقدة، في لغة سنسكريتية القديمة مخطوطة تسمى « Shulba Sutras » أو قواعد الوتر « Rules of the Chord » وهو كتاب في الخوارزميات مكتوب في سنة ثمان مئة قبل الميلاد « 800BC » لبناء الأجسام الهندسية مثل المذابح بإستخدام الأوتاد والأوتار وتعتبر بدايات (أسلاف) مجال هندسة الرياضية الحسابية « Computational Geometry » الحديثة.
بليز باسكال صمم وشيد أول آلة حاسبة ميكانيكية العمل، والتي يطلق عليها آلة باسكال الحاسبة « Pascal's Calculator » سنة (1642).
ثم كشف غوتفريد لايبنتس « Gottfried Wilhelm Leibniz » آلة حاسبة ميكانيكية الرقمية تسمى حاسوب متدرج (الحاسوب التدريجي) « Stepped Reckoner » في سنة (1673)، ويمكن أن يقال انه يعتبر أول عالم الكمبيوتر واضع النظريات للمعلومات، ومن بين أسباب أخرى لهذا الترشيح، توثيقه لنظم الأرقام الثنائية.
في عام 1820، أطلق توماس كولمار دي « Charles Xavier Thomas أو Thomas de Colmar » صناعة آلة حاسبة ميكانيكية، عندما صدر له جهاز مبسط يسمى أريثموميتر « Arithmometer » وكان أول آلة حاسبة قوية بما فيه الكفاية وموثوق بها بما يكفي للإستخدام اليومي في بيئة مكتبية .
تشارلز بابيج « Charles Babbage » بدأ تصميم أول آلة حاسبة ميكانيكية أوتوماتيكية تسمى محرك الفرق « Difference Engine » في عام 1822، والذي أعطى في نهاية المطاف له فكرة عمل أول آلة حاسبة ميكانيكية للبرمجة وتسمى « Analytical Engine » المحرك التحليلي . بدأ تطوير هذا الجهاز في عام 1834 وفي أقل من عامين كان قد رسم العديد من السمات البارزة للحاسوب « computer » الحديث.، كان إعتماد نظام البطاقة المثقبة « Punched Card System » المشتقة من منسج جاكارد « Jacquard Loom » هي خطوة حاسمة، مما يجعلها ذات برمجة بلا حدود.
في عام 1843، أثناء ترجمة مقال فرنسية عن المحرك التحليلي، كتبت آدا لوفلايس «Ada Lovelace » في واحدة من العديد من الملاحظات انها شملت، خوارزمية لحساب أعداد برنولي « Bernoulli Number » ،والذي يعتبر أول برنامج كمبيوتر.
في حوالي سنة 1885، أخترع هيرمان هولليريث « Herman Hollerith » آلة التبويب « Tabulating Machine » للإستخدام في تلخيص المعلومات وكاتنت تستخدم بطاقة مثقبة « Punched Card » لمعالجة المعلومات الإحصائية في نهاية المطاف أصبحت هذه الشركة جزء من آي بي إم .
في عام 1937، وبعد مائة سنة من حلم باباج « Babbage » المستحيلا أقنع هوارد أيكن « Howard H. Aiken » شركة آي بي إم بتطوير آلته الحاسبة العملاقة للبرمجة، في ذلك الوقت كانت آي بي إم تصنع كل أنواع معدات البطاقات المثقبة وكانت أيضا تقوم بأعمال الآلات الحاسبة. ، وتم أطلاق اسم هارفارد مارك واحد « ASCC/Harvard Mark I » عليها وكانت بناء على المحرك التحليلي الخاص بتشارلز بابيج « Charles Babbage »، وكانت تستخدم الكروت المثقوبة ووحدة الحوسبة المركزية، وعندما تمت الآلة النهائية أشاد البعض بأن " حلم باباج تحقق ".
خلال الاربعينيات من القرن الماضي ومع تطور آلات حاسوب أقوى، وبدى واضحا أن الحاسوب يمكن أن يستخدم في أكثر من الحسابات الرياضية فقط، مجال علوم الحاسب توسع ليشمل الحوسبة « Computation » بشكل عام، تم وضع أنشاء علوم الحاسب كعلم أكاديمي مستقل في الخمسينيات وأوائل الستينيات من القرن الماضي « 1950s - 1960s »
فقبل العشرينات من القرن العشرين، كان مصطلح حاسوب حاسوب يشير إلى أي أداة بشرية تقوم بعملية الحسابات. ما هي القضايا أو الأشياء التي يمكن لآلة أن تحسبها باتباع قائمة من التعليمات مع ورقة وقلم، دون تحديد للزمن اللازم ودون أي مهارات أو بصيرة (ذكاء)؟ 
وكان أحد دوافع هذه الدراسات هو تطوير آلات حاسبة حاسوب يمكنها إتمام الأعمال الروتينية المُعرّضة للخطأ البشري عند إجراء حسابات بشرية.
خلال الأربعينات ومع تطوير آلات حاسبة أكثر قوة وقدرة حسابية تتطور مصطلح "حاسوب" ليُشير إلى الآلات بدلا من الأشخاص الذين يقومون بالحسابات. وأصبح من الواضح أن الحواسيب يمكنها أن تقوم بأكثر من مجرد عمليات حسابية وبالتالي تم الانتقال إلى دراسة الحوسبة بشكل عام. بدأت المعلوماتية وعلوم الحاسب تأخذ استقلالها كفرع أكاديمي مستقل في الستينييات، مع إيجاد أوائل أقسام علوم الحاسب في الجامعات وبدأت الجامعات تمنح إجازات في هذه العلوم.
يمكن تقسيم علم الحاسوب إلى ثلاثة أقسام:
يُمكن تقسيم علم الحاسوب أيضا على النحو التالي :
حديثا في معظم الجامعات تقسم هندسة الحاسوب إلى قسمين أساسيين بعدما كانت تتبع الهندسة الكهربائية والإلكترونية
هندسة البرمجيات هي دراسة تصميم وتنفيذ وتعديل البرمجيات بما يضمن توفر هذه البرمجيات بجودة عالية وتكلفة معقولة متاحة للجميع وقابلة للتطوير فيما بعد وسريعة للبناء. وهندسة البرمجيات تقوم على أسس ونظريات من الهندسة وعلوم الحاسب كمبدأ ال Functional Structure من الهندسة والذي يعتمد على مبدأ تصميم أجزاء صغيرة تتجانس في العمل مع بعضها لتشكل عمل الكل.
ومن علوم الحاسب يأخذ مباديء كثيرة لعل من أبرزها ال Object Oriented Design والذي يتعامل مع كل الأجزاء في البرمجيات ككائنات تتفاعل مع بعضها لتشكل عمل النظام بالكامل. وهي تختلف عن علوم الحاسب حيث أنها تعد فرع مهم من فروع علوم الحاسب.
هندسة عتاد الحاسوب تبحث مبادئ صناعة الحواسيب من الناحية الإلكترونية والفيزيائية وبناء شبكات الحاسوب ووسائط تخزين البيانات إلكترونياً ومعالجتها ونقلها عبر الشبكات المختلفة.
خوارزميات لحماية البينات الخصوصية بما فيها التعمية 
أسس بنى تخزين المعلومات وخوارزميات البحث.
تحليل شكلي لأنماط المعطيات، واستخدام هذه الأنماط لفهم خصائص البرمجيات، خاصة أمن البرامج وثباتها.
تعتمد هندسة الحاسوب بشكل مباشر على لغات البرمجة. يوجد العديد من لغات البرمجة. أشهر هذه اللغات هي جافا. هذه اللغة تعتمد على ما يسمى بالمواضيع أو (Objects) و الطرق (Methods) حيث يتم تحفيز الطرق من خلال المواضيع. يتم تقسيم البرنامج إلى عدة صفوف (Classes) التي تحوي على المواضيع و الطرق . بواسطة هذه اللغات يتم كتابة البرامج و التطبيقات. يوجد العديد من لغات البرمجة مثل جافا سكريبت javascript و c++و C. هذه اللغات لا يدرسها طلاب هندسة الحواسيب فحسب، طلاب هندسة الاتصالات و غيرهم الكثير يدرسها أيضا.
يعتبر الذكاء الاصطناعي أحد المجالات الفرعية في علم الحاسوب. هدف هذا المجال يهدف إلى اختراع آلات قادرة على أخذ قرارات و حل المشكلات من تلقاء نفسها دون الاعتماد على البشر بشكل مباشر . سؤال آلان تورينغ " هل يستطيع الرجال الآليين التفكير ؟ " هو الذي ولد فكرة الذكاء الاصطناعي. تم اعتماد مصطلح الذكاء الإصطناعي لأول مرة عام 1956 في مؤتمر دارتماوث. الذكاء الاصطناعي يشمل عدة مجالات من الهندسة الكهربائية، الفيزياء العصبية، مختلف لغات البرمجة، و الرياضيات التطبيقية. يوجد العديد من البحوث العلمية في هذا المجال. الذكاء الاصطناعي لا يستخدم فقط في صناعة الرجال الآليين، بل أيضا في ألعاب الفيديو.
علم الحاسوب يرتبط ارتباطا وثيقا بعدد من المجالات، وهذه المجالات تتداخل معا بشكل كبير، ولكن توجد فروق بينها، من هذه المجالات:
علم الحاسوب، هندسة الميكانيك، و البيولوجيا هي العلوم الثلاث الرئيسية التي تقوم عليها هندسة طبية حيوية. يقوم علماء الحاسوب بكتابة البرامج التي تتحكم بالآلات الطبية أو أحيانا يستدعى علماء الحاسوب إلى مخابر طبية لأخذ رأيهم و اقتراحاتهم عن الأجهزة الطبية الحديثة بعد الانتهاء من صناعتها قبل بيعها للمختبرات و المشافي. في معظم الجامعات حول العالم، على طلاب الهندسة الطبية أخذ صفين من صفوف علم الحاسوب، احداهما يجب أن يكون عن لغات البرمجة .
يدرس طلاب علم الحاسوب العديد من مجالات الرياضيات مثل حساب التفاضل والتكامل(Calculus), الجبر الخطي، و المعادلات التفاضلية. علم الرياضيات أساسي جدا في كتابة البرامج و في لغات البرمجة. النظريات و التطبيقات الرياضية التي يدرسها الطلاب مهمة في فهم طريقة معالجة الحاسوب للمعلومات. بالإضافة إلى ذلك، يدرس الطلاب العديد من لغات البرمجة مثل java و Python. يدرس أيضا الطلاب القليل من الدارات الالكترونية و طريقة عملها. يدرس الطلاب الخوارزميات خلال السنة الثالثة و الرابعة.مشروع التخرج مهم للغاية في نهاية السنة الأخيرة..
بعض الطلاب يقومون بالإلتحاق بجامعات أخرى للتخصص في مجال معين في هندسة الحواسيب و بعضهم الآخر يبدأ بالعمل فور التخرج. يعمل مهندسو الحاسوب تقريبا في كل مكان. في المدارس و الجامعات حيث يبنون قواعد بيانات للطلاب، في المصانع حيث يقومون ببرمجة الآلات لقيام بعمل محدد، في الشركات المصرفية لضمان سرية و أمان عمليات تحويل الأموال عبر الانترنت
. بما أن مهندسو الحاسوب يمكنهم العمل تقريبا في أي مؤسسة، لا يجد خريجي هذا المجال أي صعوبة في إيجاد عمل.. راتب المهندس في هذا المجال يقارب 100,000 دولار سنويا.الشبكة الحاسوبية هي حاسوبين أو أكثر موصولين مع بعضهم البعض ليصبح بإمكانهم تبادل و تشارك المعلومات. يمكن ان تكون أجهزة الحاسوب مرتبطة مع بعضها بشكل مباشر بواسطة كابل(شريط خاص) أو يشكل لاسلكي. الانترنت هو أحد الأمثلة عن الشبكات الحاسوبية. أول استخدام لهذه الشبكات كان عام 1950. أول شبكة مستخدمة كانت بسيطة للغاية، اليوم و بعد 65 سنة، يتم استخدام الألياف الزجاجية لنقل المعلومات.. بحيث يمكن لهذه الألياف نقل آلاف الميجابايت في ثواني. فوائد هذه الشبكات عديدة فهي تسمح للمعلومات بالإنتقال من أي مكان في الكرة الأرضية إلى آخر بسرعة الضوء.