برای کسایی که فیزیک میخونند خیلی مهمه که جبر خطی رو درست حسابی یاد بگیرن؛ چون هم فاله و هم تماشا! هم خیلی کاربرد داره و هم خیلی درک و شهود ما رو بالا میبره. از مکانیک کوانتومی گرفته تا سیستمهای پیچیده، همه به ابزارهای جبرخطی نیاز دارن! همینطور خارج از فیزیک، مثلا در علم داده (دیتا ساینس) هم خیلی کاربردیه. خلاصه که این تابستون از دورههای آنلاین استفاده کنید و جبر خطی یادبگیرین 🙂
«پشتپرده نجوم» عنوان یک سری از لایوهای اینستاگرامی هست که در آن با چند نفر از دانشجویان و اساتید دانشگاهی، درمورد تصویر درست علم نجوم و فرآیندها و اتفاقاتی که در عمل، در جامعه علمی در جریان است، گفتوگو شده و همچنین کندوکاوی درمورد مسائل مهمی از قبیل روایتگری در علم و شبهعلم داشته است.
امروزه با پیشرفت تکنولوژی، نقش دادهها در حوزههای مختلف علم، ازجمله علم نجوم، بیشازپیش نمایان شده است. بهنظر میرسد ابزار برنامهنویسی و شبیهسازی در آیندهای نزدیک، به یکی از مهارتهای مهم و ضروری برای پژوهش در علم (نجوم) تبدیل شود؛ کما اینکه هماکنون نیز تا حدی همینگونه است. در ششمین بخش از «پشت پرده علم» با علیرضا وفایی صدر، پژوهشگر فیزیک در مقطع پسادکتری در IPM، درمورد جایگاه علم داده در نجوم امروزی گفتوگو کردهایم. ویدیو و صوت این گفتوگو ضبط شده و در ادامه این متن میتوانید آن را ببینید و بشنوید.
در علم نجوم امروزی، بهدلیل ساخت تلسکوپها و آشکارسازهای بزرگ متعدد ـ و ترکیب تلسکوپهای بزرگ با یکدیگر با استفاده از روش تداخلسنجی، برای ساخت تلسکوپهای مجازیِ حتی بزرگتر ـ و همچنین افزایش کیفیت و رزولوشن تصاویر دریافتی از آسمان، حجم دادهها بسیار افزایش پیدا کرده و کار با دادههای کلان، به مسئلهای مهم تبدیل شده است. بهعنوان مثال، برای ثبت اولین تصویر از یک سیاهچاله که سال پیش توسط تیم تلسکوپ افق رویداد منتشر شد، هشت آرایه از تلسکوپهای رادیویی، حدود یک هفته رصد انجام دادند که منجر به دریافت دادهای با حجم حدود ۲۷ پتابایت شد و کار انتقال، پاکسازی و تحلیل آن حدود ۲ سال طول کشید (برای اطلاعات بیشتر درمورد جزئیات ثبت این تصویر، این نوشته را بخوانید)!
در گفتوگویمان با علیرضا وفاییصدر، به مسائل مختلفی در زمینه نقش داده در نجوم پرداختهایم؛ از جمله اینکه: چطور میتوان دادههای کلان را سروسامان داد؟ ماشینها (کامپیوترها) چه جنس کارهایی را در زمینه نجوم میتوانند برای ما انجام دهند؟ همکاریهای بینالمللی چه نقشی در این زمینه دارند؟
بخش ششم «پشت پرده نجوم» ویدیوی گفتوگوی محمدمهدی موسوی (فیزیکپیشه) و علیرضا وفاییصدر (پژوهشگر فیزیک در مقطع پسادکتری در IPM) درمورد جایگاه علم داده در نجوم امروزی
بعد از مدتها، فرصتی پیش اومد تا با مهدی در مورد وبلاگنویسی و روایتگری در علم گپ بزنیم. ویدیوی این گفتوگو ضبط شده و در ادامهی این نوشته میتونید ببینیدش. بهطور کلی در مورد این حرف زدیم که چرا وبلاگنویسی مهمه، منظورمون از روایتگری در علم چیه و اشارههایی هم داشتیم به تجربههامون در سیتپور. حین این گپ و گفت یک سری وبلاگ معرفی شد و یک سری ایده و ترفند برای شروع وبلاگنویسی که سعی میکنم اینجا به اونها اشاره مختصری کنم.
وبلاگهایی که شخصا دنبال میکنم رو با توجه به سطح مطالبشون لیست کردم. منظور از «عمومی» یعنی مناسب هر علاقهمندی بدون در نظر گرفتن پیش زمینه خاصی هستند. «کمی فنی» یعنی باید دانش عمومی از ریاضیات و فیزیک داشته باشید. مثلا دانشجوی کارشناسی این رشتهها باشید. «فنی» یعنی نیاز به دونستن پیشزمینههای خاص در فیزیکی یا ریاضی هست. «خیلی فنی» هم یعنی باید دانشجوی تحصیلات تکمیلی باشین دستکم!
برای زندگی روزمره و بیشتر برای جنبههای عمومی مسئله:
من معمولا از پایتون برای برنامهنویسی استفاده میکنم، چون پایتون آزاده، رایگانه و یه حالت آچار فرانسهطوری داره که کارهای مختلف میشه باهاش کرد. همینطور پایتون کتابخونههای زیادی داره که برای کارهای مختلف علمی (محاسباتی) میشه ازشون استفاده کرد. خوبی این کتابخونهها اینه که به زبانهای سطح پایینتری نوشته شدن به همین خاطر به قدر کافی سریع هستند! اگر هم کسی قصد کارهای تحلیل داده و یادگیری ماشین داشته باشه هم پایتون گزینه اوله، دست کم برای شروع! خلاصه همیشه به همه پیشنهاد میکنم که با پایتون شروع کنید و اگه کار دانشگاهی میکنید با پایتون ادامه بدین! از همه مهمتر وقتی شما با پایتون کد میزنید معمولا آدمهایی رو پیدا میکنید که مثل شما روی پروژه یا مسئله مشابهی کار کردن یا کار میکنند و از تجربیاتشون میتونید استفاده کنید یا ازشون سوال بپرسین.
با این وجود گاهی پیش میاد که آدم مجبور به استفاده از زبانهای دیگه بشه. تجربه شخصی من اینه که عمده دانشگاهیها به این دلیل مجبور میشن از یک زبان خاص استفاده کنند که به قدر کافی آدمهای حرفهای در تیمشون نیست! گاهی استاد و تیمی که پروژهای رو پیش برده سالها با یک زبان خاص کد زدند و ترجیحشون اینه که آدمهای جدید هم با همون زبون ادامه بدن. راه کمدردسرتری هست معمولا، هر چند که گاهی میتونه به شدت احمقانه باشه! خلاصه ممکنه که هر کسی مجبور بشه سراغ زبانها یا محیطهای دیگه برنامهنویسی بره. یکی از این محیطها متلب هست. توی لینوکس میتونید از Octave به جای متلب استفاده کنید و لذتش رو ببرید!
متلب یک محیط نرمافزاری برای انجام محاسبات عددی و یک زبان برنامهنویسی نسل چهارم است. واژهٔ متلب هم به معنی محیط محاسبات رقمی و هم به معنی خود زبان برنامهنویسی مورد نظر است که از ترکیب دو واژهٔ MATrix (ماتریس) و LABoratory (آزمایشگاه) ایجاد شدهاست. این نام حاکی از رویکرد ماتریس محور برنامه است، که در آن حتی اعداد منفرد هم به عنوان ماتریس در نظر گرفته میشوند.
گنو اُکتاو ( GNU Octave) زبان برنامهنویسی سطح بالایی است که بیشتر برای محاسبات عددی به کار میرود. این برنامه امکانات زیادی را از طریق رابط خط فرمان برای حل عددی مسائل خطی و غیر خطی میدهد. این برنامه را میتوان جایگزین مناسبی برای همتای غیر آزاد خود متلب به حساب آورد.
پیشنهاد من اینه که کلیات متلب رو یاد بگیرین و از منابع مختلف مربوط به کارتون استفاده کنید. مخصوصا از مثالهای خود Mathworks استفاده کنید. مثلا اینجا ۵۰۰ تا مثال خیلی خوب برای ریاضیات، آمار و یادگیری ماشین هست. خوبه به اینها حتما نگاه کنید. حواستون باشه که به روی ایران بستهس و شما نیاز به چیزی برای دور زدن تحریم دارین که حتما راههای مختلفی بلدین براش!
به عنوان پیشنهاد به دوستانی که معلم این درس یا درسهای دیگه میشن : میتونید به جای حلتمرین سنتی پایه کلاسهاتون رو بر همچین چیزی بذارید. همین کار کوچیک میتونه تغییر محسوسی توی آموزش فیزیک بهوجود بیاره. این کتاب نسخه پایتونی هم داره!
خیلی وقته که از من پرسیده میشه که اگر بخوایم یادگیری سیستمهای پیچیده رو شروع کنیم باید چیکار کنیم؟! آیا میشه بیرون از دانشگاه این کار رو انجام داد؟ یا اگر من رشتهم مثلا کیهانشناسی، آمار یا ریاضی هست برام مقدوره که یادبگیرم؟ خب جواب اینه: چرا که نه! اما اینکه یک راه خیلی خاص وجود داشته باشه، راستش وجود نداره. در حقیقت آدمهای مختلفی به این سوال طی سالهای گذشته جوابهای متنوعی دادن؛ مثلا مارک نیومن یکبار در مورد موضوعات مطرح و منابع موجود در Complex Systems: A Survey نوشته. با این حال سعی میکنم طرحی برای شروع یادگیری سیستمهای پیچیده در ادامه ترسیم کنم. از هرگونه نظر، انتقاد یا پیشنهاد از صمیم قلب استقبال میکنم، بهویژه از طرف متخصصان. راستی قبلتر نوشتهای با عنوان «چگونه یک فیزیکدان نظری خوب شویم؟» از خِراردوس توفت، نوبلیست، ترجمه کرده بودم.
پیشفرض این نوشته اینه که خواننده به حساب دیفرانسیل و انتگرال، معادلات دیفرانسیل و فیزیک پایه مسلط هست و علاقه شدیدی به ورود به حوزه بینرشتهای داره! اصلیترین پیشنیاز برای یادگیری سیستمهای پیچیده شهامت و حوصله کافی برای ورود به دنیایی تازه و هیجانانگیزه! اگر به دنبال کتابی هستین که حس کلی از «سیستمهای پیچیده» به شما بده نگاه کنید به کتاب «سیری در نظریه پیچیدگی» نوشته ملانی میچل با ترجمه رضا امیر رحیمی. همینطور کورس مقدماتی در Complexity Explorer وجود داره برای این که یک آشنایی کلی از سیستمهای پیچیده پیدا کنید.
لیستی که در ادامه اومده، بسته به هر موضوع، از ابتدایی به پیشرفته مرتب شده و تقریبا سعی کردم ترتیب معنیداری برقرار کنم. به این معنی که شما میتونید بهترتیب موضوعات مطرح شده یادگیری اونها رو شروع کنید و بسته به زمانی که دارین توی هر کدوم عمیق و عمیقتر بشین!
۱) جبر خطی و ماتریسها
برای شروع نیاز به مفاهیم و تکنیکهای جبرخطی دارین. باید بتونید با ماتریسها خوب کار کنید.
Self-contained, precise. Numerous examples and exercises make it a valuable teaching book Builds a bridge between physics of glasses and computer science problems
به طور کلی، دورههای آموزشی Complexity Explorer رو دنبال کنید. موسسه سنتافه (سانتافه!) یک کورس مقدماتی روی پیچیدگی داره. همینطور پیشنهاد میکنم عضو کانال Complex Systems Studies در تلگرام بشین. فراموش نکنید که اینترنت پره از منابع خوب برای یادگیری ولی چیزی که کمه، همت! در آخر دیدن این ویدیو رو با زیرنویس فارسی پیشنهاد میکنم: