مم يتكون الحاسب الآلي؟ العتاد والبرمجيات وكيفية ترابطهما Batch 47 CPU Arch
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
اكتب الفرق بين Hardware و Software هنا... / Write the difference between HW & SW here...
HW vs SW Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
1. Computer Organization (Cont.) Slide 04 / 31
01. Input Unit IN
وحدة الإدخال
تستقبل البيانات من العالم الخارجي وترسلها لذاكرة الحاسب.
Mouse, Keyboard
02. Output Unit OUT
وحدة الإخراج
تعرض وتخرّج المعلومات المعالجة للمستخدم بطرق بصرية أو صوتية.
Monitor, Printer, Audio
03. Memory Unit RAM
وحدة الذاكرة
تحتفظ بالبيانات المدخلة، والبيانات المحسوبة، والتعليمات البرمجية لتشغيلها بشكل مؤقت وسريع.
Memory (RAM)
04. CPU Unit CPU
وحدة المعالجة المركزية
عقل الجهاز. تشرف وتنسق العمليات (وحدة التحكم 4.1) وتنفذ العمليات الرياضية والمنطقية (ALU 4.2).
CU & ALU core
05. Storage DISK
التخزين الثانوي
وحدات التخزين غير المتطايرة والمستديمة التي تحفظ الملفات والبيانات بعد إغلاق جهاز الحاسب.
HDD, SSD, Flash
المكونات التفصيلية لنظام الحاسب • نظرة أعمق على الوحدات الوظيفية الخمس الأساسية Typical HW Details
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
دوّن هنا مقارنة سريعة بين الذاكرة العشوائية (RAM) والتخزين الثانوي... / Compare RAM vs. Storage...
RAM vs. Storage Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
2. Programming Languages Classifications Slide 05 / 31
يكتب المبرمجون التعليمات البرمجية بلغات متنوعة
بعضها يفهمه الحاسب بشكل مباشر، والبعض الآخر يتطلب خطوات ترجمة وسيطة لتنفيذه.
💡 معلومة هامة (Important Concept):
كلما كانت لغة البرمجة أقرب للغة الإنسان، سميت لغة عالية المستوى؛ وكلما كانت أقرب للأصفار والآحاد، سميت لغة منخفضة المستوى.
The Three General Types | الأنواع الثلاثة العامة
1
Machine Languages لغة الآلة (الأصفار والآحاد 0 و 1)
Low Level
2
Assembly Languages لغة التجميع (ADD, SUB رموز الاختصار)
Medium Level
3
High-Level Languages اللغات عالية المستوى (Java, C++, Python)
High Level
كيف يتفاهم المبرمج مع الآلة؟ مستويات لغات البرمجة وخطوات المترجمات الأساسية Language Levels
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
لماذا تظن أن لغة الآلة صعبة التطوير؟ / Why is machine language difficult to code in?
Machine Lang Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
2. Machine & Assembly Languages Detailed Slide 06 / 31
01. Machine Language | لغة الآلة
Example: 10101100 00110101
02. Assembly Language | لغة التجميع
LOAD أو ADD).Example: LOAD basePay, ADD overTimePay
خصائص اللغات منخفضة المستوى وكيفية تحويلها لرموز تفهمها البنية التحتية للحاسب Low Level Specs
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
باختصار، اكتب هنا ما يفعله المجمع (Assembler) بالتحديد... / What does an Assembler do?
Assembler Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
2. High-Level Languages Execution Slide 07 / 31
Features | المزايا الأساسية
grossPay = basePay + overTimePayCompilers (المترجمات)
تقوم بتحويل البرنامج بالكامل دفعة واحدة إلى لغة الآلة، وهو ما قد يستغرق وقتاً طويلاً في المرة الأولى للترجمة.
Interpreters (المفسرات)
تنفذ العبارات البرمجية مباشرة خطوة بخطوة، ورغم سهولة استخدامها الفوري إلا أنها قد تكون أبطأ في التشغيل الكلي.
EXECUTION PIPELINE
Source Code (.java)
↓
Compiler / Interpreter Translating...
↓
Machine Execute CPU Run
كيف نكتب برمجيات معقدة بسهولة وما الفرق بين الكومبايلر والانتربريتر؟ High Level Execution
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
ما هو الفرق الأساسي بين الـ Compiler والـ Interpreter؟ / Main Compiler vs. Interpreter difference?
Translation Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
3. Program Solving Cycle | دورة حل المشكلات Slide 08 / 31
1 Analysis
التحليل وتحديد متطلبات الحل ومخرجاته.
2 Design
التصميم ورسم المخطط أو كتابة الخوارزمية.
3 Coding
البرمجة وكتابة الحل بلغة برمجية كـ Java.
4 Compile
الترجمة والتحقق من سلامة الأخطاء النحوية.
5 Run & Verify
التشغيل واختبار صحة المدخلات والمخرجات.
4.1 Verification Loop & Syntax Error:
إذا وجد خطأ نحوي أثناء الترجمة، يجب العودة فوراً إلى مرحلة كتابة الكود (الخطوة 3) لتعديل السطور المعيوبة وإعادة ترجمتها.
5.1 Output Loop & Logical Error:
إذا لم تطابق نتائج المخرجات المطلوبة بعد التشغيل، يجب العودة للخطوة الأولى (التحليل) لإعادة فهم المتطلبات بشكل سليم.
المراحل الخمس الأساسية التي يمر بها المبرمج لإنتاج نظام خالٍ من الأخطاء Problem Solving Steps
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
لماذا نعود للخطوة 1 إذا كانت النتائج خاطئة بدلاً من التعديل العشوائي في الكود؟
Cycle Loop Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
3. Program Solving Cycle (Cont.) Slide 09 / 31
Problem المشكلة
Analysis تحليل المشكلة
Algorithm رسم الخوارزمية
Coding كتابة الكود
↓ ↓ ↓ ↓
Compiler المترجم النحوي
If Error → Syntax Error
Interpreter المفسر البرمجي
If Error → Logical / Runtime
Results (مخرجات سليمة) ✔ The final software operates with high structural integrity and meets system expectations.
مخطط مسار الأخطاء وتعديلها بصرياً • كيف تتعامل المترجمات والمفسرات مع الأخطاء النحوية والمنطقية؟ Path Flow Diagram
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
في المخطط، حدد مكان ظهور الـ Syntax Error... / Mark where syntax errors occur.
Syntax Error Location
CS 1301 | BATCH 47 >_ LAUNCHPAD
4. Program Components | مكونات البرنامج الثلاثة Slide 10 / 31
1. Input (المدخلات)
البيانات والمدخلات الأولية المطلوبة لبدء حل المسألة البرمجية.
💡 قاعدة الأسماء: الأسماء في مسألة السؤال تدل على المدخلات والمخرجات.
2. Processing (المعالجة والعمليات)
مجموعة العمليات الحسابية والخطوات المنطقية التي تحول المدخلات إلى مخرجات.
💡 قاعدة الأفعال: الأفعال البرمجية في السؤال تقترح خطوات المعالجة.
3. Output (المخرجات النهائية)
الهدف الأساسي المرجو والنتيجة النهائية المطلوبة لحل المسألة الرياضية أو المنطقية.
Functional Process Flow
Input Data بيانات الدخل
▼
Processing المعالجة
▼
Output Data مخرجات الحل
ما هي الأعمدة الرئيسية التي يتشكل منها أي كود برمجى ناجح؟ Process Flow
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
أعط مثالاً لعملية لها مدخلات ومعالجة ومخرجات من حياتك اليومية... / Give a real-life IPO example...
IPO Real Example
CS 1301 | BATCH 47 >_ LAUNCHPAD
Example 1 | مثال 1: مساحة ومحيط المستطيل Slide 11 / 31
Problem Statement
اكتب برنامجاً يقوم بحساب مساحة ومحيط مستطيل طوله 5 سم وعرضه 3 سم.
Note on Dynamic Inputs:
إذا لم تكن قيم المدخلات معطاة مباشرة في منطوق السؤال، فيمكن قراءتها بشكل ديناميكي من المستخدم مباشرة عن طريق لوحة المفاتيح.
📥 INPUT | المدخلات والمعطيات
Width = 5 cm Length = 3 cm
📤 OUTPUT | المخرجات والنتائج
Area = ? Perimeter = ?
⚙ PROCESSING | المعادلات والمعالجة
Area formula: Area = length * width = 5 * 3 = 15 cm² Perimeter formula: Perimeter = 2 * (length + width) = 2 * (3 + 5) = 16 cm
تحليل مسألة رياضية وتفكيكها برمجياً إلى مدخلات ومخرجات ومعالجة خطوة بخطوة Example 1 Analysis
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
جرب صياغة الكود بنفسك لحساب مساحة المستطيل... / Try coding the area logic...
Rect Code Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
Example 2 | حساب مساحة ومحيط الدائرة Slide 12 / 31
Problem Statement
قم بحساب مساحة ومحيط دائرة نصف قطرها (radius = 2.5 cm)، مع العلم أن ثابت PI يساوي 3.14.
💡 فكرة تفاعلية (Interactive Idea):
كيف يمكننا تخزين الثابت PI في جافا؟ يمكننا استخدام الكلمة المحجوزة final لمنع تعديل القيمة لاحقاً: final double PI = 3.14;
📥 INPUT | المدخلات
Radius = 2.5 cm PI = 3.14
📤 OUTPUT | المخرجات
Area = ? Perimeter = ?
⚙ PROCESSING | المعادلات
Area formula: Area = PI * Radius * Radius = 3.14 * 6.25 = 19.625 cm² Perimeter formula: Perimeter = 2 * PI * Radius = 2 * 3.14 * 2.5 = 15.7 cm
تطبيق المعادلات الرياضية للدائرة برمجياً وتحديد المدخلات والمخرجات بدقة Example 2 Analysis
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
اكتب كود جافا لحساب مساحة الدائرة... / Code circle area in Java...
Circle Code Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
Example 3 | المجموع والمتوسط الحسابي Slide 13 / 31
Problem Statement
قم بحساب مجموع ومتوسط الأعداد الخمسة التالية: 10، 20، 30، 40 و 50.
⚠️ نقطة انتباه للمبرمج (Attention Point):
لتجنب فقدان الأعداد العشرية الناتجة عن القسمة عند حساب المتوسط (Average) في جافا، يفضل استخدام نوع البيانات float أو double.
📥 INPUT | المعطيات
Five numbers: x1, x2, x3, x4, x5
📤 OUTPUT | النتائج
Sum = ?, Average = ?
⚙ PROCESSING | المعادلات
Sum: Sum = x1+x2+x3+x4+x5 = 10+20+30+40+50 = 150 Average: Average = Sum / 5 = 150 / 5 = 30
معالجة وتلخص العمليات الرياضية على خمسة أعداد محددة Example 3 Analysis
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
ماذا سيحدث لو قمنا بالقسمة على 5.0 بدلاً من 5 في لغة جافا؟
Average Division Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
5. Introduction to Java (Why Java?) | مقدمة لجافا Slide 14 / 31
🌍 World's Most Widely Used Language
تعتبر لغة جافا لغة البرمجة الأكثر استخداماً وانتشاراً حول العالم لتطوير الأنظمة المستقرة والضخمة.
🌐 Network & Internet Choice
أصبحت جافا الخيار الأول والأنسب لتطوير وبناء التطبيقات المعتمدة على الويب والشبكات المتصلة والأنظمة الموزعة.
📱 Billions of Enabled Devices
تعمل جافا اليوم على أكثر من مليار حاسوب مكتبي ومليارات الهواتف المحمولة والأجهزة الذكية واللوحية.
⚙ Object-Oriented (OO) Design
تعتمد جافا بالكامل على منهجية البرمجة كائنية التوجه (OOP)، وهي الأسلوب البرمجي الأساسي والأكثر حداثة للبرمجيات الكبيرة اليوم.
قوة لغة جافا، مجالات استخدامها الواسعة وهيمنتها العالمية على الأنظمة والشبكات Why Java Analysis
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
اكتب ميزتين رئيسيتين تجعل جافا الخيار الأول للمبرمجين... / Write two key features...
Why Java Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
5.1 History of Java | تاريخ ونشوء لغة جافا Slide 15 / 31
🛠 The Origin: Sun Microsystems
تم تطوير لغة جافا في البداية بواسطة شركة Sun Microsystems وهي شركة عالمية كانت مشهورة جداً بإنتاج محطات العمل القوية والأنظمة المتقدمة.
🚀 Internet Application Pioneer
اشتهرت جافا بقدرتها الفريدة على تطوير تطبيقات الويب، وسهلت إمكانية تشغيل البرامج التفاعلية بشكل مباشر داخل متصفحات الويب المختلفة.
Java's Major Use Cases | أبرز مجالات استخدام جافا
✔ ويب تفاعلي: إنشاء صفحات ويب غنية ومحتوى تفاعلي وديناميكي متكامل.
✔ أنظمة مؤسسية (Enterprise): تطوير الأنظمة الضخمة للمؤسسات والشركات الكبرى.
✔ خوادم الويب: تعزيز ورفع كفاءة وظائف خوادم الويب العالمية (WWW servers).
✔ أجهزة ذكية: تطوير وتقديم برمجيات مخصصة للأجهزة الاستهلاكية الطرفية كالهواتف المحمولة.
من أين بدأت جافا وكيف نمت لتصبح رائدة في برمجيات الويب العالمية؟ History Timeline
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
اكتب اسم الشركة التي قامت بابتكار لغة جافا أولاً... / Write the name of the company...
Company Name Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
5.2 Characteristics of Java | أبرز خصائص ومميزات لغة جافا Slide 16 / 31
📦 Object-Oriented
برمجة كائنية التوجه (OOP)
تعتبر البرامج فيها مجموعة من الكائنات المتفاعلة. تدمج البيانات والسلوكيات معاً في وحدة تنظيمية واحدة تسمى الكائن (Object)، وهي أساسية جداً للبرمجيات الكبيرة والمترابطة.
🚀 Platform-independent
مستقلة تماماً عن نظام التشغيل
تتميز بالقابلية العالية للنقل البرمجي (Portable)، وترفع شعار "اكتب الكود مرة، وشغله في أي مكان" (Write-once, run-anywhere) دون قيود مسبقة.
🛡 Highly Secure
مستوى أمان وحماية مرتفع جداً
مدمج داخل الآلة الافتراضية (Bytecode Verifier) مخصص لفحص الأكواد غير الموثوقة والتحقق من سلامتها الأمنية الصارمة قبل تفعيلها على نظام التشغيل.
ما الذي يجعل جافا فريدة؟ الاستقلالية الأمنية وقابلية التشغيل اللامحدودة Unique Features
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
برأيك؟ ماذا تعني عبارة "Write-once, run-anywhere"؟ / What does WORA mean in your words?
WORA Meaning Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
5.3 Java Programs & JDK | حزمة التطوير Slide 17 / 31
📋 Division of Java Programs تصنيف وتقسيم برامج جافا
1. Standalone / Desktop Applications: تطبيقات سطح المكتب المستقلة بذاتها، تعمل مباشرة على نظام التشغيل دون الحاجة لمتصفح ويب لتشغيلها.
2. Applets (التطبيقات المضمنة): تطبيقات صغيرة مضمنة مصممة خصيصاً لتعمل وتنفذ مباشرة داخل متصفحات الويب المعتمدة.
📦 Java Development Kit (JDK) حزمة تطوير جافا
لكتابة وتطوير برامج جافا بنجاح، يجب عليك تحميل وتثبيت حزمة تطوير جافا (JDK) على جهازك الحاسوب، وهي بيئة مدمجة تحتوي على كل الأدوات الضرورية والوسائل المساعدة لتشغيل الكود وترجمته وحقنه في الذاكرة.
Features Included: Compilers (javac), Run-times (java), Debuggers, Libraries, APIs.
ما هي أنواع البرامج المنتجة بلغة جافا وما الذي توفره لنا حزمة التطوير البرمجية؟ JDK & Programs Classification
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
دون معناه هنا... JDK ما هو الاختصار / What does the acronym JDK stand for?
JDK Acronym Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
5.4 Java Editions | الإصدارات الثلاثة الرئيسية Slide 18 / 31
JAVA SE Java Standard Edition
الإصدار القياسي للبيئات العادية
يستخدم لتطوير تطبيقات مستقلة ومتعددة المنصات والأغراض العامة للأجهزة المكتبية العادية والشخصية.
Link: oracle.com/javase
JAVA EE Java Enterprise Edition
إصدار المؤسسات والشركات العملاقة
موجه ومعد خصيصاً لتطوير وبناء التطبيقات الكبيرة والموزعة على نطاق واسع، والتطبيقات المعتمدة على الشبكات والإنترنت وخوادم البيانات.
ENTERPRISE FOCUS
JAVA ME Java Micro Edition
إصدار الأجهزة الصغيرة ومحدودة الذاكرة
مخصص لتطوير البرامج والتطبيقات للأجهزة الصغيرة جداً ومحدودة الذاكرة والمعالجة كبعض الهواتف المحمولة الذكية من الجيل القديم والأجهزة المضمنة.
MICRO / IOT FOCUS
لكل فئة من التطبيقات إصدار برمجي خاص بها لتلبية متطلبات الذاكرة والاتصال Java Editions
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
متى نستخدم Java EE بدلاً من Java SE؟ دون إجابتك هنا... / When is Java EE preferred over SE?
Edition Selection Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
6. Typical Java Development Environment | الخطوات الخمس Slide 19 / 31
PHASE 1 Edit
Write & Save
كتابة الكود المصدري وحفظه في ملف يحمل امتداد .java باستخدام محرر نصوص بسيط أو بيئة تطوير متكاملة كـ Eclipse أو NetBeans.
Save as .java
PHASE 2 Compile
Compile Code
لترجمة الكود باستخدام الأمر المترجم javac، وإنشاء ملف بايت كود يحمل الامتداد .class.
javac file.java
PHASE 3 Load
Load to RAM
تقوم وحدة محمل الكلاسات (Class Loader) بقراءة الأكواد من القرص وتخزين ملفات البايت كود داخل ذاكرة النظام المؤقتة (RAM).
Class Loader
PHASE 4 Verify
Bytecode Verify
يقوم مدقق الأمان (Bytecode Verifier) بفحص التعليمات المحملة للتأكد من توافقها التام مع قيود الأمان وعدم خرقها للنظام.
Verifier engine
PHASE 5 Execute
Run Program
تقوم الآلة الافتراضية للجافا (JVM) بترجمة البايت كود وتشغيله فوراً باستخدام الأمر java على المعالج المركزي.
java fileClass
دورة حياة تشغيل البرنامج البرمجية خطوة بخطوة من الكتابة للتنفيذ الفعلي 5 Phases Execution
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
اكتب الأمر البرمجي المستخدم للترجمة (Compile)... / Write the compile command here...
Compile Command Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
6. Typical Java Development Environment (Cont.) Slide 20 / 31
Phase 1 Editor ➔ Disk .java يتم كتابة الكود وحفظه على القرص بملف
Phase 2 Compiler ➔ Disk .class ينتج المترجم البايت كود ويحفظه بملف
Phase 3 Class Loader ➔ RAM يقرأ محمل الأكواد الكلاسات ويضعها في الذاكرة المؤقتة
Phase 4 Verifier ➔ Check يفحص مدقق الأمان سلامة الأكواد من الاختراقات الأمنية
Phase 5 Interpreter ➔ CPU يترجم المفسر الأكواد وينفذها في المعالج فوراً
Bilingual Phase Trace Summary
Source Editor (.java) ➔ Javac compiler (.class) ➔ ClassLoader RAM Buffer ➔ Verifier Check ➔ JVM execution engine (CPU run)
تمثيل رسومي متسلسل لمراحل معالجة البيانات من الكود المصدري حتى المعالج Sequence Pipeline Map
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
ما هي المرحلة التي يتم فيها الفحص الأمني للأكواد؟ / In which phase is code security validated?
Security Phase Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
7. Program Compilation | مترجم البرامج Slide 21 / 31
الحواسيب لا تفهم مباشرة الأكواد البرمجية المكتوبة بلغات برمجة عالية المستوى مثل C++ أو Java، لذلك، يجب تحويل هذه البرامج تماماً إلى لغة الآلة التي يستطيع المعالج معالجتها وفهمها (Machine Code) وتنفيذها.
البرنامج المسؤول عن تحويل وحل كود المصدر (Source Code) من لغة برمجية عالية المستوى إلى لغة الآلة يسمى المترجم (Compiler).
Traditional Compilation Pipeline
Source Code كود المصدر المكتوب
▼
Compiler برنامج الترجمة
▼
Machine Code أكواد الآلة المفسرة
كيف ننتقل من لغة يفهمها المبرمج إلى لغة من الأصفار والآحاد يفهمها العتاد؟ Compiler Concept
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
باختصار، ما هي وظيفة برنامج الـ Compiler؟ / What is the function of a Compiler?
Compiler Role Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
7.1 Platform Dependence vs. Independence Slide 22 / 31
Platform-Dependent الارتباط بالنظام
تعتمد لغة الآلة التقليدية بشكل كلي على نوع ونوعية المعالج والعتاد الفعلي للحاسب.
Platform-Independent الاستقلال التام
تتميز جافا بقدرتها الهائلة على تشغيل الأكواد والبرامج دون الحاجة نهائياً لإعادة ترجمة كود المصدر.
ما الذي يجعل برامج جافا قوية التشغيل ومستقلة تماماً مقارنة باللغات التقليدية؟ Ecosystem Portability
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
لماذا لا نحتاج لإعادة ترجمة برنامج جافا على الماك لو قمنا بترجمته على الويندوز؟
Platform Portability Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
7.1 Java Program Compilation | آلية ترجمة وتجهيز ملفات جافا Slide 23 / 31
يقوم مترجم جافا (Java Compiler) بترجمة ملف كود المصدر ذو الامتداد .java إلى صيغة .class تحمل الامتداد Bytecode وسيطة وليست إلى لغة الآلة المباشرة.
بعد ذلك، يتم تشغيل وتحويل هذا البايت كود (Bytecode) إلى لغة الآلة المباشرة على معالج جهاز الحاسب بالاستعانة بمفسر جافا الخاص بالآلة الافتراضية (JVM / Java VM).
Java Translation Sequence Diagram
MyProgram.java Source Code
➔
Javac Java Compiler
➔
MyProgram.class Bytecode
➔
JVM Java Interpreter
➔
Formula: JVM = Java Virtual Machine
كيف تحافظ جافا على الاستقلالية؟ البايت كود والآلة الافتراضية للجافا JVM Compilation Blueprint
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
ما هو امتداد الملف الذي يحتوي على كود البايت كود (Bytecode)؟
Bytecode Extension Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
7.1 Running Bytecode | تشغيل كود البايت كود Slide 24 / 31
الناتجة بأمان وسهولة على أي حاسوب يحمل مفسر جافا مدمج أو مثبت مسبقاً (Bytecode) يمكنك تشغيل ملفات البايت كود.
🔍 كيف يعمل هذا؟ (How it Works)
عند تشغيل البرنامج، يأخذ مفسر النظام المعين (مثل macOS) كود البايت كود المشترك ويحوله محلياً إلى أكواد آلة ملائمة لبيئته الخاصة.
Cross-Platform Interpretation Diagram
Hello.class Bytecode
⇄
Interpreter ➔ Windows
Interpreter ➔ macOS
Interpreter ➔ Unix / Linux
One single bytecode (.class) file is universally accepted by all interpreters.
الشرط الوحيد لتشغيل برمجيات جافا هو وجود بيئة تشغيل جافا مفسرة على الجهاز Cross-Platform execution
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
ما الذي يحتاجه جهاز العميل لتشغيل كود البايت كود؟ / What does a client machine need?
Client Requirement Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
7.1 Compilation Flowchart | المخطط التفصيلي Slide 25 / 31
Java Code (.java) كود السورس الأساسي
➔
JAVAC compiler برنامج الترجمة
▼
Byte Code (.class) كود البايت كود المستقل
➔
JVM for Windows يشغل البايت كود على بيئة ويندوز
JVM for Linux يشغل البايت كود على بيئة لينكس
JVM for Mac يشغل البايت كود على بيئة ماكنتوش
مخطط شامل للربط والتحويل من ملفات السورس كود إلى أجهزة المستخدمين النهائية Compilation Flowchart
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
ارسم أو دوّن تفاصيل المخطط هنا... / Draw or sketch the flowchart here...
Flowchart Sketch Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
7.1 HelloWorld Code | كود جافا الأول وطرق معالجته وتفسيره Slide 26 / 31
HelloWorldApp.java
// كود المصدر الأساسي للجافا class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); } }
// Outputs: Hello World! to standard execution console
Processing Chain: تسلسل معالجة كود ترحيب جافا
استعراض الكود الأساسي لجافا ومحاكاة كيفية تداوله في بيئة المعالجة First Code Run
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
جرب كتابة أمر الطباعة الخاص بلغة جافا في المساحة... / Practice writing the print command...
Print Command Practice
CS 1301 | BATCH 47 >_ LAUNCHPAD
7.2 Java Virtual Machine (JVM) | الآلة الافتراضية للجافا بالتفصيل Slide 27 / 31
❓ What is JVM? | ما هي الآلة الافتراضية؟
هي بمثابة جهاز حاسوب تخيلي برمجي متكامل، تم بناؤه وتصميمه لجعل برامج جافا مستقلة تماماً عن نظام التشغيل الفعلي والعتاد السفلي للجهاز.
JVM Core Components | المكونات الثلاثة الأساسية للـ JVM
1. Class Loader (محمل الكلاسات) يخزن البايت كود في ذاكرة الحاسب المؤقتة لتشغيلها.
2. Bytecode Verifier (مدقق الأمان النحوي) يتأكد ويتحقق من سلامة البايت كود وعدم انتهاكه لقواعد الأمان.
3. Bytecode Interpreter (المفسر البرمجي) يترجم البايت كود إلى لغة الآلة المباشرة المناسبة للمعالج.
نظرة فنية على العقل التشغيلي لجافا الذي يوفر الموثوقية والحماية الفائقة للبرامج JVM Architecture
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
ما هي الأقسام الثلاثة التي يتألف منها الـ JVM؟ / What are the 3 parts of JVM?
JVM Parts Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
7.2 JVM Execution Diagram | مخطط آلية تشغيل الآلة الافتراضية لجافا Slide 28 / 31
Bytecode (.class) الملف المستورد الجاهز للتشغيل
➔
JVM Runtime
• Class Loader • Bytecode Verifier • Bytecode Interpreter
➔
Operating System نظام التشغيل والعتاد الملموس
Data compilation sequence guarantees runtime stability across distinct hardware variants.
تمثيل متسلسل لبصمة تشغيل الأكواد والترابط مع العتاد الفيزيائي للحاسوب JVM Execution Map
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
اكتب هنا ملخصاً مبسطاً لمسار تشغيل الكود في الـ JVM... / Summarize JVM execution...
JVM Pipeline Summary
CS 1301 | BATCH 47 >_ LAUNCHPAD
8. Difference between Java and C++ Slide 29 / 31
WOCA Concept (C++)
"اكتب الكود مرة، واكتب المترجم في كل مكان"
.exe) ترتبط تماماً بعتاد ونوع نظام تشغيل الحاسب الفعلي المستخدم أثناء الترجمة.C++ Compilation Pipeline
C/C++ Source كود المصدر الأساسي
▼
Windows Windows Executable
Linux Linux Executable
كيف تقيد لغة C++ كود المصدر بالنظام وهل هذا يوفر أداءً أسرع أم استقلالية أقل؟ Native Code Specs
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
ماذا يعني الاختصار WOCA في لغة سي بلس بلس؟ / What does WOCA stand for in C++?
WOCA Acronym Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
8. Difference between Java and C++ (Cont.) Slide 30 / 31
WORA Concept (Java)
"اكتب الكود مرة، وشغله في أي مكان"
Java WORA Global Execution Diagram
Java Source كود المصدر الأساسي
▼
Windows JRE
Linux JRE
macOS JRE
شعار جافا الذهبي وآلية تشغيلها الشاملة • استعراض قوة جافا ومقارنتها بلغة C++ من ناحية سهولة التوزيع والنشر WORA Engine Concept
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
ماذا يعني الاختصار WORA في لغة جافا؟ / What does WORA stand for in Java?
WORA Acronym Notes
CS 1301 | BATCH 47 >_ LAUNCHPAD
9. Program Testing and Debugging | اختبار البرامج Slide 31 / 31
1. Syntax Errors
الأخطاء النحوية والإملائية التي تحدث عند مخالفة القواعد النحوية للغة، كنسيان الفاصلة المنقوطة.
2. Logical Errors
الأخطاء المنطقية المعنوية حيث يعمل البرنامج دون توقف ولكن ينتج مخرجات وحسابات خاطئة تماماً.
3. Runtime Errors
أخطاء وقت التشغيل التي يتوقف البرنامج فجأة عن العمل بسببها، كالقسمة على صفر أثناء التشغيل.
4. Compiler Errors
أخطاء الترجمة المبدئية، مثل عدم تطابق اسم الملف البرمجي مع كلاس جافا العام.
🛠 Debugging | التخلص من الأخطاء
هي عملية فنية دقيقة تبدأ بمجرد مواجهة أي نوع من الأخطاء، للبحث عن موقعه وفهم أسبابه وتصحيحه بعناية فائقة لضمان تشغيله بشكل سليم.
تمرین التقييم الذاتي: حدد المدخلات والمخرجات والمعالجة لتحويل درجة الحرارة من مئوية إلى فهرنهايت، أو تحديد حالة نجاح ورسوب الطالب.
فهم أنواع الأخطاء الأربعة الشهيرة التي قد تواجه المبرمج وكيفية حلها بأمان Testing & Debugging Core
مسودة الطالب / Interactive Notes Canvas
Write notes here or draw thoughts
دون هنا أهم الفروق والملاحظات التي استخلصتها اليوم... / Write down your key takeaways...
Final Lecture Takeaways
doubleExample 3 (Average) Dividing by 5.0 instead of 5 forces float math division, preventing integer truncation in Java.
CS 1301 Teacher Guide • Page 1 of 2 Educator-Only Reference Materials
CS 1301 • Batch 47 • Educator Resource
Instructional Plan & Interactive Canvas Answer Key • دليل المعلم الإرشادي
TEACHER GUIDE
Part 2: Workbook Canvas Guided Solutions (Slides 16 - 31)
16-20 Java Infrastructure & Compilation Phases (مراحل تطوير الجافا)
WORA Conceptual Meaning: "Write-Once, Run-Anywhere" implies bytecode (.class) portability. Students must note that compiled code is fully independent of OS calls, using JVM abstraction layers.
The Compilation Command: The compiler command is javac MyFile.java. The execution command is java MyFile. Common student error is calling java MyFile.class (explain that .class suffix should be omitted in running command).
Security Verification Phase: Phase 4 (Bytecode Verifier) is the security gatekeeper, checking bytecodes prior to runtime execution.
21-30 JVM Engine Mechanics & C++ Architectural Divergence
JVM Core Components: 1. Class Loader (loads class to memory), 2. Bytecode Verifier (secures runtime bounds), 3. Interpreter (converts bytecode to native OS system calls).
C++ Native Link (WOCA vs WORA): C++ uses "Write-Once, Compile-Anywhere" (WOCA) requiring complete local recompilation for every native processor architecture. Java uses "Write-Once, Run-Anywhere" (WORA), bypassing compilation on client systems entirely via standard JVM containers.
31 Errors Classification (صنوف الأخطاء البرمجية وطرق تتبعها)
Syntax vs. Runtime Errors
Syntax errors block compiling completely (compile-time). Runtime errors only show up mid-execution, crashing the active process dynamically.
Logical Errors Difficulty
Logical errors are the hardest to debug because compilers do not throw warnings or trace errors; the program runs cleanly but produces bad output.
Common Student Misconceptions & Pedagogical Strategies
❌ Misconception: JVM executes Source Code Directly
Many students believe the Java Virtual Machine interprets standard `.java` files directly. Instructors must explicitly stress that JVM only understands compiled `.class` bytecodes.
💡 Strategy: The Interactive Notes Canvas Check
Use the workbook's white grid note canvas actively. Have students sketch out the compilation-execution pipeline live, drawing the boundaries between file system directories and RAM memory spaces.
CS 1301 Teacher Guide • Page 2 of 2 Lenny Learning Instructional Design