« چند مطلب خواندنی در مورد برنامه نویسی | صفحه اصلی | گلایه نکنیم، چه کنیم؟ »

مباني کامپيوتر و برنامه سازي، منابع و نکته ها

&"November 28, 2007&"

درطي اين چند ترمي که دروس مباني کامپيوتر و برنامه سازي پيشرفته را به عنوان دو درس اوليه برنامه سازي براي رشته مهندسي کامپيوتر تدريس کرده ام به چند چيز رسيده ام که با توجه به درخواست خوانندگان در اين نوشته به آنها اشاره مي کنم، اما قبل از اينکه وارد بحث شوم ذکر اين مساله ضروري است که هر چند تجربياتی در تدريس اين دروس در دانشگاه هاي مختلف را داشته ام و پيشتر از آن هم در زمان تحصيل خودم بارها به عنوان حل تمرين آنها عمل کرده ام اما خود را شايسته اينکه سبکي داشته باشم نمي دانم و معتقدم استادان زیادی هستند که در اين دروس صاحب سبک و حتي کتاب بوده و ذيصلاح تر هستند براي رجوع. اين نوشته صرفا حاصل تجربيات خودم و برگرفته از نظرات شخصي است، پس لطفا به عنوان مرجعي براي مقايسه يا .... استفاده نکنيد که اصلا براي آن مناسب نيست.
اما درس "مباني کامپيوتر و برنامه سازي"
درسي که در ترم اول کارشناسي مهندسي کامپيوتر تدريس مي شود. درسي است بسيار مهم که با توجه به اينکه دانشجويان تازه وارد هستند با مشکلات متعددي مواجه خواهيد شد. اغلب دانشجويان خسته از سپري کردن کنکور و بدون انگيزه جدي در کلاسها شرکت می کنند و اين کار شما را به عنوان مدرس سخت مي کند. ضمن اينکه به دليل نام اين درس "مباني" ، اغلب دانشجويان فکر مي کنند با توجه به دانشي که در دوره دبيرستان کسب کرده اند مثل آب خوردن اين درس را پاس مي کنند که تصور غلطي است. همانگونه که از نام آن بر می آید، اين درس از دو قسمت تشکيل شده است:

- مباني کامپيوتر : که در آن به بحث مروري بر مبناني فکري، سخت افزاري و نرم افزاري و آشنايي با اجزاء کامپيوتر، شبکه ها و ..... پرداخته می شود.
-مباني برنامه سازي: در اين بخش به بحث برنامه سازي ساختيافته و آشنايي با اجزاء و دستورالعمل هاي پایه برنامه سزی ، خواهد پرداخت.
تصوير رايج غلط ديگری در مورد این درس، نامگذاري آن به نام يک زبان است. براي مثال مي گويند "پاسکال" داريم، يا C داريم. که اشتباه است. چون در اين درس هدف آموزش يک زبان نيست ، هدف آموزش برنامه سازي است و زبان در اولويت هاي پايين تري قرار می گیرد.
با توجه به هر کدام از دو بخش مي توانيد از منابع زير استفاده کنيد:
- در بخش مباني کتاب How Computers Work نوشته Ron White کتاب بسيار خوبي است که اولين بار ديدم مهندس پوروطن از آن استفاده مي کردند. در اين کتاب با يک زبان تصويري، همه اجزاء داخلي کامپيوتر، وسايل جانبي و مفاهيي نظير شبکه و .... پوشش داده شده است. اگر چه در نگاه اول همه فکر ميکنند که اين کتاب بسيار ساده است اما در برخي بحث ها عميق جلو رفته و حاوي مطالب جالبي است. توصيه مي کنم خواندن اين کتاب به عهده دانشجويان گذاشته شده و از روي آن يک کار کلاسي مانند يک Presentation ، يک مقاله يا يک ارائه شفاهي نتيجه شود. اما بايد به اين نکته دقت کرد که سرعت تغييرات دنياي کامپيوتر آنقدر سريع است که نياز داريد سراغ نسخه های آخر این کتاب و مطالب جديد تر از آن هم برويد و مخصوصا از مقاله هاي منتشر شده در مجلات و يا وب سايت ها استفاده کنيد. براي مثال در وب سايت www.Howstuffworks.com بخش مربوط به Computer آن هم مطالب خوبي دارد. در اين بخش توصيه نمي کنم که از کتاب هاي فارسي استفاده کنيد، چون به دليل تاخير در ترجمه مطالب، اغلب در اين زمينه حاوي مطالب جديدي نيستند اما اگر مي خواهيد از کتاب فارسي هم استفاده کنيد فصول ابتدايي کتابهاي برنامه نويسي به زبان پاسکال سرکار خانم مليحه بهادري و يا بخش هاي اول کتاب مباني الگوريتم و برنامه سازي آقاي جعفر نژاد قمي هم مراجعه کنيد. مخصوصا براي بخش هايي نظير مبناي اعداد و .... که در کتابهاي اول پيدا نمي شود.
در سال پیش از کتاب دیگری که با زبان مدارها به معرفی اجزاء کامپیوتر پرداخته بود هم استفاده کردم به این دلیل که نمی خواستم دانشجویان سخت افزاری هم بی نصیب بمانند. این کتاب نیز How Computers Work Processor and Main Memor نام دارد و نویسنده آن Roger Young است. کتاب خیلی خوبی است چون مفاهیمی نظیر کارکردن پردازنده، حافظه ها، آدرس دهی و .... را با یک زبان ساده به سخت آموزش داده است، بدون آنکه خواننده نیازی به داشتن اطلاعات قبلی داشته باشد.
در مورد برنامه سازي هم اگر پايه زبان بر اساس پاسکال انتخاب شود کتاب برنامه سازي ساختيافته و توربو پاسکال 7 اليوت ب. کافمن کتاب خوبي است در مورد C هم کتابهايي مانند کتاب استراستروپ و کتاب دايتل، کتابهاي خوبي هستند.
اما مهمتر از منبع درس به نظرم شيوه تدريس است.در اين درس، مدرس نبايد متکلم وحده باشد. نمي شود جزوه گفت و انتظار داشت دانشجويان ياد بگيرند. بلکه بايد به صورت تعاملي و به صورت تمرين هاي مداوم و پشت سر هم برخورد نمود. معمولا خودم در اين ترم بيش از 100 تمرين مختلف را به دانشجویان خواهم داد. تمرین هایی که آنها را برای انجام پروژه پایانی درس آماده سازد.
پروژه پایانی درس مبانی می تواند شامل نوشتن یک برنامه بزرگ باشد که ترکیبی از مطالبی که در طول ترم گفته شده است را به انضمام مطالب جدید در آن بکار گرفته شود. تجربه به خود من نشان داده است که پروژه، مهمترین عامل آموزشی در کل ترم است و دانشجویان چند برابر خود طول ترم، چیز یاد می گیرند.
به دانشجویان درس هم توصیه می کنم، این درس را بسیار جدی بگیرند. چون راهی است برای وارد شدن خوب به رشته ای که در دانشگاه در آن زمینه درس می خوانند. به نظر شخص من، چنانچه دانشجویان رشته مهندسی کامپیوتر، درس مبانی خود را به خوبی پشت سر بگذارند، می توانند با درصد بالایی در دروس بعدی هم موفق باشند. چرا؟ چون:
- در مبانی به نوعی همه مطالب رشته مهندسی کامپیوتر مرور خواهد شد و دانشجویان با برخی کلیات، حتی در سطح یک جلسه هم که شده آشنا می شوند. بنابراین با یک دید باز تر نسبت به ادامه درس عمل خواهند کرد.
- چنانچه در درس مبانی فعالیت خوبی داشته باشید و نمره خوبی کسب کنید، به عنوان یک انگیزه و محرک قوی عمل خواهد شد. چون شما را در چشم سایر دانشجویان متمایز نشان می دهد و شما به عنوان دانشجوی ترم اول، مجبورید برای حفظ این نگاه فعالیت خود را افزایش دهید.
-ترم اول مهمترین ترم دانشگاه است، چون شما تکلیف خودتان را با خودتان، دانشکده و دوستانتان روشن می کنید، تجربه نشان داده است که کسانی که در ترم اول جایگاه بهتری پیدا کنند -که درس مبانی هم جزء آن است- در گروه های بچه درسخوان ها خواهند بود، دست از کارهای حاشیه ای برخواهند داشت و در طول دانشگاه موفقتر عمل خواهند کرد.
- شما در مبانی علاقه خود را درک می کنید. اینکه آیا اصلا به کامپیوتر علاقه مندید. (تقریبا در آخر هر ترم دانشجویانی را دارم که تغییر رشته گرفته اند) ، سخت افزار را ترجیح می دهید یا نرم افزار را. آیا کسی هستید که پشتکار کار در این رشته را داشته باشید. آیا از دانشکده خود راضی هستید و نمی خواهید انتقالی بگیرید.
-....
برای دانشجویان این درس در مرحله اول و مدرسان این درس در ادامه آرزوی موفقیت می کنم. به زودی در مورد درس برنامه سازی پیشرفته نیز خواهم نوشت.
همین!

Ali Vahed | 10:10 AM