برنامه‌سازی سی پلاس‌پلاس

مدرس: فرشید شیرافکن گواهی: رسمی دوزبانه
ترم: زمستان ۱۴۰۳ پیش‌نیاز: –
زمان ارائه: دوشنبه ۱۷:۰۰ تا ۲۰:۰۰ محل برگزاری: کلاس مجازی

هدف کلی

هدف کلی این درس، آشنایی دانشجویان با مفاهیم پایه و اصول زبان برنامه‌نویسی ++C و توانمندسازی آن‌ها در طراحی و پیاده‌سازی برنامه‌های ساده تا متوسط است. در این دوره، دانشجویان با مباحثی از جمله انواع داده‌ها، عملگرها، دستورات شرطی و حلقه‌ها آشنا می‌شوند که این موارد اساس نوشتن کدهای ساخت‌یافته را فراهم می‌کنند. همچنین با موضوعات پیشرفته‌تری چون آرایه‌ها، اشاره‌گرها، توابع و ساختارها آشنا خواهند شد که آن‌ها را برای سازمان‌دهی داده‌ها و کنترل بهتر برنامه‌ها یاری می‌دهد. در پایان نیز به موضوعات شیءگرایی و داده‌های عام پرداخته می‌شود تا دانشجویان بتوانند برنامه‌های پیچیده‌تر و ماژولارتر ایجاد کنند. از اهداف دیگر این درس، تقویت توانایی حل مسئله و آشنایی با پیچیدگی زمانی الگوریتم‌ها است که به دانشجویان کمک می‌کند تا برنامه‌هایی بهینه‌تر و کاراتر بنویسند.

سرفصل‌ها

  • مفاهیم اولیه (۱ جلسه)
    • تاریخچه
    • انواع داده‌ها
    • دستورات ورودی و خروجی (cin, cout)
  • عملگرها (۲ جلسه)
    • عملگرهای ریاضی
    • عملگرهای مقایسه‌ای
    • عملگرهای منطقی
    • عملگرهای انتساب
    • عملگرهای بیتی
    • تقدم عملگرها
  • دستورات شرطی (۱ جلسه)
    • دستور if ساده
    • دستور if همراه با else
    • دستور switch
  • دستورات تکرار (حلقه‌ها) (۳ جلسه)
    • حلقه for
    • حلقه while
    • حلقه do-while
    • حلقه‌های تودرتو
    • دستورات break, continue
  • رشته‌ها (۱ جلسه)
    • آشنایی با رشته
    • متدهای کار با رشته مانند
      • length
      • compare
      • substr
      • find
      • replace
      • insert
      • erase
      • at
      • append
  • آرایه‌ها (۱ جلسه)
    • آرایه‌های یک بعدی
    • آرایه‌های دو بعدی
  • اشاره‌گر (۱ جلسه)
    • معرفی اشاره‌گر
    • اشاره‌گر به آرایه
    • اشاره‌گر به اشاره‌گر
    • دسترسی به آرایه با اشاره‌گر
  • تابع (۳ جلسه)
    • تعریف تابع
    • تابع‌های بازگشتی
  • استراکچر، یونیون و نوع شمارشی (۱ جلسه)
    • استراکچر
    • استراکچرهای تودرتو
    • یونیون (اتحاد)
    • نوع شمارشی
  • فایل (۲ جلسه)
    • ایجاد فایل
    • نوشتن در فایل
    • خواندن از فایل
    • کار با با فایل دودویی و متنی
  • مقدمه‌ای بر شیءگرایی (۲ جلسه)
    • تعریف کلاس
    • سازنده و مخرب
    • ارث‌بری
  • داده‌های عام (Generics) (۱ جلسه)
    • وکتور (بردار)، مپ، مجموعه، صف، پشته و متدهای کار با آن‌ها
    • معرفی Iterators, Capacity, Element access, Modifiers
    • پیچیدگی زمانی (Time Complexity)

ارزیابی

  • تمرین‌های برنامه‌سازی و پروژه: ۱۰ نمره
  • آزمون‌ پایانی: ۱۰ نمره
  • چالش‌های برنامه‌سازی: ۱ نمره اضافی

منابع

  1. S. Lippman, J. Lajoie, B. Moo. C++ Primer. 5th Edition, Addison-Wesley Professional, ISBN: 9780133053043.
  2. B. Stroustrup. The C++ Programming Language. 4th Edition, Addison-Wesley, ISBN: 978-0321563842.
  3. U. Kirch-Prinz. A Complete Guide to Programming in C++. 1st Edition.