python

۱۳۸۸ بهمن ۵, دوشنبه

با توجه به گذشت دو هفته از امتحان فقط تا فردا وقت دارید که تمیرینهایتان را ایمیل کنید (به آدرس خودم). پروژه نهایی نخواهیم داشت و نمره ها ظرف دو هفته ی آینده اعلام میشوند. دوستانی که ۱۰۰ یا ۸۰ مساله از پروژه اویلر حل کردند ظرف یک هفته آینده باید بفرستند. اگر به این تعداد نمیرسید هرچقدر که حل کردید رو تا جمعه شب بفرستید.



۱۳۸۸ دی ۲۴, پنجشنبه

پروژه

در مورد پروٰژه برای بچه هایی که شهرستانی هستند و میخوان برند شهرشون، فعلا میتونند برند. لا اقل دو هفته بعد از شروع ترم جدید وقت خواهیم داد برای انجام پروژه.

۱۳۸۸ دی ۲۲, سه‌شنبه

جواب سوالهای امتحان

جواب سوالهای امتحان:
سوال ۱: x+y
سوال ۲: الف:
برای محاسبه ی ب م م a و b اگر b برابر با صفر بود a را برگردان در غیر این صورت ب م م b و باقیمانده ی a بر b را برگردان

ب:
درست کار میکند چون:
۱- در هر مرحله b لا اقل یکی کم میشود و حتما در نهایت صفر میشود و دیگر حالت بازگشتی رخ نمیدهد. پس در لوپ نامتناهی نمی افتد و حتما جواب میدهد.
۲- چون بر اساس معادله بازگشتی است حتما جواب درست را میدهد.
۳- بیشتر از b تا ستاره چاپ نمیکند چون هر بار b لا اقل یکی کم میشود.


سوال ۳:
زمان اجرا: اولی و دومی خطی، سومی لگاریتمی
اگر اندازه ی b بزرگ باشد ممکن است دومی در درجه اول و سومی در درجه دوم با خطای recursion depth مواجه شوند (نوشتن این مورد اختیاری است)
اولی اصلا توان را درست محاسبه نمیکند (این اشتباه سوال بود که بعضی ها متوجه شدند. لزومی نداشت متوجه بشوید.)

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

---------------------
به نظر من که آسون بوده. موارد مشابه سوالهای دو و سه رو لا اقل ۴ جلسه در کلاس روش بحث کردیم. سوال دو در واقع همون روش نردبونی برای محاسبه ی ب م م بود که توی راهنمایی درس میدن. سوال یک هم ظاهرا اسون بوده. سوال ۴ رو ممکنه مشکل داشته باشین یا جوابهاتون فرق داشته باشه. در مورد این سوال زیاد سخت گیری نمیشه توی تصحیح.
البته هدف در واقع آسون یا سخت طرح کردن امتحان نبوده بلکه این بوده که کسی که این درس رو گذرونده در واقع انتظار داریم که چی رو واقعا یاد گرفته و لا اقل تا یکی دو سال دیگه هم یادش بمونه. اگر کسی ادعا میکنه که امتحان سخت بوده لطفا بگه که دقیقا از این درس چی یاد گرفته و یه سوال (غیر حفظی) هم مثال بزنه که به نظرش سوال عادلانه ای میاد.

۱۳۸۸ دی ۲۱, دوشنبه


برای تمرینها تا دو هفته بعد از امتحان وقت دارید.


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

http://python88.blogspot.com/2009/11/blog-post_24.html

۱۳۸۸ دی ۲۰, یکشنبه

