361-Fundementals of Software Development أسس تطوير البرامج


الأربعاء, 03 فبراير 2021

Lesson Overview (نظرة عامة على الدرس)

Students will understand computer storage and data types.

يسيتعلم الطالب فى هذا الدرس كيفية تخزين البيانات فى الحاسب وما هى أنواع البيانات

In this lesson, you will learn:

§  How a computer stores programs and instructions in computer memory

§        كيف يخزن الحاسب البرامج والأوامر فى الذاكرة

§  Memory stacks and heaps

§        نوعى الذاكرة (Stack, Heap)

§  Memory size requirements for the various data storage types

§        حجم الذاكرة المطلوب لتخزين البيانات من أنواع مختلفة

§  Numeric data and textual data

§        البيانات الرقمية والنصية

Guiding Questions (أسئلة مرشدة)

1.     How are program instructions stored in a computer?

كيف تخزن تعليمات البرنامج فى الحاسب ؟

2.     Identify the different data types that can be used and the values they can hold.

تعريف أنواع بيانات مختلفة نستطيع أن نضع بداخلها قيم ونستخدم هذه القيم ؟

Activator (إعداد)

§  Name the components of a computer.

أسماء مكونات الحاسب

§  What components are involved in storing program instructions?

ما هى مكونات الحاسب المتداخله فى تخزين تعليمات البرامج ؟

Review Terms (استعراض المصطلحات)

§  Data type—a definition of a set of data that specifies the possible range of values of the set, the operations that can be performed on the values, and the way in which the values are stored in memory. 

نوع البيانات تعريف مجموعة من البيانات التى تحدد المدى المتاح للقيم, والعمليات التى لابد أن تؤدى على هذه القيم, وتحديد الطريقة التى ستخزن بها القيم فى ذاكرة الحاسب.

§  Garbage collection—a process for automatic recovery of heap memory. 

تجميع النفايات عملية استخلاص أتوماتيكية لجزء الذاكرة Heap.

§  Heap—a portion of memory reserved for a program to use for the temporary storage of data structures whose existence or size cannot be determined until the program is running.

الـ Heap: جزء من الذاكرة محجوز للبرنامج لإستخدامها فى التخزين المؤقت لتراكيب البيانات عند وجودها أو المساحة التى لا يمكن تحديدها إلا حينما يكون البرنامج فى أثناء التشغيل.

§  Memory —a device where information can be stored and retrieved.

الذاكرة: هى الأداة التى توجد لتخزين المعلومات بها واسترجاعها منها.

§  Stack—a region of reserved memory in which programs store status data such as procedure and function call addresses, passed parameters, and sometimes local variables.

الـ Stack: منطقة من الذاكرة المحجوزة للبرامج لتخزين حالة البيانات مثلا عنوان استدعاء الإجراء أو الدالة, الوسائط المرسلة و فى بعض الأحيان للمتغيرات المحلية.

How a computer stores programs in memory       

كيف يخزن الحاسب البرامج فى ذاكرته

§  A computer keeps data and programs in storage as follows:

يحافظ الحاسب على البيانات والبرامج فى مخزن كما يلى:          

§  Primary storage—Otherwise known as random access memory (RAM), it is made of memory chips. In common usage, it refers only to a computer’s main memory, the fast semiconductor storage (RAM) directly connected to the processor.

مخزن رئيسى: معروف أن ذاكرة الوصول العشوائى (RAM) مصنوعة من رقائق

 (Chips). والتعريف الشهير لها الذاكرة الرئيسية للحاسب, كما أن المخزن شبــــه

الموصل السريع (RAM) متصل بشكل مباشر مع المعالج (Processor).

§  Secondary storage—Otherwise known as a hard drive, it consists of a read/write head that floats above rotating platters coated with a magnetic material.

مخزن ثانوى معروف أنه (Hard Disk) وهو يتألف من رأس للقراء/الكتابة فتلف

فوق اسطوانات دائرية مطلية بمادة مغناطيسية.

 

Memory–Stacks and Heaps

§  Variables are stored in either a stack or heap based on their type:

تخزن المتغيرات فى كلا من (Stack or heap) على أساس النوع:

