Grokking Algorithms Book Recommendation

أنا متيقن وأكاد أجزم بأنه إذا قرأ كل دكتور جامعي يُدرس مادة هياكل البيانات والخوارزميات هذا الكتاب أو فقط تصفح بعض من صفحاته، فبلا شك سيضيف هذا الكتاب له العديد من الأفكار التي ستمكنه من إيصال المعلومة إلى الطلاب بأبسط وأسهل وأمتع شكل ممكن.
Grokking Algorithms Book Recommendation

في هذه الصفحة

معلومات عامة عن الكتاب

أنا متيقن وأكاد أجزم بأنه إذا قرأ كل دكتور جامعي يُدرس مادة هياكل البيانات والخوارزميات هذا الكتاب أو فقط تصفح بعض من صفحاته، فبلا شك سيضيف هذا الكتاب له العديد من الأفكار التي ستمكنه من إيصال المعلومة إلى الطلاب بأبسط وأسهل وأمتع شكل ممكن.

مراجعة لمحتوى الكتاب

يبدأ الكتاب بمقدمة عامة ويتناول بعض هياكل البيانات والخوارزميات أو ما تعرف بالـ Data Structure and Algorithms الشائعة ويبدأ هذا بالحديث عن الـ Selection Sort ومن ثم يفكر معك في كيفية ترتيب مجموعة من العناصر، وفي خلال شرحه وتناوله لهذا النوع من خوارزميات الترتيب .. يتطرق إلى بعض هياكل البيانات كالـ Arrays وتشبيهه لها بأنها كالأدراج وما هو الفرق بين الـ Arrays والـ Lists.

ومن ثم يتناول الكتاب مفهوم في غاية الأهمية وعادة ما يشتكي من فهمه وصعوبته الكثير من الطلاب ألا وهو الـ Recursion ويتناول هذا الموضوع عن طريق شرحه لطريقة الـ Divide and Conquer الشهيرة لحل المشاكل الكبيرة عن طريق تقسيما إلى مشاكل أصغر فأصغر حتى يتثنى لك بناء على متكامل يسري عليهم جميعًا ثم يختتم هذا الجزء بالحديث عن الـ Quick Sort وهي من أشهر خوارزميات الترتيب.

وبعد هذا يدخل في موضوع آخر وهو مفتاح لكثير من المشاكل، وهو نوع آخر من هياكل البيانات ويعرف بالـ Hash Tables أو الـ Dictionary ويشرح مفهوم الـ Hashing ومشكلة الـ Collisions إذا حدث وتصادف أنه هنالك أكثر من عنصر لهم نفس الـ Hashing Value وكيفية تخطي هذه المشكلة.  

بعد ذلك يتناول الكتاب مجموعة أخرى من هياكل البيانات ألا وهي الـ Graphs وبالطبع يتناول أشهر الخورازميات التي تتعامل مع ذلك النوع من هياكل البيانات من الـ Breadth First Search والـ Dijkstra’s ويوضح الفرق بينهم بشكل ممتع للغاية.

وآخيرًا وليس آخرًا يتناول الكتاب نوع آخر من الخورازميات وهو الـ Greedy Algorithms وهذا النوع من الخورازميات يصف نفسه من اسمه فالغرض منه الحصول على الهدف الأمثل في كل خطوة أو ما يعرف بالـ Optimal Solution بغض النظر عما هو قادم، ويلي هذا الجزء الحديث عن الـ Dynamic Programming ويتناولهم بأبسط وأسهل الطرق الممكنة. 

وآخيرًا يختتم الكتاب حديثه عن هياكل البيانات والخوارزميات بشيء من الـ Machine Learning وهو الـ KNN Algorithms ويليه ببعض الخوارزميات لمن يريد التوسع.

المميزات والانتقادات

المميزات:
١- مليء بالأمثلة السهلة والبسيطة وربطها بالواقع حتى يتثنى لك تشربها جيدًا.
٢- مليء بالصور التوضيحية التي تسهل عملية الفهم والادراك. 
٣- أسلوبه سهل وسلس وبسيط جدًا ولا يحتاج إلى معرفة معقدة باللغة الانجليزية.

الانتقادات:
١- ليس هنالك أية انتقادات يمكنني ملاحظتها في هذا الكتاب، فلقد استمتعت بقراءته إلى أقصى درجة ممكنة. 

في الختام

هذا الكتاب ينصح به بشدة لطلاب الجامعة ممن يدرسون هندسة الحاسب أو ممن يريد البدء في قراءة الكتب التقنية الخاصة بمجال هندسة الحاسب ولكنه متردد ، فهذا الكتاب بالتأكيد سيكون بمثابة فاتح شهية لك للقراءة والتعلم من خلال القراءة.

اشترك الآن بنشرة اقرأ-تِك الأسبوعية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!