به درس «مبانی کامپیوتر و برنامهسازی» گروه علوم کامپیوتر دانشگاه فردوسی مشهد خوش آمدید.
این درس، نخستین گام شما بهعنوان دانشجوی رشتهی علوم کامپیوتر در دنیای کامپیوتر و برنامهسازی است. در این درس، علاوه بر آشنایی با مفاهیم پایهی کامپیوتر، مهارت تفکر الگوریتمی و حل مسئله را بهصورت گامبهگام فرا میگیرید؛ مهارتهایی که در تمام دوران تحصیل و حرفهی آیندهی شما بهعنوان یک متخصص علوم کامپیوتر، پایه و اساس خواهند بود. تمرکز اصلی این درس بر آموزش مفاهیم بنیادی است، نه صرفاً یادگیری یک زبان برنامهسازی خاص. با این حال، برای پیادهسازی مفاهیم از زبان C بهعنوان زبان مرجع استفاده شده است؛ زبانی که پایهی بسیاری از زبانهای مدرن امروزی است و درک عمیق آن، یادگیری زبانهای دیگر را بسیار سادهتر میکند.
🎯 این درس برای چه کسانی است؟¶
این درس بهطور ویژه برای دانشجویان رشتهی علوم کامپیوتر طراحی شده است؛ دانشجویانی که میخواهند:
نخستین تجربهی جدی خود را در دنیای برنامهسازی آغاز کنند.
با مفاهیم پایهی کامپیوتر، الگوریتم و ساختار برنامهنویسی آشنا شوند.
پایهای مستحکم برای دروس آیندهای مانند ساختمان دادهها، طراحی الگوریتمها، سیستمعامل و پایگاه داده بسازند.
تفکر محاسباتی (Computational Thinking) خود را تقویت کنند.
برای مطالعهی این درس، هیچ پیشنیاز برنامهنویسی لازم نیست. فقط آشنایی مقدماتی با کار با کامپیوتر کافی است.
📚 ساختار درس¶
این درس در هشت بخش سازماندهی شده است. هر بخش از چند فصل تشکیل شده و هر فصل شامل توضیح مفاهیم، مثالهای متنوع و تمرینهای عملی است:
بخش اول | مبانی و مقدمات آشنایی با مفهوم کامپیوتر، سختافزار و نرمافزار، الگوریتم، زبانهای برنامهسازی و ساختار یک برنامهی ساده.
بخش دوم | دادهها و عملگرها متغیرها، انواع دادهها، ثابتها و انواع عملگرها (حسابی، منطقی، مقایسهای و ...).
بخش سوم | کنترل جریان ساختارهای شرطی (
if،switch) و حلقهها (for،while،do-while) برای کنترل مسیر اجرای برنامه.بخش چهارم | توابع تعریف و فراخوانی توابع، پارامترها، مقدار بازگشتی، دامنهی متغیرها و بازگشت (Recursion).
بخش پنجم | ساختارهای داده پایه آرایهها، رشتهها و مقدمهای بر ساختماندادهها.
بخش ششم | اشارهگرها و حافظه مفهوم آدرس، اشارهگرها، مدیریت حافظه و ارتباط آنها با آرایهها.
بخش هفتم | دادههای ترکیبی و فایل ساختارها (
struct)، اجتماعها (union)، کار با فایلها و ذخیرهسازی داده.بخش هشتم | مباحث تکمیلی موضوعات پیشرفتهتر و نکات تکمیلی برای تکمیل دانش برنامهسازی.
🧭 چطور این درس را بخوانیم؟¶
برای بهرهگیری حداکثر از این درس، پیشنهاد میکنیم:
ترتیب بخشها را رعایت کنید. هر بخش بر مفاهیم بخش قبل بنا شده است.
کدها را خودتان اجرا کنید. فقط خواندن کد کافی نیست؛ برای یادگیری واقعی باید آن را تایپ و اجرا کنید و با تغییر آنها آزمایش کنید.
تمرینها را جدی بگیرید. تمرینهای پایان هر فصل، مهارت حل مسئلهی شما را تقویت میکنند.
از خطاها نترسید. خطاهای برنامهنویسی، بخشی طبیعی از یادگیری هستند. هر خطا یک فرصت یادگیری است.
بهجای حفظ کردن، بفهمید. هدف این درس، پرورش تفکر الگوریتمی است، نه بهخاطر سپردن دستورها.
⚙️ پیشنهاد ابزارها¶
برای اجرای کدهای این درس، میتوانید از یکی از ابزارهای زیر استفاده کنید:
کامپایلرهای آنلاین مانند OnlineGDB یا Replit برای شروع سریع.
GCC روی لینوکس یا مک، بههمراه یک ویرایشگر متن مثل VS Code یا Vim.
Dev-C++، Code::Blocks یا Visual Studio روی ویندوز.
نیاز به نصب هیچ ابزار پیچیدهای نیست؛ حتی یک کامپایلر ساده برای شروع کافی است.
🔗 ارتباط با دروس دیگر¶
مفاهیمی که در این درس میآموزید، پایهی بسیاری از دروس تخصصی دورهی کارشناسی علوم کامپیوتر خواهند بود:
ساختمان دادهها: آرایهها و اشارهگرها پیشنیاز مستقیم این درس هستند.
طراحی الگوریتمها: تفکر الگوریتمی که در این درس پرورش مییابد، در آن درس عمیقتر میشود.
سیستمعامل: درک مدیریت حافظه و اشارهگرها برای این درس ضروری است.
پایگاه داده: آشنایی با ساختارها و فایلها در این درس، مقدمهای برای آن درس است.
زبانهای برنامهسازی: درک مفاهیم پایه، یادگیری پارادایمهای دیگر را سادهتر میکند.
🙏 سپاسگزاری¶
این درسنامه حاصل تلاش تعداد زیادی از دانشجویان علوم کامپیوتر دانشگاه فردوسی مشهد است؛ دانشجویانی که در طول ترمهای مختلف، در تهیه، بازبینی، ویرایش و بهبود محتوای آن نقش داشتهاند. از همهی اساتید، دستیاران آموزشی و دانشجویانی که در شکلگیری این مجموعه سهیم بودهاند، صمیمانه سپاسگزاریم.
اگر در متن درس خطا یا نکتهای برای بهبود یافتید، خوشحال میشویم از طریق مخزن گیتهاب پروژه آن را با ما در میان بگذارید:
🔗 https://
آمادهاید؟ از منوی کناری، «بخش اول | مبانی و مقدمات» را انتخاب کنید و نخستین گام سفر علمی خود را بهعنوان یک دانشجوی علوم کامپیوتر بردارید. 🚀