§  Value types (e.g.: int, double, float) go on the stack.

الأنواع بالقيمة فى الـ (Stack) مثل متغيرات من النوع (int, double, …)

§  Reference types (String, Object) go on the heap.

الأنواع بالمرجع ف الـ (Heap) مثل متغيرات من النوع (String, Object, Random)

*Value types in classes are stored with the instance of the class on the heap

* الأنواع بالقيمة فى الفئات تخزن الكائن الممثل للفئة فى الـ (Heap)

Ø The stack

§  Values in the stack are managed without garbage collection because items are added and removed from the stack as last in, first out (LIFO) every time you enter or exit a scope, like a method or statement

القيم بداخل الـ (Stack) تدار بدون تجميع للنفايات GC لأن العناصر تضاف وتحذف من الـ Stack بناءا على آخر ما يضاف أول ما يخرج (LIFO) مثلا كل مرة تدخل أو تخرج من نطاق برمجى معين أو إجراء أو جملة كود.

§  A StackOverFlowException occurs because you have used up all the available space in the stack.

يحدث الاستثناء StackOverFlowException لأنك استخدمت أكثر من المساحة المتاحة للـ Stack

Ø The heap

§  A heap-based memory allocation occurs when we create a new object, at which point the compiler figures out how much memory is needed and allocates an appropriate amount of memory space and returns a reference representing the memory address.

الـ Heap يعتمد على توزيع الذاكرة ويحدث التوزيع عندما ننشئ كائن جديد, عندما تكون المساحة غير كافية يحدد المترجم كم المساحة التى نحتاجها و توزيعها بكمية مناسبة من مساحة الذاكرة و يعيد مرجع يمثل عنوان الذاكرة.

§  A heap is used for dynamic allocation of memory.

يستخدم الـ Heap للتوزيع خحج الحصص المتغيرة فى الذاكرة.

§  The Microsoft .NET Framework uses garbage collection to free up space during run time.

يستخدم .NET تجميع النفايات GC لإخلاء المساحات الغير مستغلة اثناء التشغيل

§  Garbage collection is an automatic process for recovery of heap memory.  Blocks of memory that had been allocated but are no longer in use are freed, and blocks of memory still in use may be moved to consolidate the free memory into larger blocks.

تجميع النفايات GC عملية تلقائية للإستعادة من الذاكرة Heap. أجزاء الذاكرة التى تم تخصيصها لشئ ولكنها لم تعد مستخدمه الآن فتمسح من الذاكرة, وأجزاء الذاكرة التى مازالت فى الذاكرة قد يتم ترحيلها من مكان لآخر لدمج الذاكرة الخالية داخل أجزاء أكبر فى الحجم.

Data Types  -  أنواع البيانات

§  Numeric data types  - أنواع البيانات الرقمية

§  Integral types (e.g.: byte, char, int) – الأنواع الصحيحة

§  Floating-point types (float, double) – الأنواع العشرية/الكسرية

§  Decimal

*    Boolean - المنطقى

§  Example:  bool done = false;

Integral Types

Type

Range

Size

sbyte

-128 to 127

Signed 8-bit integer

byte

0 to 255

Unsigned 8-bit integer

char

U+0000 to U+ffff

Unicode 16-bit character

short

-32,768 to 32,767

Signed 16-bit integer

ushort

0 to 65,535

Unsigned 16-bit integer

int

-2,147,483,648 to 2,147,483,647

Signed 32-bit integer

uint

0 to 4,294,967,295

Unsigned 32-bit integer

long

-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

Signed 64-bit integer

ulong

0 to 18,446,744,073,709,551,615

Unsigned 64-bit integer

Floating-Point Types

Type

Approximate Range

Precision

float

±1.5e−45 to ±3.4e38

7 digits

double

±5.0e−324 to ±1.7e308

15-16 digits

 

Decimal Type

Type

Approximate Range

Precision

decimal

±1.0 × 10−28 to ±7.9 × 1028

28-29 significant digits

 

Using the Numeric Data Types

byte numKids = 15;

char letter = ‘p’;

int worldPopulation = 6692030277;

float money = 201.00f;

double lotsaMoney = 2.4E+12;

decimal testGrade = 89.5m;

Lesson Review – مراجعة الدرس

§  Describe how the program statement below is stored in memory:

إوصف كيف تخزن الجملة التالية فى الذاكرة

            int tennisPoints = 30;

§  Identify the appropriate data types for each of the following values.

عرف أنواع البيانات المناسبة لكلا من القيم التالية.

§  4233423.93

§  100

§  -2323

§  true

 جميع حقوق نقل المعلومات مسموح بها لوجه الله. ولكن يرجى الإشارة لأسم الموقع فقط.


 

الأربعاء, 03 فبراير 2021

Lesson Overview (نظرة عامة على الدرس)

Students will understand the decision structures used by computers.

سيتعلم الطالب أبنية القرار المستخدمة فى الحاسب

In this lesson, you will learn:

§  Various decision structures used in all computer programming languages

مختلف أبنية القرار المستخدمة فى لغات برمجة الحاسب

§  if decision structures

§  Multiple decision structures such as if…else and switch/Select Case

§  Reading flowcharts قراءة خرائط التدفق

§  Decision tables جداول القرار

§  Evaluating expressions تقييم التعبيرات

Guiding Questions (أسئلة مرشدة)

1.     What are the different decision structures used to control the execution of program commands?

ما هى أبنية القرار المختلفة التى تستخدم للتحكم فى تنفيذ أوامر البرنامج؟

2.     How do flowcharts and decision tables show the multiple outcomes of a decision structure?

كيف تنشئ خرائط تدفق وجداول القرار لعرض النتائج المختلفة لبناء قرار؟

Review Terms

§  Relational operator عوامل الوصل/المقارنة

§  Logical operator عوامل منطقية

§  and, or, not

§  Boolean

§  Expression تعبير

§  Condition شرط

§  Value

§  if

§  else

§  switch

§  break

§  case

§  Algorithm

§  Compound statement جملة مركبة

§  Nested statements الجمل المتداخلة

§  Precedence الأولويات

Activator (إعداد) –Complete the following statements:

استكمل الجمل التالية

§  If I do my homework, then …

§  If I do not study, then …

§  If I eat and _________, then …

Decisions in Real Life – القرارات فى الحياة

§  A decision is a statement that says that if something is true, then something will happen as a consequence.

القرار جملة تقول لو شئ ما حدث إذن شئ ما سوف يحدث بناءا عليه

            For example:

§  If I do the dishes, then I will get my allowance.

§  If Pat gets a 90 percent or above, he will get an A.

§  Decisions are modeled in computers. القرارات تأخذ الشكل التالى فى الحاسب

            For example:

if (volume > 10)
   radio.setVolume(2);

Relational Expressions

§  A relational operator is used to compare two values, resulting in a relational expression.

عامل الصلة/المقارنة يستخدم لمقارنة قيمتين, والنتيجة فى تعبير المقارنة

            For example:

number > 16
grade == ‘F’
passing >= 60

§  A list of relational operators:

<                      less than

>                      greater than

<=                   less than or equal to

>=                   greater than or equal to

==                   equal to

!=                    not equal to

Logical Operators

§  &&             and

§  ||               or

§  !                  not

 

 

 

switch Statement:

int caseSwitch = 1;
switch (caseSwitch)
{
   case 1:
      Console.WriteLine("Case 1");
      break;
   case 2:
      Console.WriteLine("Case 2");
      break;
   default:
      Console.WriteLine("Default case");
      break;
}

Decision Table

§  A concise way of demonstrating logic طريق مختصر ببرهان منطقى

§  Creates an association between conditions and actions to execute

تنشئ إتحاد بين الشروط و الأوامر التى ستنفذ

Rules

Conditions

الشروط

Controller does not respond

كابح الموجه لا يستجيب

Y

N

Green light flashing

الأشارة الخضراء منيرة

N

Y

Actions

السلوك

Replace batteries

تغيير البطاريات

Y

N

Synchronize with console

يتزامن مع الراديو

N

Y

 

Fix the syntax errors : صحح الأخطاء الموجودة فى شكل الكتابة

boolean isFun = F;
boolean isKind = F;
boolean isPopular = T;
if isFun && isKind || isPopular;
   Console.Writeln("You are my friend.");
