کتاب Data Structures & Algorithms in Python (ساختار دادهها و الگوریتمها در پایتون) یک کتاب جامع و کامل برای یادگیری ساختمان داده و الگوریتم و پیادهسازی آنها در زبان برنامهنویسی پایتون است. این کتاب که به تازگی در سال 2022 به چاپ رسیده است به صورت کاملاً عملی مباحث ساختمان داده و الگوریتمهای مهم در دنیای رایانه را با استفاده از زبان پایتون در 16 فصل شرح خواهد داد.
در ادامه مقدمهای از کتاب Data Structures & Algorithms in Python را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Data Structures & Algorithms in Python:
در این کتاب چیست؟ این کتاب به گونهای طراحی شده است که مقدمهای کاربردی بر ساختار دادهها و الگوریتمها برای دانشآموزانی باشد که به تازگی شروع به نوشتن برنامههای کامپیوتری کردهاند. این مقدمه بیشتر در مورد کتاب، نحوه سازماندهی آن، انتظار داریم که خوانندگان قبل از شروع کتاب چه تجربهای داشته باشند و با خواندن آن و انجام تمرینات چه دانشی به دست خواهید آورد، به شما میگوید.
کتاب Data Structures & Algorithms in Python برای چه کسی است؟
ساختار دادهها و الگوریتمها هسته اصلی علم کامپیوتر هستند. اگر تا به حال خواسته اید بفهمید که رایانهها چه کاری میتوانند انجام دهند، چگونه این کار را انجام میدهند و چه کاری نمیتوانند انجام دهند، پس باید درک عمیقی از هر دو داشته باشید (احتمالاً بهتر است به جای اینکه بگویید «کامپیوترها در انجام چه کارهایی مشکل دارند» آنها نمیتوانند انجام دهند).
این کتاب ممکن است به عنوان متنی در درس ساختارهای داده و/یا الگوریتمها، که اغلب در سال دوم برنامه درسی علوم کامپیوتر دانشگاه تدریس میشود، استفاده شود. با این حال، این متن همچنین برای برنامه نویسان حرفه ای، برای دانش آموزان دبیرستانی، و برای هر کسی که نیاز دارد قدم بعدی را از دانستن یک زبان برنامهنویسی صرفاً بردارد، طراحی شده است.
از آنجا که درک آن آسان است، به عنوان یک متن تکمیلی برای یک دوره رسمیتر نیز مناسب است. دارای مثالها، تمرینها و مواد تکمیلی است، بنابراین میتوان از آن برای خودآموزی خارج از محیط کلاس استفاده کرد.
رویکرد ما در نوشتن این کتاب این است که درک نحوه عملکرد ساختارهای داده و نحوه به کارگیری آنها در عمل را برای خوانندگان آسان کنیم. این با برخی از متون دیگر که بر نظریه ریاضی یا نحوه پیادهسازی آن ساختارها در یک زبان یا کتابخانه نرمافزاری خاص تأکید دارند، متفاوت است.
ما نمونههایی را با برنامههای کاربردی دنیای واقعی انتخاب کردهایم و از استفاده از مثالهای فقط ریاضی یا مبهم خودداری میکنیم. ما از شکلها و برنامههای تجسم برای کمک به برقراری ارتباط ایدههای کلیدی استفاده میکنیم. ما همچنان پیچیدگی الگوریتمها و ریاضیات مورد نیاز برای نشان دادن اینکه پیچیدگی چگونه بر عملکرد تأثیر میگذارد را پوشش میدهیم.
آنچه باید قبل از خواندن کتاب Data Structures & Algorithms in Python بدانید:
پیش نیازهای استفاده از این کتاب عبارتند از: آشنایی با برخی زبانهای برنامهنویسی و مقداری ریاضیات. اگرچه کد نمونه در پایتون نوشته شده است، اما برای پیگیری اتفاقات، نیازی به دانستن پایتون ندارید. اگر برنامهنویسی رویه ای و/یا شی گرا انجام داده باشید، درک پایتون سخت نیست. ما سینتکس در مثالها را تا حد امکان عمومی نگه داشته ایم،
به طور خاص، ما از دستور زبان Python نسخه 3 استفاده میکنیم. این نسخه تا حدودی با پایتون 2 متفاوت است، اما نه چندان. پایتون یک زبان غنی با انواع دادهها و کتابخانههای داخلی بسیاری است که قابلیتهای آن را گسترش میدهد.
با این حال، مثالهای ما از ساختارهای اساسیتر به دو دلیل استفاده میکنند: درک آنها را برای برنامهنویسانی که با زبانهای دیگر آشنا هستند آسانتر میکند، و جزئیات ساختار دادهها را بهطور واضحتر نشان میدهد. در فصلهای بعدی کتاب Data Structures & Algorithms in Python، ما از برخی ویژگیهای پایتون که در زبانهای دیگر مانند ژنراتورها و درک فهرستها یافت نمیشوند، استفاده میکنیم. ما توضیح میدهیم که اینها چیست و چگونه برای برنامهنویس مفید است.
البته، اگر از قبل با پایتون (نسخه 2 یا 3) آشنایی داشته باشید، به شما کمک خواهد کرد. شاید شما از برخی از ساختارهای داده پایتون استفاده کرده باشید و در مورد نحوه پیاده سازی آنها کنجکاو باشید.
ما سینتکس پایتون را در فصل 1 کتاب Data Structures & Algorithms in Python، «نمای کلی»، برای کسانی که نیاز به معرفی یا تازهسازی دارند، مرور میکنیم.
اگر به زبانهایی مانند Java، C++، C#، JavaScript یا Perl برنامهنویسی کردهاید، بسیاری از ساختارها باید آشنا باشند. اگر فقط با استفاده از زبانهای کاربردی یا دامنه خاص برنامهنویسی کرده اید، ممکن است لازم باشد زمان بیشتری را صرف آشنایی با عناصر اصلی پایتون کنید. فراتر از این متن، منابع زیادی برای برنامه نویسان مبتدی پایتون در دسترس است، از جمله آموزشهای زیادی در اینترنت.
علاوه بر یک زبان برنامهنویسی، هر برنامهنویسی باید چه چیزهایی را بداند؟ دانش خوب ریاضی از حساب تا جبر ضروری است. برنامهنویسی کامپیوتری دستکاری نمادها است. درست مانند جبر، راههایی برای تبدیل عبارات برای مرتب کردن مجدد عبارتها، قرار دادن آنها در اشکال مختلف و برجستهتر کردن بخشهای خاص وجود دارد، همگی با حفظ یک معنی. همچنین درک نمایی در ریاضی بسیار مهم است.
بسیاری از علوم کامپیوتر مبتنی بر دانستن اینکه افزایش یک عدد به توان دیگری به چه معناست. فراتر از ریاضی، حس خوب سازماندهی نیز برای همه برنامهنویسی مفید است. دانستن نحوه سازماندهی آیتمها به روشهای مختلف (بر اساس زمان، عملکرد، اندازه، پیچیدگی و غیره) برای کارآمد و قابل نگهداری برنامهها بسیار مهم است. وقتی در مورد کارایی و قابلیت نگهداری صحبت میکنیم، آنها معانی خاصی در علوم کامپیوتر دارند.
کارایی بیشتر به مدت زمان محاسبه اشیا مربوط میشود، اما میتواند به مقدار فضایی که نیاز دارد نیز باشد. قابلیت نگهداری به سهولت درک و اصلاح برنامههای شما توسط برنامه نویسان دیگر و همچنین خودتان اشاره دارد.
همچنین به دانشی در مورد نحوه یافتن چیزها در اینترنت، دانلود و نصب نرمافزار و اجرای آنها در رایانه نیاز دارید. دستورالعمل دانلود و اجرای برنامههای تجسم سازی در ضمیمه الف این کتاب موجود است. اینترنت دسترسی به انبوهی از ابزارها از جمله ابزارهایی برای یادگیری برنامهنویسی و علوم کامپیوتر را بسیار آسان کرده است. ما انتظار داریم خوانندگان از قبل بدانند که چگونه منابع مفید را پیدا کنند و از منابعی که ممکن است نرم افزارهای مخرب ارائه میکنند اجتناب کنند.
آنچه می توانید از کتاب Data Structures & Algorithms in Python بیاموزید:
همانطور که ممکن است از عنوان آن انتظار داشته باشید، این کتاب میتواند به شما در مورد اینکه چگونه ساختارهای داده برنامهها (و برنامه نویسان) را در کارشان کارآمدتر میکنند، آموزش دهد. شما میتوانید بیاموزید که چگونه سازماندهی دادهها و جفت شدن آن با الگوریتمهای مناسب بر آنچه که میتوان با مقدار معینی از منابع محاسباتی محاسبه کرد تأثیر زیادی میگذارد.
این کتاب میتواند به شما درک کاملی از نحوه پیادهسازی ساختار دادهها بدهد و شما را قادر میسازد آنها را در هر زبان برنامهنویسی پیادهسازی کنید. میتوانید فرآیند تصمیمگیری درباره ساختار(ها) دادهها و الگوریتمها را بیاموزید که برای پاسخگویی به یک درخواست برنامهنویسی خاص مناسبتر هستند. شاید مهمتر از همه، شما میتوانید یاد بگیرید که یک الگوریتم و/یا ساختار داده در یک مورد خاص چه زمانی خراب میشود. درک ساختار دادهها و الگوریتمها هسته اصلی علم کامپیوتر است که با برنامه نویس پایتون (یا زبانهای دیگر) متفاوت است.
کتاب Data Structures & Algorithms in Python ساختارهای داده اساسی را که هر برنامهنویسی باید بداند را آموزش میدهد. خوانندگان باید درک کنند که موارد بسیار بیشتری وجود دارد. این ساختارهای داده پایه در موقعیتهای بسیار متنوعی کار میکنند. با مهارتهایی که در این کتاب ایجاد میکنید، باید بتوانید شرحی از ساختار داده یا الگوریتم دیگری را بخوانید و شروع به تجزیه و تحلیل کنید که آیا عملکرد بهتری دارد یا بدتر از آنچه قبلاً در موارد استفاده خاص یاد گرفتهاید.
کتاب Data Structures & Algorithms in Python برخی از نحو و ساختار پایتون را توضیح میدهد، اما تمام قابلیتهای آن را به شما آموزش نمیدهد. این کتاب از زیرمجموعه ای از قابلیتهای کامل پایتون استفاده میکند تا نشان دهد که چگونه ساختارهای داده پیچیدهتر از ساختارهای سادهتر ساخته شده اند. این برنامه برای آموزش اصول برنامهنویسی به کسی که هرگز برنامهنویسی نکرده است طراحی نشده است. پایتون یک زبان بسیار سطح بالا با بسیاری از ساختارهای داده داخلی است.
استفاده از انواع ابتداییتر مانند آرایههای اعداد صحیح یا ساختارهای رکورد، همانطور که ممکن است در C یا C++ پیدا کنید، در پایتون تا حدودی دشوارتر است. از آنجایی که تمرکز کتاب Data Structures & Algorithms in Python بر پیاده سازی و تجزیه و تحلیل ساختارهای داده است، نمونههای ما از تقریبهایی برای این انواع اولیه استفاده میکنند. برخی از برنامهنویسان پایتون ممکن است این مثالها را غیرضروری پیچیده بدانند، زیرا از ساختارهای زیباتر ارائه شده با زبان در کتابخانههای استاندارد اطلاع دارند.
اگر میخواهید علم کامپیوتر و بهویژه پیچیدگی الگوریتمها را درک کنید، باید عملیات زیربنایی روی اصول اولیه را بدانید. هنگامی که از یک ساختار داده ارائه شده در یک زبان برنامهنویسی یا از یکی از ماژولهای الحاقی آن استفاده میکنید، اغلب باید پیچیدگی آن را بدانید تا بدانید که آیا برای مورد استفاده شما به خوبی کار میکند یا خیر. درک ساختارهای داده اصلی، پیچیدگیهای آنها و مبادلات به شما کمک میکند تا ساختارهایی را که در بالای آنها ساخته شدهاند را درک کنید.
تمام ساختارهای داده با استفاده از برنامهنویسی شیگرا (OOP) توسعه یافتهاند. اگر این یک مفهوم جدید برای شما است، بررسی در فصل 1 کتاب Data Structures & Algorithms in Python نحوه تعریف و استفاده از کلاسها در پایتون مقدمه ای اساسی برای OOP ارائه میدهد. شما نباید انتظار داشته باشید که از این متن قدرت و مزایای کامل OOP را یاد بگیرید.
در عوض، شما یاد خواهید گرفت که هر ساختار داده را به عنوان یک کلاس پیاده سازی کنید. این کلاسها انواع اشیاء در OOP هستند و توسعه نرمافزاری را آسانتر میکنند که میتواند توسط بسیاری از برنامههای مختلف به روشی قابل اعتماد دوباره استفاده شود.
کتاب Data Structures & Algorithms in Python از مثالهای زیادی استفاده میکند، اما این کتابی درباره یک حوزه کاربردی خاص از علوم کامپیوتر مانند پایگاههای داده، رابطهای کاربری یا هوش مصنوعی نیست. مثالها برای نشان دادن کاربردهای معمول برنامهها انتخاب شدهاند، اما همه برنامهها در یک زمینه خاص نوشته شدهاند و با گذشت زمان تغییر میکنند. یک برنامه پایگاه داده نوشته شده در سال 1970 ممکن است در آن زمان بسیار پیشرفته به نظر میرسید، اما ممکن است امروز بسیار پیش پا افتاده به نظر برسد.
مثالهای ارائه شده در این متن برای آموزش نحوه پیاده سازی ساختارهای داده، نحوه عملکرد و نحوه مقایسه آنها در هنگام طراحی یک برنامه جدید طراحی شده اند. مثالها نباید به عنوان جامعترین یا بهترین پیادهسازی ممکن از هر ساختار داده، و نه بهعنوان بررسی کامل تمام ساختارهای داده بالقوه که میتوانند برای یک حوزه کاربردی خاص مناسب باشند، در نظر گرفته شوند.
ساختار کتاب Data Structures & Algorithms in Python
هر فصل گروه خاصی از ساختارهای داده و الگوریتمهای مرتبط را ارائه میدهد. در پایان فصلها، سؤالات مروری را ارائه میکنیم که نکات کلیدی فصل و گاهی اوقات روابط با فصلهای قبلی را پوشش میدهد. پاسخ این موارد را میتوان در ضمیمه C، “پاسخ به سوالات” یافت. این سوالات به عنوان خودآزمایی برای خوانندگان در نظر گرفته شده است تا اطمینان حاصل شود که تمام مطالب را درک کرده اید.
بسیاری از فصلهای کتاب Data Structures & Algorithms in Python آزمایشهایی را برای خوانندگان پیشنهاد میکنند. اینها میتوانند آزمایشهای فکری فردی، تکالیف تیمی یا تمرینهایی با ابزارهای نرمافزاری ارائهشده با کتاب باشند. اینها برای اعمال دانشی که به تازگی آموختهاید در زمینه دیگری طراحی شدهاند و به تعمیق درک شما کمک میکنند.
پروژههای برنامهنویسی تمرینهای برنامهنویسی طولانیتر و چالشبرانگیزتر هستند. ما مجموعهای از پروژهها با سطوح مختلف دشواری را ارائه میدهیم. این پروژهها ممکن است در محیطهای کلاس درس به عنوان تکالیف خانه مورد استفاده قرار گیرند. راهحلهای نمونه پروژههای برنامهنویسی از ناشر و وبسایت https://datastructures.live در دسترس مربیان واجد شرایط است.
سرفصلهای کتاب Data Structures & Algorithms in Python:
- Cover Page
- About This eBook
- Title Page
- Copyright Page
- Contents at a Glance
- Table of Contents
- Pearson’s Commitment to Diversity, Equity, and Inclusion
- Dedication Page
- Acknowledgments
- Acknowledgments to the First Edition, Data Structures and Algorithms in Java
- Acknowledgments to the Second Edition
- About the Authors
- Introduction
- Figure Credits
- Chapter 1. Overview
- Chapter 2. Arrays
- Chapter 3. Simple Sorting
- Chapter 4. Stacks and Queues
- Chapter 5. Linked Lists
- Chapter 6. Recursion
- Chapter 7. Advanced Sorting
- Chapter 8. Binary Trees
- Chapter 9. 2-3-4 Trees and External Storage
- Chapter 10. AVL and Red-Black Trees
- Chapter 11. Hash Tables
- Chapter 12. Spatial Data Structures
- Chapter 13. Heaps
- Chapter 14. Graphs
- Chapter 15. Weighted Graphs
- Chapter 16. What to Use and Why
- Appendixes
- Appendix A. Running the Visualizations
- Appendix B. Further Reading
- Appendix C. Answers to Questions
- Index
- Code Snippets
فایل کتاب Data Structures & Algorithms in Python را میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.