برای یاد گرفتن یک سری از درسها راهی به جز تمرین فراوان و مسأله حل کردن نیست. اما در بستر دانشگاه عموماً یک کتاب مرجعی انتخاب میشود که انبوهی از قضایا و نکات را پشت سر هم گفته، چند سؤال آبکی هم خودش حل کرده و بعد هم یا تمرین ندارد و یا اینکه یک سری تمرین بیپاسخ دارد که آدم نمیداند با آنها چه بکند؟ البته الان با مدلهای زبانی، کار خیلی راحتتر شده اما به نظرم همچنان کتابهایی که با رویکرد حل مسأله، موضوعی را آموزش میدهند، سودبخشترند. در ادامه برای دروس اصلی علوم کامپیوتر، چنین کتابهایی را معرفی میکنم. منظورم این است که اگر کسی آن کتابها را بخواند و مسائلشان را حل کند، نه تنها آن موضوع را بلد است (به معنای فهم قضایا و اثباتهای متعارف)، بلکه میتواند از آن موضوع به طور کاربردی استفاده کند و با آن مسائل مختلف را حل کند.

درسهای احتمال و آمار (یا تک درس آمار و احتمال)، از درسهای کلیدی، پایهای و بسیار مهم علوم کامپیوتر هستند (این جمله را احتمالاً باید برای بقیه هم بنویسم). در دانشکده ما، معمولاً احتمال را از روی کتاب قهرمانی یا شلدون راس آن را درس میدهند. خود شلدون راس با اینکه کتاب قطوری است ولی از نظر محتوا جمعوجور است و در عوض مسائل و تمرینهای فراوانی دارد. سوای آن، دو کتاب زیر هم پر از مسأله (با پاسخ) هستند:
Grimmett, G., & Stirzaker, D. (2020). One thousand exercises in probability. Oxford University Press.
Schwarz, W. (2007). 40 puzzles and problems in probability and mathematical statistics. Springer Science & Business Media.
کتاب دوم، فقط چهل مسأله دارد اما همه از اشتباهات رایج و بسیار مهم در آمار و احتمال هستند و به نظرم حتماً خوب است که آن را نگاه کنید. من موقعی که کتاب را خواندم، هفته بعدش مصاحبه شغلی داشتم و دست بر قضا همه سؤالاتش از این کتاب بود!
آمار را هم از کتاب ووناکوت درس میدهند که به نظرم قدیمی و افتضاح است و نمیدانم چرا استادان عزیز، اینقدر به این کتاب علاقه دارند. پیشنهاد خودم برای کتاب درسی آمار، کتابهای زیر است که هم زبان شیواتر و روشنتری دارند و هم پر از مثالهای خوبند:
Kokoska, S. (2021). Introductory Statistics: A Problem-Solving Approach.
Meyer, M. C. (2019). Probability and mathematical statistics: theory, applications, and practice in R. Society for Industrial and Applied Mathematics.
غیر از اینها هم کتابهای دیگروت، باتاچاریا و جانسون و جان رایس را هم دیدهام و آنها هم خوبند. کلاً فکر میکنم اگر به تصادف و چشمبسته، یک کتاب آمار بردارید، با احتمال ۹۰ درصد بهتر از ووناکوت است!

برای دادهساختار و الگوریتم معمولاً از CLRS یا کتاب دکتر قدسی تدریس میکنند. مسائل خود CLRS، حلالمسائل دارند. علاوه بر آن میتوانید از کتاب «۶۰۰ مسأله در داده ساختار و الگوریتم» نیز استفاده کنید. البته توجه کنید حل مسأله عملی در این درس، چیز جدایی است و خوب است در سایتهایی مثل کوئرا، leetcode و codeforces کد بزنید و توانایی برنامهنویسی خود را نیز ارتقا دهید.

جبرخطی هم درس خیلی مهمی است. حیف که زمانی که میخواندم، نمیفهمیدم که اصلاً اینها به چه درد میخورد. در دوره ارشد، هر درسی که برداشتیم، جبرخطی هم خودش را میانداخت وسط! برای تدریس جبرخطی، نمیدانم معمولاً از چه کتابی درس میدهند. من کتاب کنت هافمن را داشتم که اصلاً زبانش خوب نبود. در عوض کتاب شلدون اکسلر را خیلی پسندیدم. مثل آب روان بود و خوشخوان. برای حل مسأله هم دو کتاب زیر به نظرم خوبند:
Andreescu, T. (2016). Essential linear algebra with applications. Birkhäuser Basel.
Matoušek, J. (2010). Thirty-three miniatures: Mathematical and Algorithmic applications of Linear Algebra (Vol. 53). American Mathematical Soc..
یک کتاب هم به فارسی ترجمه شده که به نظر خوب است: «مسألههای پیکارجوی جبرخطی، فوژن یانگ، ترجمه آرش کریمی» اما من آن را نخواندهام. از دو کتاب بالا، کتاب آندرسکو به راستی دلنواز است. آندرسکو خودش چند سالی در کمیته المپیاد ریاضی آمریکا بوده و کتابهایش عموماً در حال و هوای المپیاد هستند و رویکرد حل مسأله دارند.
کتاب دوم هم نویسنده نازنینی دارد که علوم کامپیوتریها بیشتر با کتاب LPاش میشناسندش. ماتوسک در این کتاب، سی و سه کاربرد جالب از جبرخطی را گردآوری کرده است. برای درس جبرخطی به کارتان نمیآید ولی کلاً برای تفنن و فهم عمیقتر، خوب است.
منظورم همان نظریه زبانها و اتوماتا است. برای تدریس معمولاً از کتابهای هاپکرافت، لینز، مارتین یا سیپسر استفاده میشود. من خودم مارتین را بیشتر میپسندم. هم محتوا و نگارشش را بیشتر میپسندم، هم ظاهرش را. برای حل سؤال میتوانید از کتاب زیر استفاده کنید:
Du, D. Z., & Ko, K. I. (2004). Problem solving in automata, languages, and complexity. John Wiley & Sons.
بعضی از تعاریف به اندازه سر سوزن، تفاوت دارند اما مشکلی نیست و میتوانید با خیال راحت مسألهتان را حل کنید.
چند درس ریاضی هم داشتم که در اینجا برای هر کدام یک چیز معرفی میکنم.
جبر: جبر به روش تمرین (دو جلد)، ترجمه دکتر میمنی
منطق: کتابی که مثل موارد قبلی مستقلاً حل مسأله باشد، خاطرم نیست اما سایت دکتر مجتهدی (استاد سابق دانشگاه تهران) و دکتر محسن خانی (استاد دانشگاه صنعتی اصفهان) چیزهای مفیدی دارند. یک سایتی هم بود که مثال حل شده، فراوان داشت ولی آن را فراموش کردهام.
آنالیز ریاضی: برای آنالیز ریاضی خدا را شکر استاد، دستیار آموزشی خوبی داشت و خود آن بنده خدا راستی راستی وقت میگذاشت. حتی برای دو نفر هم کلاس تشکیل میداد و کمک میکرد سؤال حل کنیم اما جدای از آن، کتابهای زیر را هم موردی استفاده کردهام:
Kaczor, W. J., & Nowak, M. T. (2000). Problems in Mathematical Analysis: Real numbers, sequences, and series (Vol. 4). Providence, RI: American Mathematical Society.
Kaczor, W. J., & Nowak, M. T. (2000). Problems in Mathematical Analysis: Continuity and differentiation (Vol. 2). American Mathematical Soc.
Radulescu, T. L., Radulescu, V. D., & Andreescu, T. (2009). Problems in Real Analysis: advanced calculus on the real axis. Springer Science & Business Media.
توابع مختلط:
Shakarchi, R. (2012). Problems and solutions for complex analysis. Springer Science & Business Media.
Alpay, D. (2011). A complex analysis problem book. Basel: Birkhäuser.
آقای شکرچی جدای از کتاب حل مسأله فوق، به همراه اشتاین یک سری چهار جلدی هم کتاب آنالیز نوشتهاند که نازنین و خواندنیاند: آنالیز فوریه، آنالیز حقیقی، آنالیز مختلط و آنالیز تابعی.
در پایان باید دو نکته را اضافه کنم:
۱- روشن است که پیشنیاز همه موارد بالا، این است که در درس همگام با استاد باشید. منطقاً اگر بیست واحد درس دارید و پشت سر هم باید تمرین تحویل بدهید، سخت است که بخواهید سرِ صبر و حوصله برای هر درس، یک کتاب مسألهمحور بردارید و خود را مشغول کنید. همین که بتوانید با استادها پیش بروید، کافی است.
۲- بدیهی است که نیازی نیست که حتماً همه کتابهای بالا را بخوانید و سؤالاتش را حل کنید (کما اینکه خود من هم به جز سه چهار مورد، بقیه را گزینشی خواندهام).
۳- اگر پیشنهاد یا انتقادی در مورد فهرست بالا داشتید، ممنون میشوم اگر دریغ نکنید.
و سپاس خدای را
خرداد ۱۴۰۵