else
   Console.Writeln("Who are you?");

 

Fix the syntax errors—Answers

bool isFun = false;
bool isKind = false;
bool isPopular = true;
if (isFun && isKind || isPopular)
   Console.WriteLine("You are my friend.");
else
   Console.WriteLine("Who are you?");

 ------------------------------



 جميع حقوق نقل المعلومات مسموح بها لوجه الله. ولكن يرجى الإشارة لأسم الموقع فقط.


الأحد, 07 فبراير 2021

 

2.1-         Understand the Fundamentals of Classes
فهم مبادئ الفئات

Lesson Overview (نظرة عامة على الدرس)

Students will understand the fundamentals of classes.

In this lesson, you will learn:       

§  Properties, methods, events, and constructors

الخصائص والإجراءات و الأحداث و المنشئ

§  How to create a class  كيف تنشئ فئة 

§  How to use classes in code كيف تستخدم الفئات فى الأكواد 

Guiding Questions (أسئلة مرشدة)

1.     What are the key components of a class in object-oriented programming?

ما هى المكونات الأساسية للفئة فى برمجة OOP؟

2.     How do you implement a class and use it within the context of an overall program?

كيف يمكنك تنفيذ فئة وكيف تستخدمها فى برنامجك عموما؟

Activator

§  Look around the room. What objects do you see that are related to others? 

أنظر من حولك فى الغرفة. ما هى الكائنات (Objects) التى تراها ومرتبطة مع بعضها؟

§  What general name would you give to each of these groups?

ما هو الأسم العام الذى ستطلقه على كل مجموعة؟

§  If we were to model a classroom as a computer program, how would these groups be represented?

لو نحن على سبيل المثال فى غرفة التدريس الخاص بتطبيقات الكمبيوتر, كيف تمثل كل مجموعة باسم يمثلهم؟

Activator—Explanation الشرح

§  All the objects discussed interact with one another in the context of a classroom.

كل الكائنات التى بحثتها تتفاعل مع كائن آخر فى نفس غرفة التدريس.

§  We can represent objects with similar characteristics with a class by defining properties and behaviors.

نستطيع تمثيل الكائنات بمميزات متاشبه مع تعريف خصائص للفئة وبعض التصرفات أو الأفعال.

Review Terms -  مراجعة مصطلحات

§  Class—in object-oriented programming, a generalized category that describes a group of more specific items, called objects, that can exist within it.

الفئة: فى برمجة OOP تصنيف عام يصف مجموعة بها مجموعة محددة من العناصر, تسمى كائنات (Objects) التى تستطيع أن توجد كتمثيل لها.

§  Constructor—a method that allows the programmer to set default values, limit instantiation, and write code that is flexible and easy to read.

المنشئ: إجراء يسمح للمبرمج ضبط القيم الإفتراضية, تحديد التجهيزات, ويكتب به كود مرن وسهل فى القراءة.

§  Event—an action or occurrence, often generated by the user, to which a program might respond (for example, key presses, button clicks, or mouse movements).

الحدث: هو سلوك أو فعل, غالبا ينشئ من خلال المستخدم ليجعل البرنامج يصدر ردا ما. ( على سبيل المثال الضغط على زر كيبورد, ضغط زر بالبرنامج أو تحريك مؤشر مثلا)

§  Method—in object-oriented programming, a process performed by an object when it receives a message.

الإجراء: فى برمجة OOP هو أوامر تنجز من خلال كائن عندما يستقبل رسالة ما.

§  Object—1. short for object code (machine-readable code). 2. In object-oriented programming, a variable comprising both routines and data that is treated as a discrete entity.

الكائن: بالمختصر تكلم عن (machine-readable Code) , فى برمجة OOP هو متغير يتضمن كلا من الإجراءات الروتينية و البيانات التى تتعامل مع كيان منفصل.

§  Object-oriented programming—a programming paradigm in which a program is viewed as a collection of discrete objects that are self-contained collections of data structures and routines that interact with other objects.

برمجة OOP: نموذج برمجى وفيه البرنامج يظهر كمجموعة منفصلة من الكائنات تظهر كمجموعة تامه فى ذاتها من تراكيب البيانات والإجراءات المرتبطة مع كل الكائنات الآخرى