در مورد امتحان:
  1. قبلا هم گفتم که امتحان و تمرین ها وزن مساوی با هم دارند، (هم در پست حرفهایی که نگفتنشون ممکنه باعث سو تفاهم بشه، و هم در پست مربوط به امتحان) . این به معنای این نیست که هر کدوم ده نمره دارند و مجموعا ۲۰ نمره. به این معنیه که مثلا اگر تمریناتون رو کامل تحویل دادین دیگه زیاد نگران امتحان نباشین. (اصطلاحا اگر امتحان رو گند هم بزنید یک نمره ای در حد نرم ۱۶-۱۷ میگیرید). یعنی امتحان زیاد براتون سرنوشت ساز نیست و میتونه حالا یه عامل کمکی باشه مثلا. اما اگر بر اساس حالت دوم عمل کردین، یعنی کلن زیاد برنامه نویسی رو جدی نگرفتین، یا اصلا خوشتون نمیومده ازش، یا به نظرتون لازم نبوده یاد بگیرین، یا خیلی تلاش کردین که یاد بگیرین ولی نشده، یا به هر دلیل دیگه ای تمرینهاتون رو خیلی ناقص فرستادین (کمتر از یک سوم کل تمرینها)، همونطور که قبلا گفتم باز هم لازم نیست نگران باشید که حالا شاید بیفتین یا هرچی. قبلا در پست حرفهایی که نگفتنشون ... خیلی واضح و با تفصیلات توضیح دادم که در این حالت حتی اگر هیچ تمرینی هم انجام نداده باشید با خوب دادن امتحان میتونید یه نمره در حد نرم ۱۶-۱۷ کسب کنید. خب، خیلی خیلی واضحه که اگر در این دسته قرار میگیرید و امتحان اصطلاحا براتون سرنوشت سازه، اونوقت باید در طول ترم با دقت مسایل تئوری رو دنبال میکردین که بتونید این آخر درست از پسش بر بیاید. من این مساله رو خیلی واضح و شفاف توی همین وبلاگ اعلام کردم و قبلا هم چند بار اعلام کردم که این وبلاگ یه جای رسمیه و هرچیزی که اینجا گذاشته میشه مثل یک اطلاعیه در مورد درسه. خلاصه اینکه در یک کلام اگر در دسته دوم هستید و مثلا هیچ جزوه ای ندارید یا اینکه کلن به نظرتون خیلی سخت میات مطالب، اینجاست که باید از شما بپرسم پس شما در طول این ترم چه چیزی توی این درس یاد گرفتین؟ نه برنامه ها رو نوشتین و نه در مورد مسایل تئوری چیزی بلدین! خب اینجا وضع خراب میشه.
  2. کلن قصد من از این حرفها ترسوندن شما نیست. منظور اینه که امتحان در اصل برای سنجیدن مباحث تئوری و کسانی که با تکیه بر این مباحث دارند درس رو میگذرونند طرح ریزی شده، و الا به نظر شخصی من اینکه سه ماه آدم بره سر کلاس و در نهایت توی دو ساعت تمام مطالب اون امتحان رو روی ورقه امتحان بالا بیاره کلن چیز بیخودیه. نکته ی دیگه اینکه اصولا من به این راحتی ها کسی رو نمیندازم، یعنی فکر نکنید که حالا اگر ورقه رو در بدترین حالت سفید هم تحویل بدین دیگه بدبخت میشید و میفتید و از این حرفها.
  3. کلن من یه فرقی بین شما قایلم. همونطور که در جلسات اول هم گفتم انتظار توی این درس از بچه های علوم کامپیوتر بیشتره چون اونها واقعا نیاز دارند که این مطالب رو کاملا یاد بگیرند. یعنی بچه های سی اسی ترجیحا سعی کنید سفید نگذارید ورقه رو.
  4. بارها اعلام کردم که ۲۰ مال خداست. یعنی زیاد توی طمع ۲۰ گرفتن نیفتید. ۲۰ واقعا به کسی داده میشه که خودش رو ثابت کرده باشه. کسانی هم که وارد داستان ۱۰۰ تا و ۸۰ تا اویلر شدند بدونند که یه امتحان جداگانه در پیش خواهند داشت و توی اون باید بتونند هرکدوم از سوالهایی رو که تحویل دادند در مدت زمان معقولی دوباره بنویسند.
  5. اینکه در مورد درس منابعی نداریم به اون شکل که مثلا یه کتاب رو بگیرین دستتون و بخونید انتقاد نسبتا واردیه. اما یه مقدار به به روز بودن مطالب درس داده شده و محتوای جدید درستون برمیگرده و اینکه حقیقتا خیلی بهتر از اینه که یه مشت چرندیات عهد بوقی رو به زور یاد بگیرین و بعدا به هیچ دردتون نخوره. امتحان هم حقیقتا چندان حفظی یا مثلا سوال از یک موضوع خیلی ریز نخواهد بود و بهترین کار اینه که منابعی که دم دست دارید یا روی اینترنت هست رو کلن یه مروری بکنید و ببینید که حرف حسابشون چیه. کم کم که تحصیلات دانشگاهیتون بیشتر بشه بیشتر با این پدیده ها مواجه میشید و پی به اهمیتشون میبرید.
  6. در مورد فیلمی که پخش شد. تعدادی لینک اینجا میگذارم و سعی کردم که بیشترشون فارسی باشه. باز هم ممکنه که جزییات خیلی زیادی در اونها باشه که خیلی مهم نیستند. سوالهای کلی تر مهمند اینجا. مثلا اینکه اهمیت جی پی ال در چیه. یا مثلا یه نرم افزار کد باز چه مزیتایی داره. و از این جور سوالها. کلن سعی کنید چند بار بخونیدشون و در ذهنتون ساختار بندی کنید مسایلش رو. علت اینکه روی این مورد اصرار دارم اینه که اینها چیزهایی هستند که خیلی باهاشون مواجه خواهید شد و اگر بدونید چیند خیلی کمکتون میکنند. لینکهایی که بالاتر میگذارم مهمتر هستند:
