کتاب SICP: سفری جذاب به دنیای برنامهنویسی و ساختارهای داده با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
دوره SICP: سفری جذاب به دنیای برنامهنویسی و ساختارهای داده SICP: سفری جذاب به دنیای برنامهنویسی و ساختارهای داده فراتر از کدنویسی بیاموزید؛ مانند یک معمار نرمافزار فکر کنید! معرفی دوره: چرا این دور...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره SICP: سفری جذاب به دنیای برنامهنویسی و ساختارهای داده
موضوع کلی: مبانی علوم کامپیوتر
موضوع میانی: انتزاع در برنامهنویسی و طراحی نرمافزار
📋 سرفصلهای دوره
- 1. مقدمه: چرا SICP و مبانی علوم کامپیوتر؟
- 2. عناصر اساسی برنامهنویسی: عبارتها و نامها
- 3. ترکیببندی: ساخت برنامهها از قطعات کوچک
- 4. انتزاع: ایجاد رویهها (توابع)
- 5. مدل جایگزینی: درک ارزیابی رویهها
- 6. عبارتهای شرطی: تصمیمگیری در برنامهها (if و cond)
- 7. فرآیندهای بازگشتی (Recursive Processes)
- 8. فرآیندهای تکراری (Iterative Processes)
- 9. مقایسه بازگشت و تکرار: بهینگی و ساختار
- 10. مدل محیط: درک دامنه و تخصیص متغیرها (مقدماتی)
- 11. رویههای مرتبه بالاتر: رویهها به عنوان آرگومان
- 12. رویههای مرتبه بالاتر: رویهها به عنوان مقدار بازگشتی
- 13. مثال کاربردی: نقطه ثابت (Fixed-Point Iteration)
- 14. مثال کاربردی: روش نیوتن برای یافتن ریشهها
- 15. ساخت رویههایی که رویه میسازند
- 16. انتزاع رویهای: کپسولهسازی منطق
- 17. توابع بدون نام (Lambda Expressions)
- 18. مدیریت دامنه: بلوکهای محلی و let
- 19. طراحی برنامهها با افزایش تدریجی انتزاع
- 20. مقدمهای بر دادههای ساختاریافته
- 21. انتزاع داده: معرفی مفهوم
- 22. دادههای مرکب: زوجها (Pairs)
- 23. سازندهها (Constructors)، انتخابگرها (Selectors) و گزارهها (Predicates)
- 24. طراحی سیستمهای داده با انتزاع
- 25. مثال: نمایش اعداد گویا
- 26. موانع انتزاع: جداسازی پیادهسازی از رابط
- 27. انتخاب نمایش داده: تأثیر بر طراحی
- 28. لیستها: ساختار بنیادی برای توالیها
- 29. عملیات اصلی روی لیستها: car، cdr، cons
- 30. پردازش توالیها با رویههای مرتبه بالاتر
- 31. نگاشت (Mapping) توالیها
- 32. فیلتر کردن (Filtering) توالیها
- 33. انباشت (Accumulating) توالیها (Fold/Reduce)
- 34. توالیهای سلسلهمراتبی: درختها
- 35. نمایش درختان و عملیات روی آنها
- 36. مثال جامع: مشتقگیری نمادین
- 37. مجموعهها به عنوان توالیها
- 38. نمایش مجموعهها با درختهای جستجوی دودویی
- 39. دیکشنریها و جداول جستجو
- 40. رابطهای قراردادی: استانداردسازی تعاملات داده
- 41. برنامهنویسی دادهمحور: معرفی
- 42. برچسبهای نوع (Type Tags) در برنامهنویسی دادهمحور
- 43. جداول اعزام (Dispatch Tables)
- 44. سبک پیامرسانی (Message Passing)
- 45. بستهها و ماژولها: سازماندهی کد
- 46. انتزاع برای انواع دادههای مختلف (مثال: اعداد مختلط)
- 47. گسترش سیستمهای داده: افزودن انواع جدید
- 48. مقدمه: مدلسازی با زمان و تغییر حالت
- 49. تخصیص (Assignment): `set!` و اثرات جانبی
- 50. حالت محلی (Local State) و اشیاء
- 51. مدل محیط پیشرفته: فریمها و تخصیص حافظه
- 52. مثال: طراحی حساب بانکی
- 53. مثال: تولید اعداد تصادفی
- 54. ساختارهای داده قابل تغییر: لیستهای تغییرپذیر
- 55. صفها (Queues) با استفاده از دادههای تغییرپذیر
- 56. جداول هش (Hash Tables) و مدیریت داده
- 57. اشتراکگذاری و تغییر حالت: چالشها
- 58. مشکل همگامی (Concurrency) و رقابت بر سر منابع
- 59. مدلسازی با جریانها (Streams): جایگزینی برای حالت صریح
- 60. جریانهای بینهایت و تولید داده پویا
- 61. عملیات روی جریانها: نگاشت و فیلتر (stream-map, stream-filter)
- 62. مثال: غربال اراتوستن با جریانها
- 63. تأخیر در ارزیابی (Delay and Force)
- 64. بهینهسازی با Memoization
- 65. مقدمه: برنامهنویسی مبتنی بر محدودیت (Constraint Propagation)
- 66. شبیهسازیها با اشیاء و حالت
- 67. طراحی پیشرفته اشیاء و الگوهای شیءگرایی
- 68. انتزاع فرازبانی: ساخت مفسرها
- 69. ارزیابیگر فراچرخهای: Scheme در Scheme
- 70. ساختار یک مفسر: `eval` و `apply`
- 71. نمایش عبارتهای زبان
- 72. مدیریت فرمهای خاص (Special Forms)
- 73. نقش محیط در ارزیابیگر
- 74. گسترش مفسر: افزودن قابلیتهای جدید به زبان
- 75. ارزیابی تنبل (Lazy Evaluation): پیادهسازی در مفسر
- 76. مقایسه ارزیابی عادی و کاربردی در مفسر
- 77. برنامهنویسی غیرقطعی (Non-Deterministic Programming): معرفی
- 78. `amb` و مفسر `amb`: کاوش فضای جستجو
- 79. راهبردهای جستجو در برنامهنویسی غیرقطعی
- 80. مقدمهای بر برنامهنویسی منطقی (Logic Programming)
- 81. ماکروها: گسترش نحو زبان
- 82. تبدیلهای نحوی و اعتبارسنجی
- 83. نقل قولهای شبهمعنایی (Quasiquotation)
- 84. مقدمه بر کامپایلرها: از مفسر تا کامپایلر
- 85. ساختار یک کامپایلر: بخشهای مختلف
- 86. بهینهسازیهای کامپایلر
- 87. زبانهای خاص دامنه (DSLs): طراحی و پیادهسازی
- 88. طراحی زبانهای برنامهنویسی جدید
- 89. مدل ماشین ثبات (Register Machine Model)
- 90. طراحی شبیهساز ماشین ثبات
- 91. مجموعه دستورالعملها و کنترل جریان
- 92. کامپایل Scheme به ماشین ثبات
- 93. پشته (Stack) و مدیریت کنترل
- 94. جمعآوری زباله (Garbage Collection): مدیریت خودکار حافظه
- 95. الگوریتمهای جمعآوری زباله: Mark-Sweep
- 96. الگوریتمهای جمعآوری زباله: Copying
- 97. ماشینهای مجازی (Virtual Machines)
- 98. ماهیت محاسبات: از سطح بالا تا سطح پایین
- 99. مروری بر اصول SICP: انتزاع، مدلسازی و طراحی
- 100. آینده برنامهنویسی: چالشها و فرصتها
تگها:
Abstraction
Computer Science
Lisp
Scheme
SICP
SICP Course
SICP فارسی
انتزاع
برنامه نویسی تابعی
برنامه نویسی کامپیوتر
برنامهنویسی
ساختارهای داده
طراحی نرمافزار
علوم کامپیوتر
مبانی برنامهنویسی
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.