§  Property—members of a class that provide a flexible mechanism to read, write, or compute the values of private fields. Properties are viewed or accessed by “accessor” methods within the class and are changed or modified by “modifier” methods within the class.

الخاصية: عضو من أعضاء الفئة وهى تزودنا بطريقة مرنه كتقنية للقراءة والكتابة أو حساب قيمة حقل خاص. والخصائص نصل إلى قيمتها من خلال إجراء (accessor) داخل الفئة وتتعدل القيمة من خلال إجراء (modifier) داخل الفئة.

Objects and Classes—The Relationship – العلاقة بين الفئات والكائنات

§  Objects are instances of a given data type. The data type provides a blueprint for the object that is created—or instantiated—when the application is executed.

الكائنات عبارة عن تمثيل لنوع البيانات المحدد. نوع البيانات يمدنا بالنسخة الزرقاء "المكتوبة المخطوطة" للكائن المنشئ, أو الكائن الممثل عندما ينفذ التطبيق.

§  New data types are defined using classes.

نوع البيانات الجديد يعرف باستخدام الفئات.(الفئة نوع بيانات جديد)

§  Classes form the building blocks of C# applications, containing code and data. A C# application will always contain at least one class.

تنشئ الفئات من خلال بناء كتله فى تطبيق C#, يحتوى على البيانات والكود. تطبيق C# دائما يحتوى على الأقل على فئة واحدة.

Objects and Classes—A Comparison - مقارنة بين الكائنات والفئات 

§  An object belongs to a class and is an instance of that class. The class is the blueprint of the object and defines the fields and methods.

الكائن يعتمد على الفئة وهو تمثيل لها. الفئة هى المخطوطة الأساسية للكائن وهى ما تعرف الحقول والإجراءات.

§  The object exists during the time that a program executes and must be explicitly declared and construed by the executing program. For most programming languages, a class cannot be changed during program execution.

الكائن يتواجد خلال وقت تنفيذ البرنامج ولابد أن يتم تعريفه صريحا وإنشائه من خلال البرنامج. فى معظم لغات البرمجة الفئة لا يمكن أن تعدل خلال تنفيذ البرنامج.

§  Classes have fields that can change in value and methods that can execute during program execution. The class to which the object belongs defines these attributes and methods.

الفئة بها الحقول التى يمكن تغيير قيمتها و الإجراءات التى يمكن أن تنفذ خلال تنفيذ البرنامج. الفئة بالمقارنة مع الكائن تعتمد على تعريف الخواص والإجراءات.


 

§  Properties can be used as though they are public data members, but they are actually special methods called accessors. This enables data to be accessed easily while still providing the safety and flexibility of methods.

الخواص يمكن استخدامها كعضو يمثل بيانات عام الوصول, ولكنها فى الحقيقة إجراءات خاصة تسمى "accssors". وهى تتيح الوصول للبيانات بسهولة بينما مازال هناك أمان ومرونة فى الإجراءات.

§  Constructors are class methods that are executed when an object of a given type is created. Constructors have the same name as the class and usually initialize the data members of the new object.

المنشئ هو عبارة إجراء عادى يتم تنفيذه عندما يأخذ الكائن نوع بياناته وينشئ. المنشئ أسمه نفس أسم الفئة وفى العادة يجهز بيانات الأعضاء للكائن الجديد.

§  A method is a code block containing a series of statements. Every executed instruction is performed in the context of a method.

الإجراء هو كتله من الكود تحتوى على جمل متسلسلة. تنفذ كل التعليمات وتنجز بناءا على استدعاء الإجراء.

---------------------------------------


جميع حقوق نقل المعلومات مسموح بها لوجه الله. ولكن يرجى الإشارة لأسم الموقع فقط.



الأسئلة
Understanding core programming فهم أساسيات البرمجة
1.1- Storage and Data Types التخزين وأنواع البيانات 1.2- Decision Structures أبنية أتخاذ القرار
Understanding object-oriented programming البرمجة الكائنية التوجه
2.1 Understand the Fundamentals of Classes فهم مبادئ الفئات