کتاب Kotlin from Scratch: A Project-Based Introduction for the Intrepid Programmer (Kotlin از صفر: مقدمهای مبتنی بر پروژه برای برنامهنویسان جسور) یک راهنمای جامع و عملی برای شروع یادگیری زبان برنامهنویسی Kotlin است.
کتاب Kotlin from Scratch با رویکردی پروژه محور، به شما کمک میکند تا از همان ابتدا با انجام پروژههای واقعی، مفاهیم Kotlin را به صورت عملی درک کنید. بدون نیاز به دانش قبلی در برنامهنویسی، این کتاب شما را از مبانی اولیه تا مفاهیم پیشرفتهتر همراهی میکند.
در ادامه مقدمهای از کتاب Kotlin from Scratch را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Kotlin from Scratch:
این کتاب به شما یاد میدهد که از ابتدا با استفاده از Kotlin، یکی از هیجانانگیزترین زبانهای برنامهنویسی امروز، کدنویسی کنید. در این مسیر، یاد خواهید گرفت که مانند یک حل مسئله و برنامهنویس فکر کنید.
کتاب Kotlin from Scratch از طریق 37 پروژه عملی، شما برنامههایی را توسعه خواهید داد که میتوانند طیف گستردهای از مشکلات سرگرمکننده و چالشبرانگیز، از ریاضیات و علوم پایه تا کاربردهای پیشرفته در الگوریتمها و بهینهسازی را حل کنند.
شما بیشترین بهره را از کتاب Kotlin from Scratch خواهید برد اگر ذهن کنجکاوی داشته باشید. شما تفکر سیستماتیک را در آغوش میگیرید و در پرسیدن دلیل رفتار چیزها، به چالش کشیدن فرضهای رایج و کاوش در دیدگاههای منحصر به فرد تردید نمیکنید.
کتاب Kotlin from Scratch به شما کمک میکند از این مهارتها برای کشف پیچیدگیهای ذاتی مشکلات دنیای واقعی و ساخت مدلهای ریاضی ساده برای بررسی سناریوهای احتمالی استفاده کنید. Kotlin، یک زبان همه منظوره ساده، زیبا و قدرتمند، ابزاری عالی برای این اهداف است.
برای سفری آماده شوید که در آن کدنویسی نه تنها یک مهارت بلکه راهی برای آزاد کردن تخیل و تواناییهای حل مسئله شماست. با کد، میتوانید مشکلاتی را حل کنید که بدون رایانه غیرقابل حل هستند، تجزیه و تحلیلهای عمیق انجام دهید و بینشهای جذاب و مفیدی ایجاد کنید.
بیشتر بخوانید: کتاب Flutter App Development
قدرت کدنویسی
کدنویسی فرآیند ایجاد دستورالعملی است که کامپیوترها میتوانند آن را درک و اجرا کنند. این امر نحوه زندگی و کار ما را متحول کرده است. کدنویسی تقریباً همه دستگاههای مدرن را تقویت میکند، از نرمافزار، وبسایتها، برنامههای موبایل، ساعتهای هوشمند و تلفنهای هوشمند گرفته تا مریخنورد که در حال کاوش دنیایی دوردست در فاصله ۱۴۰ میلیون مایلی است.
در اینجا برخی از دلایلی که ممکن است بخواهید کدنویسی یاد بگیرید آورده شده است:
- مهارتهای ارزشمند بسازید: در عصر دیجیتال امروز، کدنویسی یک توانایی بسیار مورد توجه است که فرصتهای شغلی بیشماری را ایجاد میکند. همچنین به شما کمک میکند تا تواناییهای تفکر انتقادی و حل مسئله خود را بهبود بخشید.
- کارها را خودکار کنید: میتوانید برنامههایی بنویسید که کارهای تکراری را سریعتر و دقیقتر از انسانها انجام دهند. به عنوان مثال، بسیاری از فرآیندهای تولیدی اکنون توسط رباتهایی انجام میشود که از دستورالعملهای کدگذاری شده پیروی میکنند.
- تجزیه و تحلیل سریع حجم زیادی از دادهها: مهارتهای کدنویسی برای تحلیلگرانی که با مقادیر فزایندهای از داده کار میکنند ضروری است. میتوانید از کدنویسی برای استخراج بینش از مجموعه دادههای بزرگ و کمک به تصمیمگیری مبتنی بر داده استفاده کنید.
- پروژههای خود را بسازید: برنامهنویسی نرمافزار، وبسایت یا برنامههای موبایلی خود میتواند راهی سرگرمکننده و ارزشمند برای زنده کردن ایدههای خود، ابراز خلاقیت و کسب درآمد اضافی باشد.
- خوش بگذرانید: کدنویسی میتواند یک سرگرمی سرگرمکننده و ارزشمند باشد که به شما امکان میدهد چیزی را از ابتدا ایجاد کنید و آن را زنده ببینید.
کدنویسی برای همه، صرف نظر از سن، پیشینه یا علاقه، مناسب است. تنها چیزی که نیاز دارید یک کامپیوتر، اتصال به اینترنت و تمایل به یادگیری است. چرا امتحانش نمیکنید؟
چرا Kotlin؟
Kotlin یک زبان برنامهنویسی مدرن و همه منظوره است که برای اولین بار در سال 2016 توسط JetBrains، شرکت مادر آن، به طور رسمی منتشر شد. Kotlin به نام جزیره کوتلین، نزدیک سن پترزبورگ در دریای بالتیک، نامگذاری شده است. این سنت زبان والد کوتلین، جاوا، را دنبال میکند که طبق برخی منابع، به نام جزیرهای در اندونزی نامگذاری شده است.
Kotlin روی همان پلتفرم جاوا، ماشین مجازی جاوا، اجرا میشود و کاملاً با جاوا سازگار است. با این حال، Kotlin بسیار مختصرتر و بیانگرتر است و ویژگیهای منحصر به فرد خود را دارد. به عنوان یک زبان برنامهنویسی نسبتاً جدید، از مزیت بینش 20/20 برخوردار بوده است، به این معنی که برخی از بهترین ویژگیهای سایر زبانهای محبوب را که قبل از آن وجود داشتهاند، در خود گنجانده است.
این زبان راههای زیادی برای استفاده مجدد از کد بین پلتفرمهای مختلف ارائه میدهد و طراحی زبان تمیز و ویژگیهای قدرتمند آن تجربه توسعهدهنده دلپذیری را ارائه میدهند.
در اینجا برخی از مزایای کلیدی Kotlin آورده شده است:
- آسان برای یادگیری: از آنجایی که نحو Kotlin مختصر و خوانا است، میتوانید آن را سریعتر از بسیاری از زبانهای برنامهنویسی دیگر یاد بگیرید.
- همه کاره: Kotlin به طور گسترده برای برنامههای موبایل (به ویژه برنامههای اندروید) استفاده میشود، اما همچنین میتوانید از آن برای توسعه برنامههای وب تمام پشته و چند پلتفرمی که روی دستگاههای ویندوز، مک یا لینوکس اجرا میشوند، استفاده کنید.
- امن: سیستم نوع Kotlin به شما کمک میکند از استثناهای اشاره گر null و خطاهای رایجی که در سایر زبانهای برنامهنویسی مانند پایتون، C و C++ سخت است، جلوگیری کنید.
- پشتیبانی از سبکهای برنامهنویسی متعدد: میتوانید روش ترجیحی خود را برای کدنویسی در Kotlin انتخاب کنید، چه رویهای، ساختیافته، شیءگرا یا تابعی. همچنین میتوانید سبکهای مختلف را در صورت نیاز ترکیب کنید. (پروژههای کتاب Kotlin from Scratch از عناصر همه این سبکها استفاده میکنند.)
- سازگار با جاوا: میتوانید از Kotlin در کنار جاوا استفاده کنید، به این معنی که میتوانید از کد و کتابخانههای جاوا در برنامههای Kotlin استفاده کنید، که مهاجرت از جاوا به Kotlin را آسانتر میکند. بسیاری از برنامههای سطح سازمانی با جاوا نوشته شدهاند و اکنون برای نگهداری آسان به Kotlin مهاجرت میکنند. به عنوان یک مزیت اضافی، کتابخانههای جاوا بالغتر هستند و Kotlin میتواند از آنها استفاده کند در حالی که کتابخانههای جدید مخصوص Kotlin در حال توسعه هستند.
- محبوب: Kotlin یکی از سریعترین زبانهای برنامهنویسی در حال رشد است و از زمانی که گوگل آن را به عنوان زبان ترجیحی برای توسعه اپلیکیشنهای اندروید شناخته است، بسیار محبوب شده است. توسعهدهندگان Kotlin در صنعت نرمافزار بسیار مورد تقاضا هستند.
به طور خلاصه، Kotlin یک زبان برنامهنویسی همه کاره است که میتواند برای کاربردهای تجاری و غیر تجاری استفاده شود. این زبان برای مبتدیان دوستانه است و برای کسانی که میخواهند ویژگیهای آن را کشف کنند و مهارتهای برنامهنویسی خود را با حل مشکلات دنیای واقعی بسازند، مناسب است.
کتاب Kotlin from Scratch برای چه کسانی است؟
این کتاب برای هر کسی است که میخواهد یاد بگیرد چگونه از یک زبان برنامهنویسی مدرن و سرگرمکننده برای حل مشکلات دنیای واقعی که نمیتوان آنها را به صورت دستی حل کرد، استفاده کند. فرض نمیکند که هیچ دانش قبلی از کدنویسی دارید، اگرچه آشنایی با زبان برنامهنویسی دیگری به شما کمک میکند تا سریعتر از موضوعات پوشش داده شده عبور کنید.
کتاب Kotlin from Scratch یک کتاب درسی سنتی در مورد کدنویسی نیست و همچنین یک راهنمای مرجع جامع در مورد Kotlin نیست. در عوض، به شما یاد میدهد که سیستماتیک و استراتژیک فکر کنید و به شما کمک میکند تا قبل از غوطهور شدن در توسعه کد، استراتژیهای حل مسئله را توسعه دهید.
کتاب Kotlin from Scratch رویکردی عملی دارد. در طول کتاب، با کار کردن در مثالهای متعدد، پروژههای تمامقد و تمرینها یاد خواهید گرفت. از اصول بنیادی ریاضی و علوم برای ساخت توصیفهای ریاضی ساده مشکلات زیربنایی (که ما آنها را مدل مینامیم) استفاده خواهید کرد و سپس برنامههای Kotlin را برای حل این مشکلات به طور کارآمد و سریع توسعه خواهید داد.
علاوه بر این، پروژههای کتاب Kotlin from Scratch مفاهیم اصلی از تحلیل عددی و علوم کامپیوتر مانند همگرایی و پایداری، پیچیدگی زمان و فضا، بازگشت، مرتبسازی، جستجو و چندین تکنیک بهینهسازی تصادفی الهام گرفته از طبیعت را نشان میدهند.
کتاب Kotlin from Scratch موضوعات پیشرفته Kotlin مانند ژنریکها، اکستنشنها، نوعهای مستعار یا کوروتینها را پوشش نمیدهد که برای برنامههای پیچیدهتر مناسبتر هستند.
همچنین به مفاهیم علوم کامپیوتر مانند ساختارهای داده پیشرفته و الگوهای طراحی یا نحوه توسعه برنامههای اندروید با Kotlin نمیپردازد. پوشش دادن همه این موارد در یک کتاب غیرممکن است. در عوض، کتاب Kotlin from Scratch به شما کمک میکند تا ویژگیها و مهارتهای ضروری Kotlin را که شما را برای یادگیری و کاوش بیشتر آماده میکند، تسلط پیدا کنید.
کتاب Kotlin from Scratch شامل چه چیزی است؟
این کتاب به چهار بخش و نه فصل سازماندهی شده است. هر فصل کتاب Kotlin from Scratch شامل مفاهیم اصلی، مثالها، یک یا چند پروژه تمامقد و تمرین است.
قسمت اول کتاب Kotlin from Scratch “مفاهیم اساسی” کدنویسی را در سه فصل اول پوشش میدهد. این فصلها را به ترتیب بخوانید تا درک بنیادی از Kotlin و ویژگیهای اصلی آن بسازید.
فصل 1 کتاب Kotlin from Scratch: اصول اولیه Kotlin
مفاهیمی مانند نظرات، متغیرها، عملگرها، کنترل جریان، توابع، لامبداها و ورودی/خروجی را معرفی میکند. به شما آموزش میدهد تا با استفاده از مثالها و تمرینهای متعدد، کد واضح، مختصر و قابل استفاده مجدد بنویسید و شما را در یک پروژه ماشین حساب مبتنی بر کنسول راهنمایی میکند.
فصل 2 کتاب Kotlin from Scratch: آرایهها، مجموعهها و کلاسها
معرفی دستکاری داده و برنامهنویسی شیءگرا. نحوه استفاده از آرایهها، لیستها، لیستهای قابل تغییر، کلاسها، کپسولهسازی، وراثت، چندریختی، کلاسهای انتزاعی، رابطها و کلاسهای شمارشی را توضیح میدهد. مزایا و معایب هر مفهوم و نحوه اعمال آنها در برنامههای خود را مورد بحث قرار میدهد. پروژه این فصل از کتاب Kotlin from Scratch شامل توسعه یک برنامه مدیریت وظیفه ساده مبتنی بر کنسول است.
فصل 3 کتاب Kotlin from Scratch: تجسم با JavaFX
مبانی JavaFX، یک ابزارک برای ایجاد رابطهای کاربری گرافیکی و تجسم داده را پوشش میدهد. اجزای JavaFX مانند Stage، Scene، کانتینرهای طرحبندی و گرهها را بررسی میکند.
به شما آموزش میدهد که از انواع مختلف نمودارها استفاده کنید، انیمیشن پویا را با استفاده از ویژگی انیمیشن JavaFX به کد خود اضافه کنید و از ابزار Canvas برای رسم آزاد از طریق یک سری پروژه استفاده کنید.
قسمت دوم کتاب Kotlin from Scratch، “کاربردها در ریاضی و علوم” شامل مجموعهای از پروژههای کوتاه است که مفاهیم جدیدی را معرفی میکنند و به شما امکان میدهند مهارتهای کدنویسی تازه کسب شده خود را برای مشکلات دنیای واقعی اعمال کنید.
فصل 4 کتاب Kotlin from Scratch: حل مسائل ریاضی با کد
نشان میدهد که چگونه از کد Kotlin و الگوریتمها برای حل مسائل ریاضی با کاربردهای دنیای واقعی استفاده کنید. مفاهیم و ابزار مختلفی از ریاضیات مانند حساب، مثلثات، قضیه فیثاغورث، دنباله فیبوناچی، فرمول هاورسین، عملیات مدولار و جبر خطی را پوشش میدهد. فرآیندهای تصادفی و تولید عدد تصادفی را بررسی میکند و از بسیاری از ویژگیهای اصلی Kotlin مانند متغیرها، کلاسهای داده، ساختارهای شرطی و تکراری و توابع کتابخانه استفاده میکند.
فصل 5 کتاب Kotlin from Scratch: مدلسازی و شبیهسازی
نشان میدهد که چگونه حرکت سیستمهای فیزیکی مختلف مانند توپهای توپ، فوارههای آب، آونگها، گرمایش و سرمایش حرارتی و ستارههای دوتایی را مدلسازی و شبیهسازی کنیم. از ریاضیات، تجسم و انیمیشن برای کمک به درک دینامیک و رفتار این سیستمها در طول زمان استفاده میکند.
قسمت سوم کتاب Kotlin from Scratch، “بازگشت، مرتبسازی و جستجو”، مفاهیم و ابزار پیشرفتهتری را ارائه میکند که تسلط بر آنها تلاش قابل توجهی را میطلبد و منجر به پاداشهای قابل توجهی میشود. همه مفاهیم کلیدی به عنوان پروژههای مستقل توسعه و بررسی میشوند.
فصل 6 کتاب Kotlin from Scratch: توابع بازگشتی و فراکتالها
دنیای شگفتانگیز فراکتالها، الگوهای خود مشابهی که در مقیاسهای مختلف تکرار میشوند، را معرفی میکند. به شما آموزش میدهد که چگونه از توابع بازگشتی، سیستمهای L و مجموعه Mandelbrot برای تولید فراکتالها استفاده کنید، سپس فراکتالها را رندر کنید و خواص آنها را با JavaFX بررسی کنید.
فصل 7 کتاب Kotlin from Scratch: مرتبسازی و جستجو
بر روی مرتبسازی و جستجو، دو موضوع اساسی در علوم کامپیوتر و داده، تمرکز میکند. به شما نشان میدهد که چگونه سه الگوریتم مرتبسازی رایج (مرتبسازی درج، مرتبسازی ادغامی و مرتبسازی سریع) را پیادهسازی و مقایسه کنید و سه الگوریتم پیمایش گراف (جستجوی عمقی اول، جستجوی عرضی اول و A*) را بررسی کنید.
توضیح میدهد که چگونه از پشتهها، صفها، لیستها و نقشهها برای ذخیره و دستکاری دادهها برای مرتبسازی و جستجو استفاده کنید. همچنین پیچیدگیهای زمانی و فضایی این الگوریتمها را با استفاده از نماد بزرگ O مورد بحث قرار میدهد.
در نهایت، قسمت چهارم کتاب Kotlin from Scratch، “بهینهسازی با الگوریتمهای الهامگرفته از طبیعت”، ایدههای پیشرفتهای را معرفی میکند که از دنیای طبیعی آموخته شدهاند و به شما کمک میکنند مشکلات بهینهسازی دشوار را حل کنید. این روشها همچنین شما را با دنیای الگوریتمهای تصادفی (احتمالی) و ابتکاری آشنا میکند.
فصل 8 کتاب Kotlin from Scratch: الگوریتم ژنتیک
مزایا و چالشهای استفاده از الگوریتمهای تصادفی را که از تصادفی بودن برای مقابله با مشکلات غیرقابل حل یا پیچیده استفاده میکنند، مورد بحث قرار میدهد. الگوریتمهای ژنتیک را بررسی میکند، کلاسی از الگوریتمهای الهامگرفته از طبیعت مبتنی بر فرآیند که برای حل مشکلاتی مانند تطبیق متن، بهینهسازی ترکیبی (مشکل کوله پشتی) و یافتن بهینههای جهانی برای یک تابع چند متغیره با توسعه سه کاربرد جداگانه استفاده شده است.
فصل 9 کتاب Kotlin from Scratch: الگوریتمهای مبتنی بر عامل
دو الگوریتم مبتنی بر عامل را پوشش میدهد: بهینهسازی ازدحام ذرات و سیستمهای کلونی مورچهها. نشان میدهد که چگونه از قدرت این الگوریتمها در Kotlin با ایجاد برنامههایی برای بهینهسازی تابع و حل یک مسئله فروشنده دورهگرد استفاده کنید.
پسگفتار کتاب Kotlin from Scratch
بخش کوتاهی است که به شما میگوید کجا باید به سفر کدنویسی خود ادامه دهید تا مهارتهای کدنویسی خود را ارتقا دهید و ویژگیهای پیشرفته دیگر Kotlin را یاد بگیرید.
پروژههای کتاب Kotlin from Scratch
37 پروژه در کتاب Kotlin from Scratch طراحی شدهاند تا به شما در انعطافپذیری مهارتهای کدنویسی و حل مسئله کمک کنند. هر پروژه یک چالش جالب را مطرح میکند، به طور سیستماتیک یک استراتژی برای حل آن را ترسیم میکند و شما را در اجرای آن استراتژی به عنوان یک برنامه Kotlin راهنمایی میکند. تمام کدها و اطلاعات پسزمینه مرتبط با مشکل به طور کامل توضیح داده شدهاند. در اینجا نگاهی به هر یک از پروژهها و همه چیزهایی که با کار کردن روی آنها به دست خواهید آورد، میاندازیم:
پروژه 1: ساخت یک ماشین حساب مبتنی بر کنسول
یاد بگیرید که به طور سیستماتیک یک مشکل را بررسی کنید و یک برنامه سازمانیافته برای حل آن توسعه دهید. از ویژگیهای اصلی زبان Kotlin مانند شرطها و توابع برای طراحی یک ماشین حساب تعاملی و تمرین اعتبارسنجی ورودی کاربر استفاده کنید.
پروژه 2: ساخت یک مدیر وظیفه همه کاره
یک برنامه مدیریت وظیفه مبتنی بر کنسول طراحی و پیادهسازی کنید که به کاربران امکان اضافه کردن و حذف وظایف، نمایش لیست وظایف، بهروزرسانی وضعیت وظایف و موارد دیگر را میدهد. ساختار برنامه و دادههای آن را با استفاده از لیستها، کلاسها و کلاسهای داده سازماندهی کنید و همچنین یک پردازش خطای قوی را ادغام کنید.
پروژه 3: ساخت “Hello, World!” در JavaFX
کلاسها و کانتینرهای طرحبندی را که بلوکهای ساختمانی اساسی هر تجسم JavaFX هستند، کشف کنید. این پروژه به عنوان یک الگوی پایه برای پروژههای بعدی که به طرحهای تجسم پیچیدهتری نیاز دارند، عمل میکند.
پروژه 4: تجسم دادهها به عنوان یک نمودار ستونی
با ایجاد یک نمودار ستونی با استفاده از دادههای فروش ماهانه یک شرکت ساختگی، ابزارهای اصلی نمودارسازی JavaFX را یاد بگیرید. دادههای متنی را روی یک محور و دادههای عددی را روی محور دیگر ترسیم کنید.
پروژه 5: ایجاد یک نمودار خطی چند سریهای
با توسعه یک نمودار خطی که میانگین قد مردان و زنان در سنین مختلف را مقایسه میکند، چندین مجموعه داده را به طور همزمان تجسم کنید. دادههای عددی را هم به محور x و هم به محور y ترسیم کنید.
پروژه 6: رسم یک صدف مارپیچی
از توابع مثلثاتی داخلی Kotlin همراه با بوم JavaFX برای رسم یک صدف مارپیچی استفاده کنید. این اولین پروژه از بسیاری از پروژههایی است که در آن از ویژگیهای قدرتمند رسم آزاد JavaFX برای ایجاد یک تصویر دوبعدی پیچیده استفاده خواهید کرد.
پروژه 7: متحرک کردن یک مربع
وضعیت شروع و پایان یک مربع قرمز جامد را تعریف کنید و بگذارید انتقالهای JavaFX با حرکت روان مربع به جلو و عقب داخل پنجره گرافیک، جادوی خود را انجام دهند.
پروژه 8: متحرک کردن یک توپ پرنده
از ویژگیهای قدرتمند جدول زمانی و فریم کلیدی JavaFX استفاده کنید و خواص اشیاء را برای ایجاد حرکت جذاب دستکاری کنید. یک توپ را به آرامی در داخل یک جعبه مستطیل شکل متحرک کنید.
پروژه 9: یافتن ریشه مربع با الگوریتم بابلی
یک برنامه ساده توسعه دهید که با اصلاح تکراری تقریب مقدار آن، به ریشه مربع هر عدد مثبت همگرا میشود. سعی کنید بفهمید که تابع ریشه مربع داخلی Kotlin از چه تکنیکی برای انجام همین کار استفاده میکند.
پروژه 10: ایجاد سه گانههای فیثاغورث با فرمول اقلیدس
روش اقلیدس را برای تولید سه گانههای فیثاغورث (مجموعهای از اعداد صحیح که مجموع مربعات دو عدد اول برابر با مربع عدد سوم است) پیادهسازی کنید.
پروژه 11: شناسایی اعداد اول با غربال اراتوستن
به دنیای اعداد اول نگاهی بیندازید و از یک روش هوشمندانه توسعهیافته توسط اراتوستن برای نشان دادن آنها تا یک عدد صحیح معین استفاده کنید.
پروژه 12: محاسبه محیط زمین به روش باستانی
به مصر باستان سفر کنید تا آزمایشی را بازسازی کنید که از مثلثات ساده برای تخمین محیط و شعاع زمین با دقت قابل توجه استفاده میکند.
پروژه 13: کدگذاری دنباله فیبوناچی
یک لیست از اعداد فیبوناچی را از ابتدا ایجاد کنید و سپس مارپیچ فیبوناچی را رسم کنید. از ویژگیهای پیشرفته JavaFX برای بررسی نحوه تعبیه این مفاهیم در سیستمهای طبیعی و ساخته دست انسان استفاده کنید.
پروژه 14: یافتن کوتاهترین فاصله بین دو مکان روی زمین
با استفاده از فرمول هاورسین و درک عرض و طول جغرافیایی، کوتاهترین فاصله بین هر دو مکان روی سطح زمین را محاسبه کنید در حالی که شکل کروی زمین را در نظر بگیرید.
پروژه 15: رمزگذاری با رمز هیل
یک الگوریتم رمزنگاری کلاسیک را پیادهسازی کنید که بر اساس تبدیلهای خطی متون است. متن ساده را با استفاده از بردارها، ماتریسها و حساب مدولار به متن رمز شده تبدیل کنید و بالعکس در حالی که از عملیات آرایه چند بعدی استفاده میکنید.
پروژه 16: شبیهسازی یک پیادهروی تصادفی یک بعدی
یاد بگیرید که فرآیندهای تصادفی را با بررسی اینکه یک موجود پس از برداشتن n گام تصادفی چقدر سفر میکند، شبیهسازی کنید. از فاصله ریشه میانگین مربع (RMS) برای اندازهگیری فاصله طی شده توسط واکر استفاده کنید و شبیهسازی را هزاران بار اجرا کنید تا مقادیر RMS شبیهسازی شده را با مقادیر نظری مقایسه کنید.
پروژه 17: پیشبینی پرواز یک توپ توپ
از روش عددی دو بخشی برای یافتن ریشه یک تابع غیرخطی استفاده کنید تا مشکل قدیمی تعیین زاویه شلیک صحیح برای یک توپ توپ را حل کنید.
پروژه 18: طراحی یک فواره با جتهای آب
با طراحی یک فواره چند طبقه، فیزیک پرتابهها را بیشتر بررسی کنید. مهارتهای اصلی Kotlin را با تکنیکهای پیشرفته JavaFX ترکیب کنید تا ساختار فواره و مسیرهای جتهای آب را ایجاد و نمایش دهید.
پروژه 19: ردیابی حرکت و فاز یک آونگ
از قوانین حرکت و گرانش نیوتن برای محاسبه و رسم جابجایی زاویهای و سرعت یک آونگ به همراه فضای فاز آن در طول زمان استفاده کنید. تأثیر کشش هوا را برای واقعگرایانهتر کردن حرکت آونگ در نظر بگیرید.
پروژه 20: فیزیک خنکسازی قهوه
یک برنامه Kotlin ایجاد کنید که یک معمای اصلی را حل میکند: آیا باید خامه را هنگام خرید در کافیشاپ یا هنگام بازگشت به دفتر به قهوه خود اضافه کنید؟ از اصول خنکسازی نیوتنی برای گرم نگه داشتن قهوه خود تا حد امکان استفاده کنید.
پروژه 21: شبیهسازی یک سیستم ستاره دوتایی
رقص پیچیده دو ستاره که به دور یکدیگر میچرخند را متحرک کنید. با گذشت زمان، ستارگان با ظرافت مسیرهای خود را ترسیم میکنند و امکان کاوش دلپذیر در دینامیک ستارهای را فراهم میکنند.
پروژه 22: “سلام، جهان!” فراکتالها
ویژگیهای هندسه فراکتال را با رسم یک سری مربعهای متحدالمرکز یاد بگیرید. اولین تابع بازگشتی خود را بنویسید و شرط توقف آن را تنظیم کنید.
پروژه 23: رسم مثلث Sierpiński
یک الگوی فراکتال کلاسیک به نام Wacław Sierpiński را پیادهسازی کنید. هندسه الگو را به یک استراتژی قابل کدگذاری ترجمه کنید و چندین فراخوانی بازگشتی را از داخل همان تابع انجام دهید.
پروژه 24: ایجاد یک درخت فراکتال
یک برنامه Kotlin توسعه دهید که یک درخت فراکتال را رسم میکند، با یک تنه شروع میشود و به طور بازگشتی شاخههای کوچکتر را در جهات مخالف ایجاد میکند.
پروژه 25: طراحی یک شبیهساز L-System
یک شبیهساز L-system تعاملی را از ابتدا کد بزنید، از جمله پیادهسازی گرافیک لاکپشتی Kotlin. L-سیستمها با استفاده از یک الفبای نمادها، یک اصل شروع و مجموعهای از قوانین که نحوه جایگزینی نمادها به صورت تکراری را تعریف میکنند، فراکتالها را تولید میکنند.
پروژه 26: کدگذاری و تجسم مجموعه ماندلبروت
مجموعه ماندلبروت را محاسبه و رسم کنید، یک فراکتال دوبعدی جذاب که در صفحه مختلط تعریف شده است. این تصویر مسحورکننده از قوانین تکرار ساده پدید میآید و ساختارهای پیچیدهای را هنگام بزرگنمایی بینهایت نشان میدهد.
پروژه 27: مرتبسازی کارآمد با مرتبسازی درج
دنیای الگوریتمهای مرتبسازی و نماد بزرگ O را کاوش کنید. اگرچه کندتر از سایر روشهای مرتبسازی محبوب است، مرتبسازی درج در محل عمل میکند و منجر به پیچیدگی فضایی کم میشود.
پروژه 28: مرتبسازی سریعتر با مرتبسازی ادغامی
الگوریتم مرتبسازی ادغامی را پیادهسازی کنید، یک الگوریتم مرتبسازی سریع و کارآمد از نظر حافظه که برای مجموعه دادههای بزرگ مناسب است. به صورت بازگشتی یک آرایه از مقادیر را به زیرآرایههای کوچکتر تقسیم کنید، آنها را مرتب کنید و دوباره آنها را با هم ترکیب کنید.
پروژه 29: مرتبسازی با راندمان بالا با مرتبسازی سریع
الگوریتم مرتبسازی سریع را کد کنید، یک الگوریتم سریع و کارآمد از نظر حافظه که برای مجموعه دادههای بزرگ مناسب است. به صورت بازگشتی یک عنصر محوری را در یک آرایه انتخاب کنید و عناصر دیگر را به زیرآرایههایی با مقادیر کمتر و بزرگتر از محوری تقسیم کنید.
پروژه 30: جستجوی مبتنی بر پشته با جستجوی عمقی اول
جستجوی عمقی اول (DFS) را پیادهسازی کنید، یکی از چندین الگوریتم برای پیمایش یا جستجوی یک ساختار داده گراف. از یک پشته برای کاوش کامل هر مسیر استفاده کنید و در صورت رسیدن به بنبست، بازگردید.
پروژه 31: جستجوی مبتنی بر صف با جستجوی عرضی اول
از یک صف برای تحقق الگوریتم جستجوی عرضی اول (BFS) استفاده کنید. BFS تمام گرهها را در عمق فعلی قبل از رفتن به گرههای سطح بعدی عمق کاوش میکند.
پروژه 32: جستجوی ابتکاری با A*
A* را پیادهسازی کنید، یک الگوریتم جستجوی آگاهانه که از یک تابع ابتکاری برای هدایت جستجوی خود استفاده میکند. با توجه به یک گراف وزندار، یک گره منبع و یک گره هدف، A* کوتاهترین مسیر از منبع به هدف را پیدا میکند.
پروژه 33: تکامل هرزهنگاری به شکسپیر
از اصول ابتکاری و تکامل طبیعی برای رفتن از رشتههای تصادفی به یک خط معروف شکسپیر استفاده کنید. کد ماژولار و قابل استفاده مجدد را برای الگوریتم ژنتیک توسعه دهید و عملگرهای ژنتیکی مانند نخبهگرایی، انتخاب، تلاقی و جهش را مدلسازی کنید.
پروژه 34: حل مشکل کوله پشتی
کد الگوریتم ژنتیک خود را روی مشکل کوله پشتی، یکی از کلاسهای مشکلات بهینهسازی ترکیبی که یافتن راهحل بهینه جهانی برای آن بسیار دشوار است، رها کنید.
پروژه 35: بهینهسازی یک تابع چند متغیره با الگوریتم ژنتیک
الگوریتم ژنتیک را برای حل یک مسئله بهینهسازی با یک تابع ریاضی پیچیده، چند متغیره و غیرقابل تفکیک تطبیق دهید. از ژنهای با ارزش واقعی برای نمایش متغیرهای تصمیمگیری و یافتن راهحل بهینه جهانی در یک فضای تصمیمگیری داده شده استفاده کنید.
پروژه 36: بهینهسازی یک تابع چند متغیره با یک ازدحام ذرات
الگوریتم بهینهسازی ازدحام ذرات (PSO) را پیادهسازی کنید، یک روش مبتنی بر عامل و الهام گرفته از طبیعت که با تقلید رفتار ازدحام، به دنبال راهحلهای بهینه برای مشکلات پیچیده است. کدی بنویسید که از طریق یادگیری فردی و جمعی به دنبال بهبود مستمر باشد.
پروژه 37: حل مشکل فروشنده دورهگرد با یک سیستم کلونی مورچه
از یک سیستم کلونی مورچه، الگوریتم دیگری الهامگرفته از طبیعت، برای مقابله با برلین 52، یک مشکل بهینهسازی بسیار چالشبرانگیز، استفاده کنید. بهترین مسیر را از میان 1.551119 × 10^66 روش متمایز برای ترتیب دادن تور، از میان 52 ایستگاه در برلین کشف کنید.
سرفصلهای کتاب Kotlin from Scratch:
- Title Page
- Copyright
- Dedication
- About the Author and Technical Reviewer
- Acknowledgments
- Introduction
- The Power of Coding
- Why Kotlin?
- Who Is This Book For?
- What’s in This Book?
- The Projects
- Getting Started
- Resources
- Part I: Programming Fundamentals
- 1. Kotlin Basics
- 2. Arrays, Collections, and Classes
- 3. Visualizing with Javafx
- Part II: Applications in Math and Science
- 4. Solving Mathematical Problems with Code
- 5. Modeling and Simulation
- Part III: Recursion, Sorting, and Searching
- 6. Recursive Functions and Fractals
- 7. Sorting and Searching
- Part IV: Optimization with Nature-Inspired Algorithms
- 8. The Genetic Algorithm
- 9. Agent-Based Algorithms
- Afterword
- Appendix
- Key Definitions
- Workflow for Creating an App
- Setting Up Shop
- Index
جهت دانلود کتاب Kotlin from Scratch میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.