© 2026 Lenny Learning Inc.
Java Programming Foundations • Sequence • Lenny.com
Java Programming Foundations A comprehensive introductory sequence on Java Programming Foundations based on CS 1301. It covers Problem Solving, Program Structure, Identifiers & Data Types, and Operators with bilingual English code and Arabic explanations, tailored with interactive student note-taking slides.
YA Yara Alqwaizani Problem Solving and Algorithms
This lesson introduces the foundational steps of problem-solving in computer science, covering problem definition, problem analysis (inputs, outputs, and processing), and solution design using pseudocode and flowcharts with tracing examples.
Problem Solving Slides
A highly polished, comprehensive bilingual slide deck for Problem Solving and Algorithms. Includes rich visual explanations, detailed code/pseudocode, flowcharts, step-by-step trace guides, and an adjacent student note-taking workspace slide for every lecture slide.
Java Program Structure
This lesson introduces the structure of Java programs, structured programming vs object-oriented programming (OOP), the layout of a simple Java program, braces nesting, and the output statement with its line-by-line components explanation.
Program Structure Slides
A highly polished, comprehensive bilingual slide deck for Java Program Structure. Explains Structured vs OOP, object-oriented design examples, program layout, line-by-line main method explanation, nested braces, string concatenation, and syntax debugging with adjacent student note slides.
Identifiers and Data Types
This lesson covers Java identifiers rules, valid/invalid examples, variables declaration and initialization, constants, and a detailed breakdown of Java primitive data types (integers, decimals, characters, ASCII/Unicode, and boolean).
Identifiers and Data Types Slides
A highly polished, comprehensive bilingual slide deck for Identifiers and Data Types. Covers rules of identifiers, variables vs constants, primitive data types (integers, decimals, char, ASCII, and boolean) with memory structures, variable declarations, a visual program tracer, and adjacent student note slides.
Operators and Type Casting
This lesson covers Java operators including assignment, arithmetic, increment/decrement, relational, and logical operators. It also details the order of precedence, compound assignment, and explicit vs implicit type casting with memory traces.
Operators Casting Slides
A highly polished, comprehensive bilingual slide deck for Operators and Type Casting. Covers all five types of Java operators (assignment, arithmetic, increment/decrement, relational, logical), precedence rules, compound assignment, and explicit/implicit type casting with memory traces.
Java Programming Foundations A comprehensive introductory sequence on Java Programming Foundations based on CS 1301. It covers Problem Solving, Program Structure, Identifiers & Data Types, and Operators with bilingual English code and Arabic explanations, tailored with interactive student note-taking slides.
YA Yara Alqwaizani
Problem Solving Slides 0101
TERMINAL_ACTIVE
CS 1301 • CHAPTER 2
Foundations of CS
PROBLEM SOLVING & ALGORITHMS
حل المشكلات وتصميم الخوارزميات
رحلتك الأولى لتفكير المبرمجين المحترفين: كيفية تحليل المشكلات، بناء الرموز الزائفة (Pseudocode)، ورسم المخططات الانسيابية المتكاملة (Flowcharts).
الدفعة 47 • Batch 47
Slide 1 / 28
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 1: مقدمة الفصل
Name: ______________________ Date: _________
أفكار أولية وأهداف التعلم الشخصية: NOTEBOOK SPACE
اكتب هنا ملاحظات المحاضرة أو النقاط الهامة من الأستاذ. CS 1301 - Interactive Notes
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 2 / 28
LECTURE OUTLINE • مخطط المحاضرة
CHAPTER 2.1
Academic Core Areas
1 Introduction to Problem Solving Steps
2 Problem Definition (Defining the Targets)
3 Problem Analysis (Inputs, Outputs, Processing)
4 Solution Design (Algorithms, Pseudocode, Flowcharts)
5 Practical Mathematical & Logical Examples
المحاور التعليمية الأساسية
١ مقدمة إلى خطوات حل المشكلات البرمجية
٢ تحديد المشكلة (فهم الأهداف والمخرجات المستهدفة)
٣ تحليل المشكلة (تحديد المدخلات والمخرجات والمعالجة)
٤ تصميم الحل (كتابة الرمز الزائف ورسم خرائط التدفق)
٥ أمثلة وتطبيقات رياضية ومنطقية متكاملة
تأسيس تفكير المبرمجين المحترفين Slide 3 / 28
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 3: مخطط موضوعات الفصل
CS 1301 Study Companion
أسئلة أو استفسارات أود طرحها على أستاذ المادة: QUESTION CATCHER
اكتب أي نقاط تعتقد أنها تحتاج لمزيد من التفصيل لتستشير المحاضر عنها. Batch 47 CS Study Grid
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 4 / 28
STEPS
1. Introduction to Problem Solving (خطوات حل المشكلات)
Core Flow
Phase 01
Problem Definition تحديد وتوصيف المشكلة
وهي الخطوة الأولى والأساسية؛ حيث نقوم بتعريف المشكلة وتحديد الهدف النهائي بوضوح شديد. الإجابة الواضحة والمباشرة على السؤال: ما هو هدفنا النهائي؟
Target Identification
Phase 02
Problem Analysis تحليل وتفكيك المشكلة
تقسيم وتفكيك المسألة لتحديد ثلاثة أجزاء رئيسية بدقة:
• المدخلات الأساسية (Inputs)
• المخرجات المطلوبة (Outputs)
• عمليات المعالجة والحساب (Processing)
Inputs • Outputs • Processing
Phase 03
Solution Design تصميم خطوات الحل
كتابة الخطوات التفصيلية الدقيقة التي سيتبعها الحاسب الآلي للوصول للهدف. نعبّر عنها بطريقتين رئيسيتين:
• الرمز الزائف (Pseudocode)
• المخطط الانسيابي (Flowchart)
Algorithms Development
فهم هذه الخطوات الثلاث يحميك من كتابة أكواد برمجية خاطئة Slide 5 / 28
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 5: خطوات حل المشكلات الأساسية
Interactive Student Workbook
تمثيل تفاعلي لنموذج (Input → Process → Output) بناءً على شرح الأستاذ: DIAGRAMMING WORKSPACE
ارسم هنا مخطط تدفق المعلومات مبسطاً، أو دوّن المعادلة الأساسية للخطوات
Draw Info Flow Graph or note down core equation steps here.
تذكر: المدخلات (Input) تأتي دائماً أولاً، تليها المعالجة (Processing)، ثم المخرجات (Output). CS 1301 Grid
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 6 / 28
2 & 3. Problem Definition & Analysis (تحديد المشكلة وتحليلها تفصيلياً)
CS 1301 Academic Core
What is/are your Target(s)?
قبل كتابة أي سطر كود، حدد هدف البرنامج بدقة من خلال صياغة المشكلة.
Example: "أوجد مجموع رقمين يدخلهما المستخدم"
Target → Sum of 2 numbers
Analysis Template
How to Analyze Any Problem? (كيف تحلل أي مشكلة؟)
01
Identify Inputs (تحديد المدخلات الأساسية)
تحديد ما يحتاج إليه البرنامج للبدء، ومصدره (مثال: قيم يدخلها المستخدم من لوحة المفاتيح).
02
Identify Outputs (تحديد المخرجات المطلوبة)
تحديد النتائج النهائية التي يجب طباعتها أو إظهارها للمستخدم بعد انتهاء الحسابات.
03
Identify Processing (العمليات الحسابية والمعالجة)
المعادلات والتحويلات الرياضية أو الخطوات المنطقية للربط بين المدخلات والمخرجات (مثال: sum = x1 + x2).
تأسيس المهارات التحليلية للمشكلات الهندسية Slide 7 / 28
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 7: توصيف المشكلة وتحليلها تفصيلياً
CS 1301 Workbook
اكتب المشكلة التي يطرحها الأستاذ الآن، وقم بتحليلها إلى (مدخلات، معالجة، مخرجات): LIVE ANALYSIS EXERCISE
المدخلات (Inputs)
المعالجة (Processing)
المخرجات (Outputs)
تطبيق التفكير المنهجي المنظم هو سر نجاح الأنظمة الكبيرة. Batch 47 Interactive Work Area
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 8 / 28
Analysis Examples 1 & 2 (أمثلة عملية للتحليل)
Standard Examples
EXAMPLE 01
برنامج جمع رقمين
Write a program that prints the sum of two numbers.
x1, x2 (entered by user) المدخلات:
sum = x1 + x2 المعالجة:
sum المخرجات:
EXAMPLE 02
برنامج متوسط ثلاثة أرقام
Write a program that prints the average of three numbers.
x1, x2, x3 (entered by user) المدخلات:
avg = (x1 + x2 + x3) / 3 المعالجة:
avg المخرجات:
تنبيه: ترتيب العمليات الحسابية هام جداً (استخدم الأقواس لحساب المتوسط الحسابي) Slide 9 / 28
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 9: أمثلة تحليل المشكلات (الجمع والمتوسط)
CS 1301 Workbook
سؤال مهم: لماذا نضع الأقواس حول عملية الجمع في حساب المتوسط الحسابي؟ اشرحها رياضياً وبرمجياً: PRECEDENCE EXPLANATION
تلميح: لمعامل القسمة (/) أولوية أعلى من معامل الجمع (+). عدم وضع الأقواس يؤدي لنتيجة خاطئة تماماً. Interactive Study Area
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 10 / 28
Analysis Example 3: Cube Geometry (تحليل المثال الثالث: هندسة المكعب)
Complex Variables
MULTIPLE OUTPUTS
Write a program that prints the volume of a cube and the sum of its surfaces' areas.
Inputs (المدخلات)
طول ضلع المكعب ويرمز له بـ:
Side length (L)
Processing (المعالجة)
Volume (V) = L * L * L
Surface Area (A) = (L * L) * 6
Outputs (المخرجات)
مخرجان منفصلان تماماً:
• حجم المكعب (Volume V)
• المساحة السطحية (Surface A)
تذكر: يمكن للمشكلة الواحدة أن تتضمن مدخلاً واحداً وينتج عنها مخرجات متعددة Slide 11 / 28
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 11: تطبيق هندسة المكعب والمخرجات المتعددة
CS 1301 Study Companion
مساحة لتتبع تدوين المتغيرات وحساب الحجم والمساحة لضلع قيمته (L = 4): MANUAL TRACING AREA
احسب النواتج بنفسك: الحجم لـ 4 هو 64، والمساحة هي 96. هل تساوت المعادلات؟ Batch 47 Practical Math
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 12 / 28
DESIGN
4. Solution Design: Algorithms (الخوارزميات وتصميم الحل)
Defining Algorithms
Academic Definition
An Algorithm is a plan, a set of step-by-step instructions to resolve a problem.
It must be finite, precise, unambiguous, and guarantee a correct result in a finite number of steps regardless of the programming language used.
التعريف الأكاديمي والعملي
الخوارزمية هي خطة عمل، ومجموعة من التعليمات التفصيلية خطوة بخطوة لحل مشكلة محددة.
تعتبر الخوارزمية مستقلة تماماً عن لغة البرمجة (Programming Language Independent). هذا يعني أن الخوارزمية المكتوبة بلغة سليمة يمكن تحويلها بسهولة بالغة إلى جافا، بايثون، أو ++C.
Read all inputs
Calculate operations
Print the expected outputs
سميت الخوارزميات نسبة إلى العالم المسلم العبقري "محمد بن موسى الخوارزمي" Slide 13 / 28
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 13: مفهوم الخوارزميات والتعريف الأكاديمي
CS 1301 Workbook
اكتب بلغتك الخاصة تعريفك للخوارزمية وكيف تختلف عن الكود البرمجي الفعلي: ALGORITHM CONCEPT NOTES
الخوارزميات هي لغة العقل قبل أن تصبح لغة الكمبيوتر. Batch 47 Interactive Notebook
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 14 / 28
Algorithms Representations (تمثيل وكتابة الخوارزميات)
Two Representation Methods
Pseudo Code الرمز الزائف
لغة غير رسمية تشبه لغة البشر الطبيعية، تدمج بين التعبيرات الإنجليزية والبرمجة الرياضية دون الارتباط بقواعد نحوية معقدة لسينتكس معين.
لا يعتبر لغة برمجة ولا يمكن تشغيله مباشرة على الكمبيوتر
يحتوي على خطوات واضحة جداً للمدخلات والعمليات والمخرجات
يسهل تحويله للغاية لأي لغة برمجة مثل Pascal, Java, C++
Flowchart المخطط الانسيابي
تمثيل رسومي وتوضيحي بالرسم الهندسي للخوارزمية. يوضّح تدفق البيانات والعمليات الرياضية والمنطقية والقرارات التفرعية بالتفصيل البصري.
يستخدم أشكالاً هندسية قياسية موحدة (Standard Symbols)
يجعل تتبع التدفق والقرارات المنطقية سهلاً جداً بالعين المجردة
يساهم في فهم المسارات المعقدة والدورات التكرارية بسرعة
تنبيه امتحاني: الرمز الزائف لا يحتوي على تفاصيل رسم هندسي، بينما خريطة التدفق تعتمد كلياً على الأشكال الهندسية المحددة Slide 15 / 28
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 15: الرمز الزائف مقابل المخططات الانسيابية
CS 1301 Study Guide
مساحة للمقارنة التوضيحية أو رسم خريطة ذهنية سريعة تجمع الطريقتين: DIAGRAMMING WORKSPACE
اكتب بخط يدك مثالاً واحداً مألوفاً كخلفية نظرية للمحاضرة. Batch 47 CS Workspace
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 16 / 28
Pseudo Code Examples (أمثلة تفصيلية للرمز الزائف)
Practical Code Design
SUM OF TWO EXAMPLE 01
pseudocode_sum.txt UTF-8
1. Start the program
2. Read first number as N1
3. Read second number as N2
4. Add both numbers:
Sum = N1 + N2
5. Print the result (Sum)
6. End the program
مثال جمع عددين مع تخزينهما بمتغيرات.
AVG OF THREE EXAMPLE 02
pseudocode_avg.txt UTF-8
1. Start the program
2. Read num1, num2, num3
3. Calculate total:
sum = num1+num2+num3
4. Calculate average:
avg = sum / 3
5. Print the result (avg)
6. End the program
مثال حساب المتوسط الحسابي لثلاثة أعداد.
CUBE GEOMETRY EXAMPLE 03
pseudocode_cube.txt UTF-8
1. Start the program
2. Read side length (L)
3. V = L * L * L
4. S = 6 * L * L
5. Print Volume (V)
6. Print Surface (S)
7. End the program
مثال حساب حجم ومساحة مكعب بمخرجات متعددة.
تنبيه: نستخدم خطاً تسلسلياً واضحاً ومرتباً من الرقم 1 حتى النهاية في جميع الرموز الزائفة Slide 17 / 28
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 17: كتابة الرمز الزائف وتتبع النواتج
CS 1301 Interactive Notebook
تمرين تدريبي: جرب كتابة رمز زائف لحساب مساحة المستطيل (العرض × الطول) بناءً على الشرح: PRACTICE AREA
تلميح: المدخلات ستكون الطول والعرض، والمعادلة هي المساحة = الطول × العرض. Batch 47 Interactive Study Companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 18 / 28
Flowchart Symbols Glossary (دليل رموز المخطط الانسيابي)
Standard Architectural Symbols
Shape (الشكل الهندسي)
Standard Name
Academic Explanation (شرح الوظيفة الأكاديمية)
Oval (شكل بيضاوي)
Start / End
بداية ونهاية البرنامج البرمجي (Start / End). لا يمكن رسم خريطة بدونهما.
Parallelogram
Input / Output
إدخال البيانات وقراءتها من المستخدم، أو طباعة وعرض النتائج النهائية على الشاشة (Read / Print).
Rectangle
Processing
تنفيذ العمليات الحسابية والمنطقية وإسناد القيم للمتغيرات في الذاكرة (Assignment & Math operations).
Diamond
Decision
اتخاذ القرارات التفرعية الشرطية؛ ينتج عنه مسار بـ True/False أو Yes/No للمقارنة والتحقق المنطقي.
تنبيه هام جداً: لا يجوز استخدام شكل هندسي لغير الغرض المخصص له إطلاقاً Slide 19 / 28
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 19: رموز المخطط الانسيابي ووظائفها الأكاديمية
CS 1301 Workbook
تدريب على الرسم اليدوي الدقيق للأشكال الأربعة الأساسية مع تسمية كل شكل باللغة الإنجليزية: DRAWING DRILL AREA
OVAL
Start / End
PARALLELOGRAM
Input / Output
RECTANGLE
Processing
DIAMOND
Decision
احرص على رسم خطوط متوازية ومتناسقة ليسهل على الآخرين قراءة مخططك بوضوح. Batch 47 Design Studio
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 20 / 28
Standard Flowchart Construction (أمثلة المخططات الانسيابية)
Visual Implementation
FLOWCHART 1 مخطط جمع رقمين تفصيلي
Start
Read n1
Read n2
Sum = n1 + n2
Print Sum
End
لاحظ استخدام الأشكال الهندسية الصحيحة لكل مرحلة من المراحل.
FLOWCHART 2 مخطط حساب متوسط 3 أرقام
Start
Read x1, x2, x3
Avr = (x1 + x2 + x3) / 3
Print Avr
End
يمكن دمج قراءة المتغيرات الثلاثة في شكل متوازي أضلاع واحد لتسهيل الرسم والاختصار المقبول.
تنبيه هام جداً: اتجاه الأسهم (Flowlines) يجب أن يوضح بدقة مسار تنفيذ الكود من الأعلى للأسفل Slide 21 / 28
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 21: التدريب على المخططات الانسيابية البسيطة
CS 1301 Study Workbook
ارسم هنا وبشكل يدوي المخطط الانسيابي لحساب حجم ومساحة المكعب بناءً على المثال المتقدم: FLOWCHART DRAWING CANVAS
ارسم المخطط كاملاً هنا مع الأسهم المناسبة
Start → Read L → V = L*L*L, S = 6*L*L → Print V, S → End
تأكد من عدم نسيان الأسهم الرابطة بين الكتل للحفاظ على منطق الخريطة. Batch 47 Custom Drawing Lab
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 22 / 28
Advanced Flowcharts: Conditionals (التدفقات الشرطية المتقدمة)
Conditional Branches
TAX ALGORITHM Example 4
If salary < 5000 SAR then tax = 10%;
otherwise, tax = 8%.
1. Read salary
2. IF (salary < 5000) THEN:
tax = 0.1 * salary
ELSE:
tax = 0.08 * salary
3. Print tax
يتم تفرع المخطط عند شكل المعين إلى مسارين مختلفين بناءً على الشرط.
ABSOLUTE VALUE Example 5
Print absolute value of a number x (|x|).
If x < 0 then x = x * -1.
1. Read x
2. IF (x < 0) THEN:
x = x * -1
ELSE:
Do Nothing (لا تفعل شيئاً)
3. Print x
مثال هام جداً لتوضيح الشروط أحادية الاتجاه (لا يوجد بها عمليات في حال عدم تحقق الشرط).
تنبيه امتحاني: شكل المعين (Diamond) هو الوحيد الذي يخرج منه سهمان مختلفان (True / False) Slide 23 / 28
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 23: الشروط والتفرع المنطقي لحساب الضرائب والقيمة المطلقة
CS 1301 Workbook
ارسم هنا تمثيلاً بيانياً للمعين الخاص بشرط حساب الضرائب (salary < 5000): BRANCHING SCHEMATIC AREA
تتبع قيم الذاكرة للضريبة لموظف راتبه 6000 وآخر راتبه 4000
Trace the variable states for salary values of 6000 and 4000 below.
تأكد من كتابة الشرط بوضوح داخل المعين لتسهيل تتبع الفروع المنطقية. Batch 47 Interactive Study Companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 24 / 28
Complex Logic: Loops & Guard Conditions (الحلقات التكرارية)
Guarding against Division by Zero
ZERO DIVISION EXCEPTION GUARD
Example: Enter X and print Y = (X - 2) / X. Note: if X = 0, re-enter value of X again!
// Pseudocode logic
input: X
process:
if (X == 0) then:
Re-enter X again (loop validation)
Y = (X - 2) / X
output: Y
لماذا نهتم بالتحقق المنطقي؟
محاولة قسمة أي عدد على صفر تؤدي فوريّاً لتوقف البرنامج وحدوث خطأ فادح في نظام التشغيل (ArithmeticException).
المسار الدائري التكراري (Loop Path)
عندما تكون قيمة X == 0، يقوم سهم خريطة التدفق بإعادة المستخدم إلى نقطة الإدخال مجدداً وبشكل لا نهائي حتى يدخل قيمة صحيحة ومقبولة للقسمة.
تسمى هذه الخطوة البرمجية الهامة بـ "التحقق من صحة البيانات المكتوبة" (Data Validation) Slide 25 / 28
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 25: تفادي الأخطاء البرمجية والقسمة على صفر تكرارياً
CS 1301 Study Guide
مساحة مخصصة لرسم مسار الدورة التكرارية (Loop Arrow) وإعادة إدخال قيمة X من لوحة المفاتيح: LOOP TRACING GRAPH
تلميح: يجب أن يرتبط سهم الـ Yes الخاص بكون X == 0 ليعيد المستخدم إلى ما قبل خطوة الإدخال مجدداً. Batch 47 Logic Guard Studio
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 26 / 28
TEST
Self-Check Exercises: Debugging (تصحيح أخطاء مخططات التدفق)
Interactive Quiz
Task 1: Detect the Faults (اكتشف الخلل في خريطة التدفق)
تأمل المخططات المعطاة من الأستاذ في ورق العمل؛ كيف يمكن لعملية حسابية (Product = x1 * x2) أن تسبق خطوة قراءة المتغيرات من المستخدم برسم متوازي الأضلاع؟
• خطأ برمجي فادح: استخدام المتغير قبل إسناد قيمة له!
• الترتيب الصحيح: البداية ← القراءة ← الحساب ← الطباعة ← النهاية.
Variables must be declared & initialized first!
Task 2: Challenge Exercises (تمارين التحدي الأكاديمي)
قم بتصميم خوارزمية وكتابة الرمز الزائف ثم المخطط الانسيابي للمسائل الأكاديمية التالية:
1. تحويل درجة الحرارة من مئوية إلى فهرنهايت (F = C * 1.8 + 32).
2. حساب عدد الثواني في عدد محدد من الدقائق والساعات.
3. التحقق مما إذا كان الطالب ناجحاً أم راسباً بالشرط (grade ≥ 60).
Challenge: Solve in your workspace slide!
حل هذه التمارين بنفسك يضمن لك الحصول على أعلى الدرجات في الاختبارات والتقييمات الأكاديمية Slide 27 / 28
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 27: حل تمارين التحدي وتصحيح خوارزميات التدفق
CS 1301 Workbook
اكتب هنا الكود الزائف وتخطيط التدفق لحساب درجة النجاح أو تحويل الحرارة وفقاً للمناقشة الصفية: PRACTICE AREA
احرص على كتابة الكود بنفسك؛ لا شيء يضاهي متعة فهم البرمجة المنطقية. Batch 47 Interactive Study Companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 28 / 28
Program Structure Slides {}
COMPILER_READY
CS 1301 • CHAPTER 2.2
Java Architecture
JAVA PROGRAM STRUCTURE
بنية ومكونات برنامج الجافا
استكشف المكونات الأساسية لبناء الكود بلغة الجافا: أساليب البرمجة، والبرمجة الكائنية (OOP)، وهيكل البرنامج المصدري مع تتبع دقيق لأوامر الطباعة.
الدفعة 47 • Batch 47
Slide 1 / 18
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 1: مقدمة بنية برنامج الجافا
Name: ______________________ Date: _________
ملاحظاتي وأهدافي حول بنية البرنامج والمفاهيم الكائنية: STUDENT NOTES
اكتب ملاحظاتك لمراجعتها لاحقاً قبل الاختبارات. CS 1301 - Structure Study Companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 2 / 18
Programming Approaches (أساليب البرمجة الأساسية)
STRUCTURED vs OOP
Structured Programming البرمجة الهيكلية (النمطية)
تُعرف أيضاً بالبرمجة النمطية (Modular Programming)؛ حيث يتم تفكيك المشكلة الأساسية الكبيرة إلى أجزاء أصغر تسمى (Modules). يتم حل وتحليل كل جزء بمفرده ثم دمج الحلول كاملة.
Pascal, Fortran, C أمثلة اللغات:
Object-Oriented Programming (OOP) البرمجة الكائنية التوجه
تركز كلياً على تحديد المكونات الحية للمشكلة ككائنات مستقلة (Objects). لكل كائن خصائصه وبياناته الخاصة (Data)، والعمليات البرمجية التي يمكنه تنفيذها (Methods).
C++, Java, Python أمثلة اللغات:
OBJECT (الكائن المتكامل)
DATA (البيانات)
METHODS (العمليات)
تنبيه: لغة الجافا مبنية كلياً على نمط البرمجة الكائنية OOP منذ السطر الأول Slide 3 / 18
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 3: البرمجة الهيكلية مقابل OOP
CS 1301 Study Guide
ارسم كروكي بسيط يوضح ارتباط (Data) والـ (Methods) ككتلة واحدة في كائن (Object) كما شرح الأستاذ: CONCEPT VISUALIZATION AREA
تلميح: تخيل الـ Object كحاوية متكاملة مغلقة تحتوي بداخلها على البيانات والعمليات. Batch 47 Interactive Workbook
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 4 / 18
OOP Architectural Design Examples (أمثلة التصميم الكائني)
Standard Examples
VIDEO STORE RENTAL Example 01
كائنات النظام الأساسي: Video, Customer
1. Video Object Data: name, company, copies Methods: addCopies, reduceCopies
2. Customer Object Data: name, customerID, VIP Methods: addCustomer, removeCustomer
يوضح هذا المثال كيفية تحديد البيانات والأساليب المناسبة لكل مكون لتصميم قاعدة البيانات برمجياً.
Identifiers and Data Types Slides 01
DATA_TYPES_ACTIVE
CS 1301 • CHAPTER 3
Memory & Identifiers
IDENTIFIERS & DATA TYPES
المعرفات، المتغيرات، وأنواع البيانات في جافا
تعلم قواعد تسمية المتغيرات، الفروقات الهيكلية بين الثوابت والمتغيرات، وتوزيع الذاكرة لجميع أنواع البيانات الأولية (Primitive Data Types) في لغة الجافا.
الدفعة 47 • Batch 47
Slide 1 / 18
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 1: مقدمة المتغيرات وأنواع البيانات
Name: ______________________ Date: _________
ملاحظات التعلم الشخصية ومفاهيم المتغيرات والثوابت: STUDENT NOTES
اكتب ملاحظاتك وتلخيص المحاضرة لمراجعتها لاحقاً. CS 1301 - Memory Companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 2 / 18
Java Identifiers & Rules (قواعد تسمية المعرفات في جافا)
IDENTIFIER SYNTAX RULES
قواعد التسمية الأكاديمية الصارمة:
قد يحتوي المعرف فقط على: الأحرف الحرة (a-z, A-Z)، والأرقام (0-9)، والشرطة السفلية (_)، وعلامة الدولار ($). ✔
يمنع منعاً باتاً أن يبدأ المعرف برقم! (مثال: 2nd هو اسم غير قانوني). ✖
يمنع استخدام أي من الكلمات المحجوزة في لغة الجافا (مثل: public, class, void, static). ✔
لغة الجافا حساسة جداً لحالة الأحرف (Case Sensitive)؛ الكلمات التالية تمثل ثلاثة معرفات مختلفة تماماً: number ≠ Number ≠ NUMBER ✔
Examples Comparison
Legal (قانوني) payRate, _Update
Legal (قانوني) $Amount, pay_rate
Illegal (space) "add salary"
Illegal (dash) mid-term
Illegal (Reserved) public
تنبيه: المعرفات (Identifiers) هي الأسماء التي يختارها المبرمج لتسمية المتغيرات والثوابت والدوال والكلاسات Slide 3 / 18
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 3: قواعد تسمية المعرفات وتحديد المقبول منها
CS 1301 Workbook
صنف المعرفات التالية التي يطرحها الأستاذ الآن، واشرح سبب عدم قبول الخاطئ منها: LIVE PRACTICE GRID
1. employee_salary
النوع والسبب
2. 4ever
النوع والسبب
3. first-num
النوع والسبب
تذكر: الرموز الخاصة مثل (-) و (+) والمسافات يمنع استخدامها تماماً في المعرفات. Batch 47 Interactive Study Companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 4 / 18
Variables vs. Constants (المتغيرات مقابل الثوابت في الذاكرة)
Memory Anatomy
MUTABLE MEMORY
1. Variables المتغيرات
هو مساحة محجوزة في الذاكرة العشوائية (RAM) لتخزين قيمة قابلة للتعديل والتبديل والاستبدال أثناء تشغيل البرنامج البرمجي.
Operators Casting Slides ++
OPERATORS_READY
CS 1301 • CHAPTER 4
Logic & Math
OPERATORS & TYPE CASTING
المعاملات البرمجية وتحويل الأنواع في جافا
أتقن الحسابات والمنطق في جافا: المعاملات الحسابية، تفرعات الزيادة والنقصان (Pre/Post)، المعاملات المركبة والمنطقية، مع تفصيل كامل للتحويل بين الأنواع (Type Casting).
الدفعة 47 • Batch 47
Slide 1 / 18
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 1: مقدمة المعاملات وتحويل الأنواع
Name: ______________________ Date: _________
ملاحظات التعلم وأولويات العمليات المنطقية والحسابية: STUDENT NOTES
اكتب ملاحظاتك وتلخيص القوانين الهامة هنا. CS 1301 - Operators Study Companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 2 / 18
Five Types of Java Operators (أنواع المعاملات الخمسة)
OPERATORS CLASSIFICATION
Assignmentالإسناد (=)
تخزين وإسناد قيمة بمتغير بالذاكرة.
Arithmeticالحسابية (+,-,*,/,%)
تنفيذ الحسابات الرياضية والضرب والنسبة المئوية.
Incrementالزيادة والنقصان
الزيادة أو النقص بـ 1 صريح (++, --).
Relationalالمقارنة (<,>,==,!=)
مقارنة القيم وإعادة قيمة بوليانية صريحة.
Logicalالمنطقية (&&,||,!)
دمج الشروط المركبة وبناء بوابات التحقق.
1. معامل الإسناد Assignment (=):
يقوم بنقل قيمة الطرف الأيمن بالكامل وتخزينها بالمتغير المذكور بالطرف الأيسر. للذاكرة ثلاثة أشكال للإسناد:
x = 10; // Literal assignment
x = y; // Variable copy assignment
x = x * y; // Expression assignment
تنبيه هام: يتم تنفيذ الحسابات والتعابير أولاً بالكامل في الجانب الأيمن قبل إسناد القيمة للجانب الأيسر Slide 3 / 18
مسودة وملاحظات الطالب • Student Workspace
تخص الشريحة 3: أنواع المعاملات ومعامل الإسناد ذو الاتجاه الواحد
CS 1301 Workbook
تمارين التتبع السريع: لو أعلنا (x=10, y=15) ثم نفذنا (x=y)؛ ما هي القيمة النهائية لـ x و y؟ اشرح بالمسودة: RAM TRACING NOTES
تلميح: كلا المتغيرين سينتهي بهما المطاف بقيمة 15 بالذاكرة؛ لأن قيمة y تم نسخها بالكامل فوق قيمة x المدمرة. Batch 47 Interactive Notebook
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 4 / 18
2. Arithmetic: Division & Modulus (معاملات القسمة وباقي القسمة)
Mathematical Nuances
TRUNCATION RULE
Integer Division (القسمة الصحيحة)
عند قسمة رقم صحيح على رقم صحيح آخر، يتم فوريّاً حذف وتجاهل الجزء العشري بالكامل دون تقريب (Truncation)!
UNIVERSITY REGISTRAR Example 02
كائنات نظام التسجيل: Student, Course 1. Student Object Data: name, ID, GPA Methods: addStudent, updateGPA
2. Course Object Data: code, name, pre-requisites Methods: addCourse, defineSchedule
مثال مألوف جداً يمثل الهيكل الداخلي لموقع الجامعة الذي تسجل من خلاله موادك الدراسية الآن!
تنبيه امتحاني: يتم تصنيف البيانات كمتغيرات (Variables)، والعمليات كدوال برمجية (Functions / Methods) Slide 5 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 5: أمثلة التحليل الكائني وتحديد العناصر
تمارين التفكير المنظم: فكر في نظام المستشفى؛ حدد كائناً واحداً (مثل المريض) واكتب بياناته وعملياته يدوياً: HOSPITAL OBJECT SPECS
Patient Object Data (بيانات المريض)
Patient Object Methods (عمليات المريض)
تحليل وتصميم الأنظمة قبل كتابة الكود يوفر ما يقارب 80% من الوقت الضائع في إصلاح الأخطاء لاحقاً. Batch 47 Design Studio
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 6 / 18
Java Program Layout (الهيكل العام لبرنامج الجافا) ProgramLayout.java Java SE 17
1 // import necessary libraries
2 public class ProgramLayout
3 {
4 public static void main(String[] args)
5 {
6 // Declaration section: variables
7 // Input section: enter values
8 // Processing section: calculations
9 // Output section: display result
10 } // end main
11 } // end class
الملفات والـ Class الأساسي يجب أن يتطابق اسم الكلاس (ProgramLayout) تماماً مع اسم الملف على القرص الصلب المسمى بـ ProgramLayout.java (حالة الأحرف حساسة).
الدالة الرئيسية Main Method نقطة انطلاق وتشغيل أي برنامج جافا (Entry Point). بدون كتابة السطر الرابع والخامس لا يمكن تشغيل البرنامج مطلقاً.
تنبيه: الأقواس المتعرجة { } تحدد النطاق الإنشائي والحدودي لكل جزء في البرنامج Slide 7 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 7: هيكل قالب برنامج جافا الأساسي
اكتب القالب الأساسي يدوياً غيباً الآن لتتأكد من حفظك التام للكلمات الأساسية ومكان الأقواس: CODING DRILL AREA
تلميح: انتبه لحالة الحرف الأول من الكلمات الاحتياطية وتوزيع الفراغات وعلامات التعليق //. Batch 47 Coding Companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 8 / 18
Your First Java Program (برنامج الترحيب الأول) Welcome.java Output Statement
// This is my first Java program
public class Welcome
{
public static void main(String[] args)
{
System.out.println("Welcome to Java");
}
}
Program Output (مخرجات التشغيل)
تأمل الملاحظة الأكاديمية: استخدمنا الأمر System.out.println لطباعة النص المكتوب داخل علامتي الاقتباس المزدوجة والمسمى بـ (String Literal)، والانتقال لسطر جديد فوريّاً بعد الطباعة.
جميع الجمل البرمجية المنتهية في جافا يجب أن تتبع بفاصلة منقوطة ; (Semicolon) وإلا حدث خطأ بالكومبايلر Slide 9 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 9: أول برنامج برمجي ومخرجات الترحيب
سؤال تفاعلي: ماذا يحدث لو استخدمنا print بدلاً من println؟ وضح الفرق بالتفصيل مع الرسم: PRINT vs PRINTLN
تلميح: println تطبع وتنتقل لسطر جديد بينما print تطبع ويبقى المؤشر مكانه في نفس السطر. Batch 47 Interactive Note Companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 10 / 18
Line-by-Line Code Glossary (تفكيك وشرح الكود التفصيلي) CS 1301 Academic Standards
Academic Explanation (شرح الوظيفة الأكاديمية بالتفصيل)
يحدد بداية تعليق سطر واحد (Single-line Comment). يتجاهله الكومبايلر تماماً ويستخدم للشرح وتوثيق الأكواد.
كلمة محجوزة (Reserved Word) تحدد نطاق وصول عام للجميع للكلاس أو الدوال البرمجية.
كلمة محجوزة أساسية. كل برنامج جافا يجب أن يتكون من كلاس واحد على الأقل يجمع الأكواد الكائنية.
اسم الكلاس المختار (Class Name)؛ ويجب أن يتطابق مع اسم الملف على القرص الصلب تماماً وحرفيّاً.
أقواس متداخلة ومترابطة (Nested Braces)؛ القوس الذي يفتح أولاً يغلق دائماً في النهاية وبشكل متناسق.
تنبيه امتحاني: الكلمات المحجوزة (Reserved Words) تكتب دائماً بأحرف صغيرة ولا يمكن استخدامها كمعرفات Slide 11 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 11: تفكيك وتحليل مكونات الكود البرمجي بالتفصيل
اكتب هنا معنى دالة (main) وشروط تسمية الكلاس بناءً على شرح الأستاذ وملاحظاتك الشخصية: MAIN METHOD DETAIL NOTES
تذكر دائماً أن الكلمات المحجوزة مثل class و public تكتب كلياً بأحرف صغيرة lowercase. Batch 47 Interactive Notebook
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 12 / 18
Nested Braces Architectural Rule (قاعدة تداخل الأقواس الهندسية) FIRST OPENED, LAST CLOSED
public class Welcome { // Opens class (1)
public static void main(...) { // Opens main (2)
System.out.println("Hello");
قاعدة التداخل المتطابق في برامج جافا، الأقواس المتعرجة { } تتداخل هندسيّاً وبشكل دقيق؛ القوس الذي يفتح أولاً يغلق دائماً في النهاية وبشكل متناسق.
تنبيه امتحاني هام: نسيان إغلاق أحد الأقواس المفتوحة يؤدي فوريّاً لحدوث خطأ هيكلي فادح في الكومبايلر ومنع تشغيل البرنامج كلياً.
استخدم محاذات الكود البرمجي (Indentation) دائمًا لتوضيح مستويات تداخل الأقواس بسهولة Slide 13 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 13: تداخل الأقواس البرمجية ومحاذاة الأسطر
ارسم خطوط تتبع تداخل الأقواس بنفسك لتثبيت المفهوم الأكاديمي: NESTING TRACING EXERCISE
تلميح: احرص دائمًا على مطابقة عدد الأقواس المفتوحة { مع عدد الأقواس المغلقة } في الكود. Batch 47 Design Studio
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 14 / 18
The Concatenation Operator (+) (معامل دمج وتوصيل النصوص) Mathematical vs Text Behavior
ConcatenationDemo.java UTF-8
System.out.println("The sum of 2 and 3 is " + 5);
// Output: The sum of 2 and 3 is 5
System.out.println("7 + 8 = " + (7 + 8));
// Output: 7 + 8 = 15
System.out.println("7 + 8 = " + 7 + 8);
// Output: 7 + 8 = 78 (Be careful!)
السلوك المزدوج للمعامل (+) يعتمد تأثير المعامل (+) تماماً على نوع المدخلات المحيطة به (Operands):
Concatenation (دمج نصوص) إذا كان أحد الطرفين نصاً (String):
Addition (جمع حسابي) إذا كان كلا الطرفين أرقاماً (Numeric):
* تنبيه: غياب الأقواس في المعادلة الثالثة أدى إلى اعتبار رقم 7 كجزء من النص، ثم دمج رقم 8 معه كجزء نصي آخر لينتج "78"!
تنبيه امتحاني هام: الأقواس دائماً تملك أعلى أولوية في التقييم الرياضي والمنطقي Slide 15 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 15: دمج النصوص والجمع الحسابي والفرق البرمجي
اكتب هنا نواتج عمليات الطباعة التي يعطيها الأستاذ لتقييم وفهم قواعد الأولوية: PRECEDENCE PRACTICE SPACE
تذكر دائمًا: جافا تقرأ الكود من اليسار إلى اليمين أثناء تقييم العمليات الحسابية والدمج النصي. Batch 47 Interactive Study companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 16 / 18
Self-Check: Diagnostic Debugging (تصحيح الأخطاء البرمجية) IncorrectProgram.java Syntax Error Debugging
1 /* This is an exercise
2 public IncorrectProgram
3 {
4 public void Main(String args)
5 {
6 System.out.println("I study Java " + "one")
7 System.out.println("3 + 7 = + (7 * 3) );
8 }
مهمة تصحيح الأخطاء الخمسة: ١. السطر ١: لم يتم إغلاق تعليق الفقرة المتعدد الأسطر بـ */.
٢. السطر ٢: نسيان كلمة محجوزة أساسية لتعريف الكلاس وهي class.
٣. السطر ٤: نسيان كلمة static، وجعل حرف M في main كبيراً، وغياب أقواس المصفوفة [].
٤. السطر ٦: نسيان الفاصلة المنقوطة ; لتنهي جملة الطباعة الأساسية.
٥. السطر ٧: لم يتم إغلاق علامة الاقتباس المزدوجة للنص قبل علامة الجمع (+)، وغياب قوس الإغلاق للكلاس في السطر ٩.
تنبيه: محاولة تشغيل هذا الكود في البيئة التطويرية سيعطيك مباشرة تنبيهات تفصيلية تفيدك بمكان ونوع الخطأ Slide 17 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 17: حل تمارين تصحيح الأخطاء وكتابة الكود السليم
اكتب هنا الكود البرمجي كاملاً بعد تصحيحه بشكل سليم ومطابق لشروط لغة الجافا الأكاديمية: CORRECTED CODE WORKSPACE
اكتب الكود بعناية لتتأكد من عدم ترك أي أخطاء سينتكس. Batch 47 Interactive Study Companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 18 / 18
double average; // Value can change
2. Constants الثوابت هو مساحة محجوزة في الذاكرة لتخزين قيمة ثابتة ومقدسة ولا يمكن تعديلها بعد تعريفها للمرة الأولى مطلقاً.
final double PI = 3.14159; // Cannot be overwritten
STATE / VALUE (القيمة المخزنة)
تنبيه هام: الكلمة المحجوزة final هي المسؤولة عن تحويل أي متغير عادي إلى ثابت قانوني في جافا Slide 5 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 5: المتغيرات والثوابت وتوزيع الذاكرة
تمثيل بياني للـ Memory Slots لمتغير وثابت بناءً على شرح المدرس في الذاكرة العشوائية: MEMORY ANATOMY WORKSPACE
تلميح: الثابت يملك كلمة final قبل نوع البيانات مما يعني عدم إمكانية الكتابة الفوقية Overwrite لقيمته. Batch 47 Interactive Study Companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 6 / 18
Primitive Data Types: Integers (أنواع البيانات الرقمية الصحيحة) بدون فواصل عشرية: تستخدم هذه الأنواع الأربعة لحفظ الأرقام الصحيحة تماماً دون أي علامة عشرية.
إشارة الجمع (+): الأرقام الصحيحة الموجبة لا تتطلب وضع إشارة (+) أمامها في الأكواد.
بدون فواصل آلاف: يمنع كتابة الفواصل العادية للفصل بين الآلاف في الكود (مثال: يمنع كتابة 1,024).
تنبيه: تعتبر الكلمات الأربعة byte, short, int, long كلمات محجوزة reserved words بلون أزرق بالمنهج Slide 7 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 7: تصنيفات البيانات الصحيحة byte/short/int/long
اكتب شرحاً مبسطاً لكيفية اتخاذ القرار في اختيار النوع المناسب (مثال: متى نستخدم byte ومتى نستخدم int): DECISION MAKING SPACE
تلميح: يتم اختيار byte للمتغيرات الصغيرة جداً كالأعمار لتوفير مساحة الذاكرة، بينما int هو الخيار الافتراضي. Batch 47 Design Studio
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 8 / 18
Primitive Data Types: Decimals (أنواع البيانات الرقمية العشرية)
float (32 bits) يحفظ الأرقام بـ 7 خانات دقة بعد الفاصلة العشرية. يتطلب إلحاق الحرف f أو F بنهاية الرقم في الكود البرمجي.
DOUBLE PRECISION (DEFAULT)
double (64 bits) يحفظ الأرقام بـ 15 خانة دقة بعد الفاصلة العشرية. يعتبر النوع الافتراضي للأرقام العشرية في لغة الجافا.
التمثيل العلمي للأرقام العشرية (Scientific Notation in Java): Small Decimals 0.0005 = 5.0e-4
تنبيه امتحاني: نسيان الحرف f عند إسناد قيمة عشرية لـ float يتسبب في حدوث خطأ سينتكس فادح Slide 9 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 9: تصنيفات الأرقام العشرية float/double والتمثيل العلمي
تمارين التتبع السريع: حول القيمة 0.0000265 إلى تمثيل جافا العلمي في المسودة واشرحها: SCIENTIFIC CONVERSION WORKSPACE
تأكد من معرفة اتجاه تحريك الفاصلة العشرية لليمين أو اليسار لتحديد الأس الموجب أو السالب. Batch 47 Interactive Notebook
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 10 / 18
Primitive Data Types: Character (نوع البيانات الرمزي char) Character & Unicode Codes
خصائص النوع char الأكاديمية:
• يحجز 16 bits في الذاكرة لتخزين رمز واحد فقط.
• يتم إسناد الرموز بين علامتي اقتباس فردية صريحة (مثال: 'A', 'a').
• يمثل الفراغ (Space) كرمز شرعي ومقبول برمز الفراغ الفعلي المكتوب كـ ' '.
• ملاحظة الفصل: لتبسيط الشرح، يمثل رمز الفراغ في منهجنا بالحرف '~'.
char ch = 'A'; // Stores single symbol
ASCII & Unicode Tables تتعامل جافا داخلياً مع الرموز كأرقام صحيحة فريدة موحدة دولياً مشفرة بنظام (Unicode Coding System). يحتوي النظام على 65,535 رمزاً مشفراً.
• الرمز 'A' يقابله في الذاكرة القيمة الرقمية 65.
• الرمز 'a' يقابله في الذاكرة القيمة الرقمية 97.
يمنع استخدام علامات الاقتباس المزدوجة " " مع char وإلا سيعامل كـ String غير أولي!
تنبيه: الكلمات المكتوبة مثل 'Abc' أو 'Ahmed' لا يمكن تخزينها في char لأنها كلمات متعددة الرموز Slide 11 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 11: نوع البيانات char المشفر بنظام اليونيكود
اكتب رموز ASCII التي يطرحها الأستاذ الآن، مثل كود الرمز '0' أو '1' أو الرموز الخاصة في التتبع: ASCII LIVE TRACKING
تلميح: الرمز 'A' كوده 65 و 'B' كوده 66، بينما 'a' كوده 97. الفرق ثابت دائماً بـ 32 درجة. Batch 47 Interactive Study Companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 12 / 18
Primitive Data Types: Boolean & Logic (المنطق البولياني وشجرة الاختيار)
boolean (1 bit) يحفظ حالة واحدة من اثنتين فقط: إما صواب (true) أو خطأ (false).
يستخدم كلياً للتحكم في الجمل الشرطية وحلقات التكرار (Loops) مثل: X > 10 أو score < 50.
Data Type Selection Tree (شجرة تصنيف واختيار أنواع البيانات) Numeric byte/short/int/long/float/double
Boolean boolean (true/false)
تلميح التصميم: اختر دائماً أصغر نوع بيانات يمكنه استيعاب نطاق القيم المطلوبة لتسريع تشغيل البرنامج.
تنبيه: String هي فئة كائنية (Reference Type) وليست نوع بيانات أولي (Primitive Data Type) بالذاكرة Slide 13 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 13: المنطق البولياني وتوزيع فئات البيانات
اكتب هنا أمثلة على التعبيرات المنطقية وتقييمها بـ (true / false) بناءً على الشرح: BOOLEAN EXPRESSIONS PRACTICE
تلميح: التعبيرات التي تحتوي على معاملات مقارنة مثل > أو < تعيد دائماً قيمة بوليانية صريحة. Batch 47 Interactive Notebook
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 14 / 18
Declarations & Initialization Syntax (قواعد الإعلان عن المتغيرات والثوابت) final dataType IDENTIFIER = value;
• تبدأ دائماً بـ final ليعرف الكومبايلر أنها ثابتة.
• يتم تسمية الثوابت بأحرف كبيرة كلياً وفصل الكلمات بـ _.
• يجب إسناد القيمة فوراً في نفس سطر الإعلان!
final double PI = 3.14159;
final int MAX_SCORE = 100;
dataType identifier [= value];
• يتم حجز مساحة بالذاكرة فور الإعلان عن المتغير.
• يمكن دمج الإعلان عن متغيرات متعددة مفصولة بفاصلة.
• يفضل البدء بأحرف صغيرة واستخدام كاميل كيس (CamelCase).
double average; // declaration only
int x = 10, y = 20; // declared & initialized
تنبيه: محاولة إعادة إسناد قيمة جديدة لثابت PI بعد تعريفه الأول ستسبب خطأ إغلاق 컴بايلر كود فوري Slide 15 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 15: قواعد بناء المتغيرات والثوابت وصياغتها البرمجية
تمارين عملية: أعلن عن ثابت باسم CURRENCY وقيمته الرمزية '$' ومتغيرين x و y بقيم من اختيارك: CODING DRILL WORKSPACE
تذكر: الثوابت الرمزية char يتم إحاطتها بعلامات اقتباس مفردة كـ '$' بينما الأعداد لا تطلب علامات اقتباس. Batch 47 Interactive Workbook
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 16 / 18
Visual Code Tracing: Circle Area (تتبع كود حساب مساحة الدائرة) Step-by-Step Program Execution
DataManipulation.java Trace Log
1 // This program computes circle area
2 public class DataManipulation {
3 public static void main(String[] args) {
4 final double PI = 3.14159; // Constant
5 double radius = 2.5;
6 double area;
7 area = radius * radius * PI; // Process
8 System.out.println("Area is " + area);
9 }
10 }
RAM Tracing (تتبع حالة الذاكرة العشوائية) 3.14159 (final 64bit) PI:
2.5 (double 64bit) radius:
19.6349375 (double 64bit) area:
Console Output: Area is 19.6349375
تنبيه: قبل السطر السابع، متغير area يكون بقيمة غير محددة (Undefined Value) بالذاكرة Slide 17 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 17: تتبع الكود وحالة المتغيرات في الذاكرة العشوائية
تمارين التتبع الإضافية: ارسم جدول تتبع للمتغيرات (Variable Trace Table) في المسودة بقيم مختلفة لـ (radius = 3.0): TRACING TABLE PRACTICE
احسب النواتج يدوياً: لمحيط الدائرة أو المساحة للتأكد من فهمك التام لمعادلات الحساب. Batch 47 Design Studio
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 18 / 18
int x = 15 / 2; // x is 7 (0.5 is truncated!)
double z = 15 / 2; // z is 7.0 (due to integer division first)
double accurate = 15.0 / 2; // accurate is 7.5 (correct double math)
Modulus Operator (باقي القسمة %) يعيد القيمة المتبقية بالكامل من عملية القسمة للعددين الصحيحين.
• أي عدد زوجي mod 2 يعيد دائماً 0.
• أي عدد فردي mod 2 يعيد دائماً 1.
• المعاملات البرمجية لـ % يجب أن تكون من فئة الأعداد الصحيحة.
int rem1 = 5 % 2; // rem1 is 1
int rem2 = 24 % 2; // rem2 is 0
تنبيه هام جداً: عملية باقي القسمة ليست تبديلية إطلاقاً (X % Y ≠ Y % X) Slide 5 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 5: معاملات القسمة وباقي القسمة % وقواعد الأعداد الفردية
تمارين الحساب السريع: احسب ناتج العمليتين التاليتين في المسودة مع الشرح: ( 8 % 3 ) و ( 21 % 7 ): MODULUS PRACTICAL SPACE
احسب النواتج بنفسك: 8 تقسيم 3 يساوي 2 والمتبقي 2؛ بينما 21 تقبل القسمة على 7 تماماً وبدون باقي (0). Batch 47 Design Studio
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 6 / 18
Arithmetic Precedence (جدول تتبع أولويات العمليات الحسابية) Precedence Evaluation Rules
Trace: 3 * 7 - 6 + 2 * 5 / 4 + 6 Step 1: Multiplicative left-to-right (3 * 7) → 21 - 6 + 2 * 5 / 4 + 6
Step 2: Multiplicative left-to-right (2 * 5) → 21 - 6 + 10 / 4 + 6
Step 3: Integer division (10 / 4) → 21 - 6 + 2 + 6
Step 4: Additive left-to-right (21 - 6) → 15 + 2 + 6
Step 5: Additive left-to-right (15 + 2) → 17 + 6
Final Result: (17 + 6) → 23
تسلسل أولويات التنفيذ 2. Multiplicative (* , / , %)
عند تساوي الأولوية (مثال: ضرب وقسمة وباقي قسمة في نفس الوقت)، يتم التقييم الفعلي بالترتيب من اليسار لليمين .
تنبيه: المعادلة أعلاه تعادل تماماً وضع الأقواس كالتالي: (((3*7)-6)+((2*5)/4))+6 Slide 7 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 7: تتبع تسلسل أولويات العمليات الحسابية المتعددة
تمرين تدريبي: تتبع يدوياً المعادلة الحسابية التالية واكتب ناتجها النهائي: 3 * (7 - 6) + 2 * 5 / (4 + 6): EVALUATION WORKSPACE
تلميح: احسب ما بداخل الأقواس أولاً! (7-6)=1 و (4+6)=10. ثم اتبع الأولويات المعتادة لينتج الناتج النهائي (4). Batch 47 Design Studio
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 8 / 18
Compound Operators (المعاملات المركبة للاختصار الحسابي) Exact Equivalent (المعادل الرياضي)
x = x * (y + 7); // Be careful!
أهمية المعاملات المركبة تستخدم معاملات الاختصار (Compound Assignment Operators) لكتابة أكواد مدمجة ومختصرة للغاية وسريعة المراجعة.
تنبيه امتحاني متكرر جداً: المعادلة الثالثة x *= y + 7 تعني حساب الجانب الأيمن أولاً ككتلة واحدة كأنها بين أقواس افتراضية، مما يعني:
x = x * (y + 7);
تنبيه: نواتج تعديل المتغيرات تحدث فوريّاً بالذاكرة العشوائية لتغيير قيمة x القديمة بالقيمة الجديدة المحدثة Slide 9 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 9: المعاملات المركبة وتوزيع الحسابات بالذاكرة
تمارين التتبع: لو كانت قيمة (x=10) وقيمة (y=5)؛ احسب القيمة النهائية لـ x بعد تنفيذ (x *= y + 7) يدوياً: MANUAL TRACING NOTES
احسب بنفسك: y+7 يساوي 12. نضربها في x القديمة (10) لينتج ناتج x الجديد والمحدث وهو 120 تماماً. Batch 47 Interactive Study Companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 10 / 18
3. Increment / Decrement: Pre vs. Post (الزيادة المسبقة واللاحقة) Core Execution Distinction
Pre-Increment (++x) يقوم الكومبايلر بزيادة المتغير أولاً بـ 1 صريح بالذاكرة ، ثم استخدام القيمة المحدثة في تقييم الجملة البرمجية الحالية.
int x = 3;
int y = ++x; // y is 4, x is 4
// Equivalent: x = x + 1; y = x;
Post-Increment (x++) يقوم الكومبايلر باستخدام قيمة المتغير القديمة أولاً لتقييم وتثبيت الجملة الحالية، ثم زيادة المتغير بـ 1 بالذاكرة لاحقاً.
int x = 3;
int y = x++; // y is 3, x is 4
// Equivalent: y = x; x = x + 1;
تنبيه هام جداً: محاولة استخدام المعامل على تعبير رياضي مثل ++(x+1) يتسبب في حدوث خطأ سينتكس فادح Slide 11 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 11: الفروق الهيكلية والأكاديمية للزيادة المسبقة واللاحقة
تمارين التتبع والطباعة: تتبع يدوياً ناتج طباعة البرنامج التالي: (a = 7; System.out.println(a++);) و (System.out.println(a);): INCREMENT TRACING WORKSPACE
احسب النواتج بنفسك: جملة الطباعة الأولى ستطبع 7 (القيمة القديمة)، وجملة الطباعة الثانية ستطبع 8 (القيمة المحدثة بالذاكرة). Batch 47 Design Studio
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 12 / 18
4 & 5. Relational & Logical Operators (معاملات المقارنة والمنطق)
مقارنة الحروف برمجياً (ASCII): تعتمد جافا على قيم جدول الـ ASCII لمقارنة الحروف الأبجدية:
• الحروف الكبيرة (Uppercase) أصغر دائماً من الحروف الصغيرة (Lowercase).
• الترتيب الأبجدي يحكم العلاقة: الحرف الأسبق هو الأصغر دائماً.
System.out.println( 'A' < 'g' ); // true (65 < 103)
System.out.println( 'f' >= 'q' ); // false (102 >= 113)
Logical Gates (البوابات والروابط المنطقية) تنبيه: معامل AND يتطلب تحقق كلا الشرطين معاً، بينما معامل OR يكتفي بتحقق شرط واحد فقط Slide 13 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 13: بوابات التحقق المنطقي وجدول الحقيقة
تمارين التتبع المنطقي: لو أعلنا (x=24, y=35, z=20)؛ تتبع وقيم الشرط التالي: ( (x >= y) && (z < y) ) يدوياً بالمسودة: LOGICAL TRACING WORKSPACE
احسب النتيجة المنطقية: (x >= y) هو false؛ وحيث أن المعامل هو AND فإن النتيجة الإجمالية false فوريّاً دون الحاجة لتقييم الطرف الآخر. Batch 47 Design Studio
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 14 / 18
Type Casting: Explicit vs. Implicit (تحويل أنواع البيانات برمجياً) TypeCastingDemo.java Explicit syntax
(int) (7.9); // returns 7 (decimals are lost!)
(double) (25); // returns 25.0
(double) (15 / 2); // returns 7.0 (integer division evaluates first)
(double) (15) / 2; // returns 7.5 (correct double division)
نوعا تحويل البيانات
١. التحويل التلقائي الضمني (Implicit) يحدث تلقائياً بواسطة جافا عند دمج أنواع مختلفة في عملية حسابية واحدة لتفادي حدوث فقد للبيانات (مثال: جمع int مع double يعيد double).
٢. التحويل الصريح القسري (Explicit) يقوم به المبرمج قسريّاً عن طريق كتابة الاسم المستهدف بين قوسين قبل المتغير المستهدف مثل (int).
تنبيه: التحويل الصريح من نوع كبير لآخر صغير (مثال: من double إلى int) يتسبب بفقد الجزء العشري تماماً Slide 15 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 15: تحويل أنواع البيانات الصريحة والضمنية بالسينتكس
تمارين التتبع السريع: احسب ناتج العملية التالية في المسودة بالتفصيل: (int) ( 7.8 + (double) (15) / 2 ): CASTING TRACING WORKSPACE
احسب النواتج بنفسك: (double)(15)/2 يساوي 7.5. نجمعها مع 7.8 لينتج 15.3. وعند تحويلها الصريح لـ (int) تعيد 15 تماماً. Batch 47 Design Studio
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 16 / 18
Self-Check Exercises: Operators & Casting (اختبار الفهم الذاتي)
Task 1: Evaluate the Expressions (احسب قيم التعابير) احسب النواتج النهائية للتعابير الرياضية البرمجية التالية بالتفصيل:
Expression A: 23 + 7 % 2 - 3
Expression B: 15.0 + 3.0 * 2.0 / 5.0
Expression C: 30.0 % 6 + 1
Solve in your notes slide!
Task 2: Swapping Variables (برنامج تبديل المتغيرات) اكتب خوارزمية وكود بريد زائف مبسط لتبديل قيم متغيرين (Swapping):
مثال: لو كانت x = 5 و y = 7، فكيف نجعلهما ينتهيان بـ x = 7 و y = 5؟
* تلميح: تحتاج إلى حجز متغير مؤقت ثالث بالذاكرة العشوائية لتخزين القيمة (Temp Variable).
Challenge: Draw a memory trace for Swapping!
تنبيه: تبديل قيم المتغيرات يمثل جزءاً أساسياً من خوارزميات الترتيب (Sorting Algorithms) في الفصول المتقدمة Slide 17 / 18
مسودة وملاحظات الطالب • Student Workspace تخص الشريحة 17: حل تمارين الحساب وتبديل المتغيرات بالذاكرة
مساحة مخصصة لكتابة الخطوات الثلاث لحل مسألة تبديل المتغيرات وحل مسائل الحساب: LIVE WORKSPACE DRILL
تلميح: معادلة التبديل: temp = x; x = y; y = temp; تأمل هذه الخطوات لتفهمها بالكامل. Batch 47 Interactive Study Companion
مساحة مخصصة للتدوين اليدوي أثناء الشرح Slide 18 / 18