تعریف نرم‌افزار آزاد
لینوکس وبازهم لینوکس
متن‌باز
گنو
جی‌پی‌ال و ال‌جی‌پی‌ال
کپی‌رایت و کپی‌لفت و کریتیو‌کامانز
ریچارد استالمن و یک مقاله اش
Windows 7 Sins



۷. در مورد بقیه ی بخشها هم فکر میکنم همون جزوه ای که در گروپ هست کافی باشه در مورد سوالاتش هم که در پستهای قبلی توضیح دادم.

۸. چنانچه تمرینهاتون رو کپ زدین فقط تا روز امتحان وقت دارید که این موضوع رو اطلاع بدین تا صرف نظر بشه وگرنه عواقبش متوجه خودتونه.

۹. باز هم میگم زیاد استرس نداشته باشید :)


---------------------
۱۰. آخرین نکته هم اینکه حتما حتما باید سر جلسه حاضر بشید و حاضریتون رو بزنید. مخصوصا کسانی که وارد داستان های ۸۰ تا و ۱۰۰ تا شدند. در غیر این صورت آموزش براتون غیبت رد میکنه و کلن از کنترل من خارج میشه قضیه.

۱۳۸۸ دی ۱۵, سه‌شنبه

یکی از دوستانتون بخش قابل توجهی از جزوه ی درس رو به گروه فرستاده. میjونید از اون استفاده کنید. مطالب تکمیلی اگر به نظرتون میرسه در اون مورد رو به گروه بفرستید.


----------
برای دانشجویان ریاضی به جای 100 سوال میتوانند 80 سوال بفرستند.

۱۳۸۸ دی ۱۴, دوشنبه

امتحان و پروژه‌ی پایانی

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

شما میتوانید به اندازه ی یک صفحه ی آ ۴ مطالب مربوطه را به شکل خلاصه همراه خود سر جلسه بیاورید و از آنها استفاده کنید. یعنی امتحان اصطلاحا open book هستش در حد یک و فقط یک صفحه ی آ ۴

تقلب به هر نحوی در امتحان پذیرفته نیست و عواقبی ما بین پاره شدن ورقه ی فرد خاطی و نمره ی ۰ تا ضربدر خوردن ورقه ی او و کم شدن ۵ نمره از نمره ی کلش را به همراه خواهد داشت.

http://en.wikipedia.org/wiki/Revolution_OS
http://en.wikipedia.org/wiki/History_of_free_software
لینکهای مربوط به فیلم. اگر کسی جزوه ای از درس داره میتونه اون رو اسکن کنه یا ازش عکس بگیره و به
گروپ بفرسته تا بقیه هم استفاده کنند.
----------------
موضوع مربوط به پروژه ی پایان ترم به همراه امتحان به شما داده میشه و برای انجامش ۳ هفته از روز امتحان فرصت دارید.

و دیگه اینکه در مورد شیوه ی نمره دهی:
هرکسی اصولا یا باید تمرینهاشو به شکل معقولی تحویل داده باشه و یا امتحانشو خوب بده. یعنی این دو موضوع همپوشانی دارند. دیگه اینکه در نهایت نمره ها روی نمودار خواهند رفت پس الان هیچ چیزی مشخص نیست. میانگین نمره ها روی چیزی مابین ۱۶ و ۱۷ تنظیم خواهد شد.