python

۱۳۸۸ آذر ۸, یکشنبه




برنامه ی جلسه ی فردا حل کردن سوالات 1 تا پنج پروژه ی اویلر است، اگر قبلا این سوالها را حل کرده اید ممکن است کلاس برایتان خسته کننده باشد!

۱۳۸۸ آذر ۳, سه‌شنبه

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



فایل های مربوط به پروژه میان ترم: http://math.sharif.ir/~python/files/midterm_project.zip توضیحات مربوطه در یک فایل پی در اف نوشته شده اند.
--------------------
به جای پروژه میان ترم میتوانید 25 تمرین از پروژه اویلر حل کنید، ولی برای بچه های سی اس توصیه نمیشه.




4شنبه ها از ساعت 10 تا 1 در سایت دانشکده میتونید سوالهای خودتون رو از TA بپرسید.

حرفهایی که گفته نشدنشون باعث کج فهمی میشه



من قصد ندارم فشار اضافی به کسی وارد کنم. و فکر میکنم که هدف این درس اینه که شما بتونید این تمرین ها رو انجام بدین. واضحه که اگر این تمرینها رو انجام ندین برنامه نویسی هم از آسمون نازل نمیشه و هیچ وقت یاد نمیگیرید. پس اگر میخواین برنامه نویسی یاد بگیرین به روشی که من بهتون پیشنهاد میکنم اعتماد کنید. من واقعا حجم کمی از برنامه نویسی رو یاد دادم ولی میخوام که شما یاد بگیرید چه طور از این حجم کم درست استفاده کنید.
1
- در زمینه ی پایتون من هیچ کتاب فارسی ندیدم و اگر هم دیده بودم توصیه نمیکردم به کسی خوندنش رو. کسی با خوندن کتاب برنامه نویسی یاد نمیگیره. فقط با تمرین نوشتن هست که میتوان نوشتن رو یاد گرفت.
2- من حس نمیکنم که حجم تمرینهایی که میدم زیاد هستند. تنها چیزی که به من ثابت میکنه حجم زیادی تمرین دادم اینه که تعداد زیادی از بچه ها تمرین رو حل نکنند. مثل تمرین هرم که در نهایت اختیاریش کردم.
3- بدون انجام دادن تمرین من تابحال ندیدم کسی برنامه نویسی یاد بگیره. باور کنید جمع کردن تعدادی عدد برنامه نویسی حرفه ای و پیشرفته محسوب نمیشه و اگر برای نوشتن این برنامه ها مشکل دارید اصلا برنامه نویس محسوب نمیشید. میدونم کار واقعا خسته کننده ای یه و سخته وقتی که هیچ دیدی ندارید که چه طور باید کاری رو انجام بدین ولی این یک مرحله است که باید ردش کنید. یک بچه هم وقتی که میخواد راه رفتن رو یاد بگیره اولش سخته براش ولی بعدا که یاد گرفت راحت میشه!
4- من اصراری ندارم که شما رو به زور برنامه نویس کنم. مخصوصا کسانی رو که سی اس نیستند. پس اگر هیج علاقه ای به یاد گرفتن برنامه نویسی ندارید و این درس رو به اجبار برداشتید من نمیخوام شما رو به کاری که مجبور نیستید وادار کنم. میتونید فقط با دنبال کردن مطالب تئوری درس یک نمره بین 10-14 بگیرید.
5- از اسم پروژه تون نترسید. در نهایت شما نسبت به هم سنجیده خواهید شد. پس هرچقدر که میتونید براش وقت بگذارید. 6- اگر به آموزش رسمی پایتون دقت کنید http://docs.python.org/tutorial/ متوجه میشید که از 14 بخش اون من فقط 5 بخش رو اون هم به شکل ناقص درس دادم. من فکر نمیکنم که حجم درس زیاد باشه، ولی انتظارم اینه که بتونید یاد بگیرید از همین دستورهای ساده که یاد گرفتین چه طور استفاده کنید. من اعتقاد دارم که اگر کسی این موضوع رو درست یاد بگیره، دیگه با برنامه نویسی مشکلی نخواهد داشت، در هر زبانی که بخواد بنویسه یا با هر ساختاری. پس وقت خودتون رو با انجام کاری غیر از این پر نکنید و به صورت متمرکز روی این موضوع فکر کنید.
6- من قصد اذیت کردن کسی رو ندارم. من قصد ندارم به شما ثابت کنم چون وارد تبلیغا و نه تحقیقا بهترین دانشگاه کشور شدین باید برای گفتن یه مدرک یا یه نمره همه ی زندگیتون رو تعطیل کنید. من قصد ندارم چیزی رو که قرار نیست توی زندگی به دردتون بخوره به شما یاد بدم. من فکر نمیکنم که تعدادی قرار داد هست که باید رعایت بشه، که مثلا بارم بندی نمره دقیقا رعایت بشه، که یه مفهوم خشک از عدالت رعایت بشه، که پیشفرض این باشه که این دانشجو هست که موظفه یاد بگیره و نه استاد که موظفه یاد بده. تنها اصلی که در نظر من تعیین میکنه چه کاری انجام بشود و چه کاری نشود این هست که دانشجوها در حدی که لازم دارند برنامه نویسی یاد بگیرند.
7- من ادعا نمیکنم که بهترین استاد قابل تصور هستم. که هر کاری میکنم تا شما چیزی یاد بگیرید. یک قسمتی از کار به عهده ی خود شماست و اگر کسی نخواد اون قسمت رو انجام بده من هم لزومی نمیبینم بیش از حد براش انرژی صرف کنم. من انتظار دارم حد اقل چیزهایی رو که سر کلاس یاد دادم بلد باشید و بعد از من سوالهای پیچیده تر بپرسید. من مسئول نابسامانی های دانشگاه شما نیستم. تعمیر کردن سایت به من ربطی نداره و اگر دانشکده تصمیم میگیره که این طور سایت رو تعطیل کنه خب واضحه که باید فکر کم شدن کیفیت درسهای مربوطه هم باشه. این موضوع از حیطه ی مسئولیتهای من خارجه کسی که مستقیما مسئولشه مسئولان دانشکده و دانشگاهتون هستند. من مسئول این نیستم که سیستم درس افزار شریف به هزار دلیل واهی صفحه ای برای این درس باز نمیکنه. من در حدی که میتونم وقت و انرژی میگذارم همونطور که شما هم همینکار رو میکنید و اگر مشکلاتی وجود داره که خارج از دستان من و شماست، ما مسئول حل اون مشکلات نیستیم.

۱۳۸۸ آذر ۱, یکشنبه

جلسه بعد (دوشنبه) در کلاس فیلم Revolutionary OS درباره ی Open Source نمایش داده خواهد شد. محتوای این فیلم جزو درس است. http://en.wikipedia.org/wiki/Open_source

جزوه مربوط به اثبات lg n در الگوریتم جستجوی دودویی: http://math.sharif.ir/~python/files/pythonclass.rtf

۱۳۸۸ آبان ۲۷, چهارشنبه



زینپس تمریناتتون رو از این سایت انتخاب میکنید. برای این هفته 5 مساله به انتخاب خودتون از لیست مسایل سایت انتخاب و حل کنید. اگر بیشتر از 5 تا رو حل کردید امتیاز اضافی دارد: http://projecteuler.net/index.php?section=problems با عضو شدن در سایت میتونید درستی حلتون رو چک کنید.
تمام تمرینهایی رو که تا جمعه ساعت 12 حل کردید در یک فایل زیپ بگذارید. اسم هر تمرین باید شماره ی آن سوال در سایت باشد. مثلا اگر سوال شماره 12 را حل میکنید، اسم فایل جواب باید 12.py باشد. فایل زیپ مربوطه را به آدرس aazadi+python+q5@gmail.com ایمیل بفرستید. موضوع ایمیلتان را شماره تمرینهایی که حل کرده اید بگذارید. مثلا اگر تمرینهای شماره ه 10و11و 12و 13و 132 را حل کرده اید موضوعتان را 10,11,12,13,132 بگذارید

۱۳۸۸ آبان ۲۵, دوشنبه

session 9 ?

def factorial(n):
    ret = 1
    for x in range(2,n+1):
        ret = ret * x
    return ret

def factorial_rec(n):
    if n == 1:
        return 1
    return n * factorial_rec(n-1)

def c(n,k):
    return factorial(n) / (factorial(k) * factorial (n-k))

def c_rec(n,k):
    if k == 1:
        return n
    return c(n-1,k-1) + c(n, k-1)    

۱۳۸۸ آبان ۲۳, شنبه

session 8

۱۳۸۸ آبان ۱۸, دوشنبه

فایلهای مربوط به این جلسه: http://math.sharif.ir/~python/files/session 7.zip

۱۳۸۸ آبان ۱۶, شنبه

جلسه 7

راهنمای رسمی پایتون که همه چیز دارد. اول آن را extract کنید و بعد فایل index.html را باز کنید: download یا download
----------------------
مجموعه ی همه ی کدهایی که در کلاس کار کرده ایم تا بحال: download
درس: overview v0.2

کلاس پیشرفته


کلاس پیشرفته ی اوژن شنبه ها 1.5 تا 3 در الف 15 و چهارشنبه ها 10 تا 12 در شیمی 3 تشکیل خواهد شد

۱۳۸۸ آبان ۱۳, چهارشنبه

خلاصه ای از مطالب درس. آنچه که تاکنون گفته ایم و باید بلد باشید:
http://math.sharif.ir/~python/overview-v0.1.pdf

لینکهای آموزشی پایتون

اگر مطالب درس برایتان مبهم است میتوانید به منابع زیر رجوع کنید. برنامه نویسی مثل انشا نوشتن است، تا وقتی که خودتان دست به نوشتن نزنید یاد نخواهید گرفت!

آموزش پایتون در سایت رسمی آن:
دانلود: http://docs.python.org/download.html
آنلاین: http://docs.python.org/ بخش tutorial

http://www.swaroopch.com/notes/Python#Read_Now
http://hetland.org/writing/instant-hacking.html

در یک نگاه: http://onlamp.com/python/excerpt/PythonPocketRef/examples/python.pdf