الأساسيات النظرية والعملية للانطلاق في عالم البرمجة
بنهاية هذه الوحدة، سيكون الطالب قادرًا على:
التعريف: البرمجة هي عملية كتابة تعليمات أو أوامر (تُعرف باسم الأكواد) بلغة يفهمها الحاسب، بهدف توجيهه لتنفيذ مهام محددة أو حل مشكلة معينة. إنها الطريقة التي "نتحدث" بها إلى الحاسوب لنجعله يقوم بما نريده.
البيانات هي المادة الخام التي يتعامل معها البرنامج، ولكل نوع من البيانات طريقة معالجة وتخزين خاصة به. فهم أنواع البيانات ضروري لكتابة أكواد فعالة وآمنة.
| نوع البيانات | الوصف | مثال في الجافا |
|---|---|---|
| عدد صحيح (Integer) | قيم رقمية بدون كسور أو فواصل عشرية (أعداد كاملة). | int age = 25; |
| عدد عشري (Floating-Point) | قيم رقمية تحتوي على فاصلة عشرية (أعداد حقيقية). | double salary = 1500.50; |
| نص (String) | سلسلة من الأحرف أو الكلمات أو الجمل. تُكتب بين علامتي اقتباس مزدوجة " ". |
String name = "Ali"; |
| منطقي (Boolean) | قيمتان محتملتان فقط: true (صحيح) أو false (خطأ). | boolean isSecure = true; |
boolean (منطقي) للتحقق من صحة كلمة المرور: هل هي قوية؟ هل تطابق الشروط؟String (نص) لمعالجة نصوص التشفير وفك التشفير، حيث يتم التعامل مع البيانات المشفرة كسلاسل نصية.لكي يتفاعل الحاسب مع البشر، تم تطوير لغات برمجة مختلفة تتدرج في مستواها من الأقرب إلى الحاسوب إلى الأقرب إلى لغة الإنسان.
| النوع | الميزات | الاستخدام في الأمن السيبراني |
|---|---|---|
| لغة الآلة (Machine Language) |
|
|
| لغة التجميع (Assembly Language) |
|
|
| لغات عالية المستوى (High-Level Languages) |
|
|
لتحويل الكود الذي تكتبه بلغة عالية المستوى إلى شيء يفهمه الحاسوب (لغة الآلة)، نحتاج إلى أدوات خاصة: المترجمات والمفسرات.
| الميزة | المترجم (Compiler) | المفسر (Interpreter) |
|---|---|---|
| آلية العمل | يترجم الكود المصدري كاملاً إلى لغة الآلة (ملف تنفيذي) قبل التنفيذ. | يترجم الكود المصدري سطرًا بسطر وينفذه مباشرة أثناء الترجمة. |
| السرعة | أسرع في التنفيذ بمجرد الترجمة (لأن الترجمة تتم مرة واحدة). | أبطأ في التنفيذ (لأن الترجمة تتم مع كل تشغيل للبرنامج). |
| الأمان واكتشاف الأخطاء | يُكتشف الخطأ في الكود قبل التنفيذ. إذا كان هناك خطأ، لن يتم إنشاء الملف التنفيذي. | قد يتوقف البرنامج عند السطر الذي يحتوي على خطأ أثناء التنفيذ. |
| مثال | javac (مترجم الجافا) الذي يحول كود الجافا إلى بايت كود (Bytecode). |
مفسر بايثون (Python Interpreter)، مفسرات JavaScript في المتصفحات. |
جافا هي لغة "مُترجمة ومُفسرة" في نفس الوقت. الكود المصدري للجافا (.java) يُترجم بواسطة javac إلى Bytecode (.class). هذا الـ Bytecode هو الذي يتم تفسيره أو ترجمته لاحقًا بواسطة Java Virtual Machine (JVM) على أي نظام تشغيل. هذه العملية تساعد في:
تُعد جافا واحدة من أكثر لغات البرمجة شيوعًا وقوة في العالم، وتتميز بتاريخ طويل ودور محوري في العديد من التطبيقات.
ما الذي جعل الجافا قوية ومُعتمدة على نطاق واسع؟
| الميزة | التوضيح | الفائدة الأمنية |
|---|---|---|
| كائنية التوجه (OOP - Object-Oriented Programming) | منهجية برمجية تقوم على تنظيم الكود في كائنات (Objects) و كلاسات (Classes)، مما يسهل إعادة الاستخدام ويجعل الكود أكثر تنظيمًا ومرونة. |
|
| المنصة المستقلة (Platform Independent) | برامج الجافا المترجمة (Bytecode) يمكن تشغيلها على أي نظام تشغيل يحتوي على بيئة تشغيل الجافا (JRE) أو الآلة الافتراضية للجافا (JVM)، سواء كان Windows، Linux، أو macOS. | مثالية لتطوير أدوات أمنية أو تطبيقات حماية تعمل على منصات متعددة دون الحاجة لإعادة كتابة الكود لكل نظام تشغيل، مما يوفر الوقت والجهد في عمليات النشر والتحديث. |
| إدارة الذاكرة التلقائية (Automatic Memory Management) | لا يحتاج المبرمج إلى إدارة الذاكرة يدويًا (مثل تحرير الذاكرة بعد الاستخدام)، حيث تتولى جامع القمامة (Garbage Collector) في JVM هذه المهمة. |
|
| المكتبات الأمنية الغنية (Rich Security Libraries) | تأتي جافا مع مجموعة واسعة من المكتبات المدمجة لدعم وظائف الأمن، مثل java.security و javax.crypto. | توفير دعم جاهز وسهل الاستخدام لـ التشفير (Encryption)، التوقيع الرقمي (Digital Signatures)، المصادقة (Authentication)، وغيرها من الميزات الأمنية الأساسية، مما يقلل من حاجة المطورين لكتابة هذه الوظائف من الصفر. |
الآن، حان الوقت لتطبيق ما تعلمته نظريًا. سنقوم بإعداد بيئة العمل وكتابة أول برنامج لك بلغة الجافا.
يحتوي JDK على بيئة تشغيل الجافا (JRE) والمترجم (javac) والأدوات اللازمة لتطوير برامج الجافا. قم بتنزيله من موقع Oracle الرسمي:
رابط تنزيل JDKEclipse هي بيئة تطوير شائعة ومجانية تدعم لغة الجافا، وتوفر أدوات قوية لكتابة الكود وتصحيحه وتنظيمه.
رابط تنزيل Eclipse IDEبرنامج "Hello World" هو التقليد المتبع لتعلم أي لغة برمجة جديدة. سيعرض هذا البرنامج ببساطة رسالة على الشاشة.
public class HelloWorld {
public static void main(String[] args) {
// طباعة رسالة ترحيب لطلاب الأمن السيبراني
System.out.println("Hello, Cybersecurity Students!");
}
}
public class HelloWorld: يُعرف "كلاس" (Class) باسم HelloWorld. الكلاسات هي اللبنات الأساسية للبرمجة كائنية التوجه في الجافا.public static void main(String[] args): هذه هي "نقطة الدخول" أو نقطة البداية لتنفيذ أي برنامج جافا. عندما تشغل البرنامج، سيبدأ التنفيذ من هذا السطر.System.out.println("Hello, Cybersecurity Students!");: هذا الأمر يقوم بطباعة النص الموجود بين علامتي الاقتباس المزدوجة على الشاشة، ثم ينتقل إلى سطر جديد.MyFirstJavaProject) ثم اضغط Finish.src، واختر New ثم Class.HelloWorld وتأكد من تحديد خيار public static void main(String[] args)، ثم اضغط Finish.HelloWorld.java مع الهيكل الأساسي. اكتب السطر System.out.println("Hello, Cybersecurity Students!"); داخل دالة main.كمثال أولي على الربط بالأمن السيبراني، سننشئ برنامجًا بسيطًا يتحقق من أن طول كلمة المرور المدخلة لا يقل عن 8 أحرف.
import javax.swing.JOptionPane; // لاستخدام نوافذ الحوار
public class PasswordChecker {
public static void main(String[] args) {
// طلب كلمة المرور من المستخدم عبر نافذة حوار
String password = JOptionPane.showInputDialog("أدخل كلمة المرور:");
// التحقق من طول كلمة المرور
if (password.length() >= 8) {
JOptionPane.showMessageDialog(null, "كلمة المرور آمنة!");
} else {
JOptionPane.showMessageDialog(null, "كلمة المرور قصيرة جدًا! يجب أن تكون 8 أحرف على الأقل.");
}
}
}
import javax.swing.JOptionPane;: هذا السطر يستورد مكتبة JOptionPane التي تسمح لنا بإنشاء نوافذ حوار بسيطة لإدخال وإخراج البيانات للمستخدم.JOptionPane.showInputDialog(...): يعرض نافذة حوار تطلب من المستخدم إدخال نص.password.length(): هي دالة مدمجة في كائنات String ترجع طول السلسلة النصية (عدد الأحرف).if (condition) { ... } else { ... }: هذه جملة شرطية. إذا كان الشرط (طول كلمة المرور أكبر من أو يساوي 8) صحيحًا، يتم تنفيذ الكود داخل if. وإلا، يتم تنفيذ الكود داخل else.JOptionPane.showMessageDialog(...): يعرض نافذة حوار تحتوي على رسالة للمستخدم.هذا مثال بسيط يوضح كيف يمكن استخدام أساسيات البرمجة لتطبيق قواعد أمنية. في الوحدات القادمة، سنتعمق أكثر في هذه المفاهيم.
اكتب برنامج جافا يطلب من المستخدم إدخال اسمه وعمره (باستخدام JOptionPane.showInputDialog)، ثم يطبع رسالة ترحيب تحتوي على اسمه وعمره في نافذة حوار (باستخدام JOptionPane.showMessageDialog).
showInputDialog ترجع نصًا (String)، وقد تحتاج إلى تحويل العمر إلى رقم إذا أردت إجراء عمليات حسابية عليه لاحقًا.
طور البرنامج السابق ليتحقق من أن العمر المدخل أكبر من 18. إذا كان كذلك، اطبع رسالة "أهلاً بك، يمكنك الوصول!"، وإلا اطبع "عفوًا، يجب أن يكون عمرك 18 عامًا فما فوق." (تطبيق على الجمل الشرطية البسيطة if-else).
تهدف هذه الوحدة إلى تأسيس الطالب في: