برنامه نویسی پیشرفته

دوره‌های دانشگاهی
30 جلسه

سرفصل‌ها

در این درس فنونی مورد بررسی قرار می‌گیرند که در نوشتن برنامه‌های با کیفیت مؤثرند. محور اصلی این فنون برنامه‌نویسی شیءگرا خواهد بود که در قابلیت نگهداری برنامه‌ها و استفاده مجدد از اجزای آنها نقش کلیدی دارد. علاوه بر این، درستی کارکرد، سرعت اجرا و استفاده بهینه از حافظه عوامل کیفی دیگری هستند که مورد توجه این درس هستند. زبان برنامه‌نویسی مورد استفاده سی‌پلاس‌پلاس است اما سعی می‌شود تا حد امکان مفاهیم مطرح شده مستقل از زبان و در سطحی بالاتر مورد بحث قرار بگیرند. پیش‌نیاز این درس دانستن مبانی کامپیوتر و برنامه‌نویسی به زبان سی (شامل مفاهیم پایه، توابع، ساختارها و اشاره‌گرها) می‌باشد. برنامه‌های مطرح‌شده در کلاس از طریق سایت یادداشت‌های درس به نشانی ramtung.ir/apnotes/html قابل دسترسی هستند.

مدرس دوره
رامتین خسروی
رامتین خسروی تحصیل خود را در مقاطع کارشناسی، کارشناسی ارشد و دکتری در رشته مهندسی نرم‌افزار در دانشگاه صنعتی شریف به انجام رساند و ضمن فعالیتی حدود ۱۵ ساله در صنعت نرم‌افزار به عنوان برنامه‌نویس، طراح و معمار نرم‌افزار، از سال ۱۳۸۶ به عضویت هیئت علمی دانشکده مهندسی برق و کامپیوتر در دانشکده فنی دانشگاه تهران درآمد. او از سال ۱۳۷۵ تدریس برنامه‌نویسی به زبان‌های پاسکال، سی، سی‌پلاس‌پلاس و جاوا را در دانشگاه‌های صنعتی شریف و تهران در سابقه خود دارد. رامتین علاوه بر برنامه‌نویسی به طراحی شیءگرا، معماری نرم‌افزار و متدلوژی‌های چابک توسعه نرم‌افزار بسیار علاقه‌مند است.
1

فیلم های آموزشی

30 جلسه    36:43 ساعت   
جلسه اول - مقدمه درس
62:45 دقیقه
جلسه دوم - مفاهیم مقدماتی زبان ++C
75:54 دقیقه
جلسه سوم - طراحی بالا به پایین
73:10 دقیقه
جلسه چهارم - مبانی توابع بازگشتی
73:11 دقیقه
جلسه پنجم - پردازش بازگشتی لیست ها
70:37 دقیقه
جلسه ششم - عقب گرد (backtracking)
73:10 دقیقه
جلسه هفتم - مقدمه ای بر شی گرایی
61:37 دقیقه
جلسه هشتم - پیاده سازی کلاس ها
72:36 دقیقه
جلسه نهم - شبیه سازی حرکت توپ در میز-بخش اول
77:24 دقیقه
جلسه دهم - شبیه سازی حرکت توپ در میز-بخش دوم
77:57 دقیقه
جلسه یازدهم - اعضای ایستای کلاس
68:37 دقیقه
جلسه دوازدهم - سربارگذاری عملگرها
82:26 دقیقه
جلسه سیزدهم - رسیدگی به خطاها (بخش اول)
75:27 دقیقه
جلسه چهاردهم - رسیدگی به خطاها (بخش دوم)
76:48 دقیقه
جلسه پانزدهم - وراثت-1
77:18 دقیقه
جلسه شانزدهم - وراثت-2
72:50 دقیقه
جلسه هفدهم - چندریختی
73:42 دقیقه
جلسه هجدهم - مطالعه موردی وراثت
68:53 دقیقه
جلسه نوزدهم - مقدمه ای بر تحلیل و طراحی شیء گرا - 1
67:47 دقیقه
جلسه بیستم - مقدمه ای بر تحلیل و طراحی شیء گرا - 2
70:37 دقیقه
جلسه بیست و یکم - مدیریت حافظه در کلاس ها
74:58 دقیقه
جلسه بیست و دوم - لیست های پیوندی-1
83:03 دقیقه
جلسه بیست و سوم - لیست های پیوندی-2
70:37 دقیقه
جلسه بیست و چهارم - iterator ها-مقدمه ای بر الگوها templates
76:21 دقیقه
جلسه بیست و پنجم - ادامه مبحث الگوها-اشاره گر به توابع
76:26 دقیقه
جلسه بیست و ششم - کتابخانه STL - بخش اول
74:47 دقیقه
جلسه بیست و هفتم - الگوریتم ها در STL
74:17 دقیقه
جلسه بیست و هشتم - عبارت های لاندا
70:07 دقیقه
جلسه بیست و نهم - ادامه عبارت های لاندا- تبدیل تایپ ها
80:28 دقیقه
جلسه سی ام - مقدمه ای بر مفاهیم پایه جاوا
68:57 دقیقه