برمجة
تعريف البرمجة بأنها عملية كتابة تعليمات وتوجيه أوامر لجهاز الحاسوب أو أي جهاز آخر مثل قارئات أقراص الدي في دي أو أجهزة استقبال الصوت والصورة في نظم الاتصالات الحديثة، لتوجيه هذا الجهاز وإعلامه بكيفية التعامل مع البيانات أو كيفية تنفيذ سلسلة من الأعمال المطلوبة تسمى خوارزمية.
وتتبع عملية البرمجة قواعد خاصة باللغة التي اختارها المبرمج. وكل لغة برمجة لها خصائصها التي تميزها عن الأخرى وتجعلها مناسبة بدرجات متفاوتة لكل نوع من أنواع البرامج وحسب المهمة المطلوبة من هذا البرنامج. كما أن اللغات البرمجية أيضا لها خصائص مشتركة وحدود مشتركة بحكم أن كل هذه اللغات صممت للتعامل مع الحاسوب. وتتطور لغات البرمجة (السوفتوير Software) بتطور عتاد الحاسوب المرئي (الهاردوير Hardware). فعندما ابتكر الحاسوب في الأربعينيات والخمسينيات من القرن الماضي (بعد أجهزة الحساب الكهربائية في العشرينات) - وكان الكمبيوتر يعمل بأعداد كبيرة من الصمامات الإلكترونية - كانت لغة البرمجة معقدة هي الأخرى، حتي أنها كانت عبارة عن سلسلة من الأعداد لا يدخلها إلا الصفر 0 والواحد 1 وذلك لأن الحاسب يفهم حالتين فقط وجود التيار 1 أو عدم وجوده 0، وكان ذلك صعبا على المبرمجين. ولكن بابتكار الترانزيستور صغر حجم الحاسوب كثيرا وزادت إمكانياته، واستطاع المختصون في نفس الوقت أن يبتكروا لغات أسهل للاستخدام، وأصبحت لغات البرمجة مفهومة إلى حد بعيد للمختصين. ولا يزال التطوير والتسهيل جاريا وتسمى هذه اللغات سهلة التعامل بالنسبة للمبرمجين باللغات عالية المستوى.
برمجة الحاسوب: هي عملية كتابة، اختبار، تصحيح للأخطاء وتطوير للشيفرة المصدرية لبرنامج حاسوبي يقوم بها الإنسان، تهدف البرمجة إلى إنشاء برامج تقوم بتطبيق وتنفيذ خوارزميات لها سلوك معين بمعنى أن لها وظيفة محددة مسبقا ومتوقعة النتائج. تتم هذه العملية باستخدام إحدى لغات البرمجة. الهدف من البرمجة هو إنشاء برنامج حيث ينفذ عمليات محددة أو يظهر سلوك مطلوب محدد. بشكل عام البرمجة عملية تستلزم معرفة في مجالات مختلفة منها معرفة بالرياضيات والمنطق والخوارزميات.
تجدر الإشارة هنا إلى التذكير بمعنى كلمة لغة وهي طريقة الاتصال والتفاهم بين الأشخاص أو لنقل في حالة الحاسوب الطريقة التي يفهم بها الحاسوب طلب الإنسان. لذلك نجد في حياتنا مجموعة مصطلحات وكلمات يختلف استخدامها حسب الحاجة. لغات البرمجة المختلفة تتمتع بهذه الخاصية أيضا. فهناك الكثير من اللغات البرمجية الموجودة وهذه اللغات تختلف من ناحية عملها وهدفها ولكن في النهاية كل هذه اللغات تترجم إلى لغة الآلة 0 و1.
لذلك يجب على المبرمج أن يكون ملما ببعض لغات البرمجة وأن يعرف ما هي اللغة المناسبة لتطبيق هذا البرنامج.
لغة البرمجة الوحيدة التي يفهمها الحاسوب ويستطيع أن يتعامل معها هي لغة الآلة -machine language-. في البداية عمل المبرمجون على تحليل شيفرة الحاسوب –machine code- والتعامل معها بشكلها الجامد وغير المفهوم وهو (0،1). ولكن هذه العملية معقدة جدا ويصعب التعامل معها لعدم فهمها الواضح للبشر ولغموضها لذلك تم ابتكار لغات راقية تعمل كوسيط بين لغة الإنسان ولغة الآلة وهي لغة التجميع اسمبلي Assembly ثم تطورت للغات عالية المستوى مثل لغة السي ولغة البيسيك. ثم يتم تشغيل البرامج المكتوبة بهذه اللغات عن طريق أحد البرامج المتخصصة مثل المترجم والمصرف. هذه البرامج تعمل على ترجمة أسطر لغة البرمجة إلى لغة الحاسوب مما يسهل على الحاسوب تنفيذ هذه الأوامر وإخراج نتائج التنفيذ الواضحة.
لكل نهج في عملية تطوير البرامج، يجب على البرنامج النهائي أن يحقق خصائص جوهرية، مثل:
في علم الحاسوب، القدرة على القراءة تشير إلى مدى السهولة التي يحتاجها قارئ بشري لفهم هدف، التحكم في تدفق، وعملية الشيفرة المصدرية. تؤثر على جوانب الجودة المذكورة اعلاه، بما في ذلك القابلية للنقل، الصلاحية، والأهم القابلية للصيانة.
من العوامل التي تؤثر على القدرة على القراءة:
الحقل الأكاديمي والممارسة في برمجة الحاسوب مهتمان إلى حد كبير باكتشاف وتطبيق أكثر الخوارزميات كفاءة لفئة معينة من المشكلة.
الخطوة الأولى في أغلب عمليات تطوير البرامج الرسمية هو تحليل المتطلبات، يليها اختبار لتحديد قيمة التصميم، التطبيق، والتغلب على الإخفاق (التنقيح) (Debugging).
إنه لمن الصعب جدا تحديد ما هي اللغة الأكثر شعبية بين لغات البرمجة الحديثة. بعض اللغات شعبية جدا في نوع معين من التطبيقات، فيما بعض اللغات تستخدم عادة لأنواع مختلفة من التطبيقات. أيضا في كثير من التطبيقات يتم استخدام خليط بين عدة لغات.
يعد التنقيح مهمة ضرورية في عملية تطوير البرامج، لأن البرنامج الذي يحتوي على شوائب قد يكون له عواقب وخيمة على المستخدمين.
غالبا ما يتم التنقيح بواسطة بيئة تطوير متكاملة، مثل إكليبس وهناك شركات تدمج المنقحات مع لغة البرمجة مثل شركة امباركاديرو تكنولوجيز التي تقدم مصحح مع لغة دلفي و سي++.مبرمجو الحاسوب هم الذين يكتبون برامج الحاسوب. وظائفهم تشمل بشكل عام: