شما در حال شروع به مطالعه یک موضوع جالب و مهم در ویرایش سوم کتاب Introduction to the Theory of Computation هستید: نظریه محاسبات. این نظریه، ویژگیهای اساسی ریاضی سخت افزار کامپیوتر، نرم افزار و کاربردهای خاصی از آن را شامل میشود. در بررسی این موضوع، ما به دنبال آن هستیم که مشخص کنیم که چه چیزی قابل محاسبه است، با چه سرعتی، با چه مقدار حافظه و با کدام نوع مدل محاسباتی. این موضوع ارتباطات آشکاری با روش مهندسی دارد و مانند بسیاری از علوم، جنبههای کاملاً فلسفی نیز دارد.
من میدانم که بسیاری از شما مشتاقانه منتظر مطالعه این مطالب هستید اما برخی هم ممکن است انتخابی جز این نداشته باشید. شما ممکن است که بخواهید مدرک علوم کامپیوتر یا مهندسی را کسب کنید و این دوره تئوری نیز لازم است - خدا میداند چرا. از این گذشته، آیا تئوری سخت، کسل کننده و از همه مهمتر بی ربط نیست؟
برای دیدن این که تئوری نه سخت و نه خسته کننده است، بلکه درعوض کاملاً قابل فهم و حتی جالب است ادامه مطلب را بخوانید. علم کامپیوتر تئوری ایدههای بسیار جالب و جذاب زیادی دارد، اما همچنان دارای بسیاری از جزئیات کوچک و گاه کسل کننده است که میتواند خسته کننده باشند. یادگیری هر موضوع جدیدی کار سختی است، اما اگر موضوع به درستی ارائه شود، آسانتر و لذت بخشتر میشود. هدف اصلی من در نوشتن این کتاب این است که شما را در معرض جنبههای واقعاً هیجان انگیز نظریه محاسبات قرار دهم، بدون آنکه به کار کردن زیاد و بیهوده گرفتار شوید. البته تنها راه برای تعیین اینکه آیا تئوری شما را علاقه مند میکند یا نه، سعی در یادگیری آن است.
تئوری با حرفه مرتبط است. تئوری ابزارهای مفهومی را ارائه میدهد که شاغلان در مهندسی کامپیوتر از آنها استفاده میکنند. طراحی یک زبان برنامه نویسی جدید برای یک برنامه تخصصی؟ آنچه که در مورد گرامر در این دوره آموخته اید مفید خواهد بود. کار با با جستجوی رشته و تطبیق الگو؟ ماشینهای خودکار متناهی و عبارات منظم را به یاد داشته باشید. با مسئله ای روبرو هستید که به نظر میرسد به زمان کامپیوتر بیشتری از آنچه که در دسترس هست احتیاج دارد؟ به آنچه در مورد NP کامل آموخته اید، فکر کنید. همچنین زمینههای کاربردی دیگر، مانند پروتکلهای رمزنگاری مدرن، به اصول نظری که در اینجا میآموزید تکیه دارند.