مبانی برنامهسازی
Fundamentals of Programming
شماره درس: ۴۰۱۵۳ | تعداد واحد: ۳ |
مقطع: کارشناسی | نوع درس: نظری |
پیشنیاز: – | همنیاز: – |
اهداف درس
هدف از این درس، آشنایی دانشجویان با برنامهسازی به زبان سی، نوشتن کد مهندسیساز (برنامهسازی ساختارمند، توضیحگذاری، جدانویسی)، و توانایی پیادهسازی شبهکد است.
ریز مواد
- مفاهیم اولیه (۱ جلسه)
- تاریخچهی توسعهی کامپیوتر (سیستمهای عامل، زبانهای برنامهسازی)
- معرفی اجزای اصلی کامپیوتر
- تاریخچهی C/C++
- برنامهسازی ساختیافته و نوشتن کد مهندسیساز
- ساختار و مراحل ساخت و اجرای برنامه
- محاسبات در کامپیوتر (۱ جلسه)
- سیستمهای عددی (دودویی، دهدهی، مبنای شانزده)
- جمع و تفریق در مبناها
- تبدیل مبناها
- آشنایی با الگوریتم و فلوچارت (۲ جلسه)
- تعریف الگوریتم و مراحل حل مسئله
- اجزای الگوریتم (محاسبات، تصمیمگیری، تکرار)
- نمایش تصویری الگوریتم به وسیلهی فلوچارت
- نمونههایی از چند الگوریتم اولیه
- مقدمات برنامهسازی (۱ جلسه)
- متغیرها، انواع داده
- دستورهای ورودی/خروجی
- آشنایی با کدنویسی خوب (توضیحگذاری، جدانویسی)
- محاسبات ریاضی (جمع، تفریق، ضرب، تقسیم، باقیمانده)
- اولویت محاسبات
- مقایسه
- فرمتبندی ورودی/خروجی (۱ جلسه)
- قالببندی خروجی با printf
- کنترل دقت نمایش اعداد در خروجی
- چاپ اعداد صحیح، اعداد ممیزدار، رشتهها، و کاراکترها
- خواندن قالببندی شده از ورودی با scanf
- دستورها (۳ جلسه)
- دستورهای انتخاب (if, if/else, switch)
- دستورهای تکرار (while, for, do/while)
- تبدیل دادهها
- ثابتها (const)
- عملگرهای منطقی
- عملگر انتخاب ? :
- استفاده از typename
- توابع (۴ جلسه)
- توابع ریاضی
- توابع تصادفی
- توابع زمان
- الگوی توابع (prototype)
- ردههای ذخیرهسازی (static, register, extern)
- حوزههای تعریف (file, function, block)
- پشته در فراخوانی تابع
- توابع بازگشتی
- مقایسه توابع بازگشتی و غیربازگشتی
- پروندههای header
- آزمون و خطایابی برنامه (۱ جلسه)
- استفاده از دستورهای خروجی برای پیدا کردن خطا
- استفاده از امکانات IDE برای پیدا کردن خطا
- آرایهها (۵ جلسه)
- تعریف و بهکارگیری آرایهها
- ارسال آرایه به تابع
- جستجوی دودویی در آرایه
- مرتب سازی آرایه
- آرایههای چندبعدی
- تعریف ثابتها با استفاده از define
- اشارهگرها (۳ جلسه)
- عملگرهای اشارهگری
- فراخوانی با ارجاع توسط اشارهگرها
- استفاده از const در اشارهگرها
- عملگر sizeof
- محاسبات آدرس بر روی اشارهگرها (جمع، تفریق)
- ارتباط بین اشارهگرها و آرایهها
- آرایهای از اشارهگرها
- کاراکترها و رشتهها (۱ جلسه)
- تبدیل کاراکترها
- توابع رشتهای
- دستکاری رشتهها
- ساختارها (۲ جلسه)
- تعریف ساختار (struct)
- دسترسی به اعضای ساختار
- ارسال ساختارها به توابع
- ایجاد نامهای مترادف با typedef
- نوع دادهی union
- ثابتهای شمارشی (enum)
- عملگرهای بیتی
- آشنایی با زبان سی++ (۱ جلسه)
- ورودی و خروجی با استفاده از جویبارها
- فضای نامها، استفاده از using
- عملگر تغییر حوزه "::"
- انواع فراخوانی توابع (با مقدار و با ارجاع)
- توابع درونخط (inline)
- تعریف مقدار پیش فرض در توابع
- سربارگذاری توابع
- آشنایی با ردهها (۱ جلسه)
- ردهها (class)
- اعضای دادهای و توابع عضو
- حوزههای public و private
- سازندهها
- مقداردهی اشیاء
- ارسال/دریافت اشیاء به/از توابع
- پروندهها (۱ جلسه)
- خواندن و نوشتن در پروندههای ترتیبی
- جویبارهای ورودی و خروجی
- خواندن و نوشتن در پروندههای تصادفی (اختیاری)
- مباحث اختیاری (در صورت فرصت)
- آشنایی با ردههای نمونه نظیر string و vector
- آشنایی با فرایند تولید نرمافزار
- پیشپردازشگرها در C
ارزیابی
- آزمون میانترم: ۴ نمره
- آزمون پایانی: ۷ نمره
- تمرینهای برنامهسازی (دست کم ۴ تمرین): ۴ نمره
- پروژه (طی دو مرحله در طول نیمسال): ۳ نمره
- آزمونکها: ۲ نمره
- فعالیت اضافی (مانند شرکت در مسابقهی برنامهسازی): ۱ نمرهی اضافی
مراجع
- P. Deitel and H. Deitel. C: How to Program. 8th Edition, Prentice-Hall, 2016.
- B. W. Kernighan and D. M. Ritchie. The C Programming Language. 2nd Edition, Prentice Hall, 1988.