چهارشنبه، مهر ۰۷، ۱۳۸۹
جمعه، شهریور ۲۶، ۱۳۸۹
امتحان عملی
جمعه، شهریور ۰۵، ۱۳۸۹
امتحان عملی
--
در ضمن یکی از دوستان گفته که دوشنبه از ۹ برای کمک در سایت کلاس حل تمرین میگذاره.
سهشنبه، مرداد ۲۶، ۱۳۸۹
تمرین های جلسه های 1 و 2 این 6 جلسه
شنبه، مرداد ۲۳، ۱۳۸۹
سهشنبه، مرداد ۱۹، ۱۳۸۹
کلاسهای تابستانه
۳ هفته بعد دوباره امتحان عملی گرفته میشود و هرکسی که نتواند در آن قبول شود درس را می افتد. همچنین شرکت در کلاسها اجباری است.
در مورد دوستان شهرستانی، ترجیحا اگر میتوانند کلاسها را بیایند. ولی دادن امتحان برای تمام بچه ها اجباری است و بنا به درخواست خود شما از خرداد به تابستان منتقل شد. چنانچه کسی امتحان عملی را ندهد درس را پاس نخواهد کرد. همانطور که از ابتدای سال گفته شد این ترم وضع نمره دهی با ترم قبل فرق دارد و اصلا مهم نیست اگر نصف آدمها درس را پاس نکنند. بلکه مهم این است که برنامه نویسی را در حد لازم برای یک دانشجوی علوم کامپیوتر بلد باشند.
یکشنبه، مرداد ۱۷، ۱۳۸۹
نمرات امتحان از ۱۰. روز ۳شنبه عصر بعد از امتحان عملی میتوانید به این نمره اعتراض کنید.
87108832 n 6.5
88109347 v 4.5
97102216 j 9
88102218 gh 3.5
88101568 s 6
88101932 n 4.5
87102708 h 2.5
87104541 s 4
88101235 s 5.5
88105826 b 2
87104217 z 5
88102156 j 6.5
88101698 m 4.5
85109985 p 4.5
88103609 s 6.5
88101138 gh 4.5
84102424 h 0
88104243 k 8
87102432 h 9
84107971 m 1
87105868 e 9.5
88109466 a 3
88108618 h 4.5
86108733 n 8
88103406 z 1
84104103 z 0
87101374 b 6
87107163 k 3.5
84105108 s 4.5
88105259 f 4
87107247 k 2
87101899 t 7
87103461 r 3
88105389 m 7
87105881 gh 8.5
84108857 i 0
87109356 v 6
88105248 sh 5
88105731 m 4
88101676 s 2
84108202 n 2.5
84105068 s 0
88104073 h 9.5
88021114 sh 0
87111431 m 4.5
84110105 m 2
88110986 a 1
87110508 f 3
88102875 b 9.5
87110384 b 2.5
86108636 m 8
88102818 e 3.5
87102251 ch 2.5
88102326 h 6.5
86102066 p 2
چهارشنبه، مرداد ۱۳، ۱۳۸۹
دوستان عزیز،
برنامه ی امتحان و تحویل پروژه:
روزهای شنبه، یک شنبه و دوشنبه ی هفته ی بعد (یعنی ۱۶ مرداد و ...) همه میتونند بیاند سایت دانشکده و اشکالاتشون رو در باره ی پروژه یا هرچی برطرف کنند. البته من خودم تمام ساعات رو حاضر نیستم ولی تی ای ها و هرکسی که فکر میکنه میتونه کمکی بکنه لطفا بیاد و همدیگر رو راه بندازین.
کسانی که خیلی با پروژه شون حال میکنند یا اینکه پروژه ی غیر از وب کراولر رو انجام دادند روز دوشنبه عصر پروژه شون رو به صورت حضوری به خود من با تمام مستندات تحویل میدند.
شما باید پروژه تون رو تا قبل از روز سه شنبه ساعت ۶ صبح به این ترتیب ارایه داده باشید:
اولا تمام سورس کدها، ثانیا کدهای کامپایل شده و قابل اجرا، و ثالثا یک گزارش از کارتان با فرمت پی دی اف. در این گزارش موارد زیر حتما و لزوما باید گنجانده شوند:
۱- پروژه ای که نوشته اید دقیقا چه کارهایی انجام میدهد.
۲- برای نوشتن آن از چه زبان و تکنولوژی ای استفاده کرده اید و احیانا به نظر خودتان نقطه قوت پروژه تان چیست؟
۳- چند اسکرین شات از برنامه تان در حال اجرا در وضعیت های گوناگون. (با استفاده از دکمه ی پرینت اسکرین از صفحه عکس بگیرید)
۴- نحوه ی کار کردن با برنامه به صورت دقیق.
تمام موارد فوق را در یک فایل زیپ گذاشته و در کورس ور ، بخش مربوطه آپلود کنید. هرکدام از موارد فوق اگر از قلم بیفتد یقینا از نمره شما کسر خواهد شد.
روز سه شنبه صبح امتحان عملی (از تمام افراد) گرفته میشه، راس ساعت ۱۰ صبح.
در روز سه شنبه هنگام ظهر همینجا لیست دانشجویانی که باید پروژه شان را به شکل عملی تحویل دهند اعلام میشود و در سه شنبه عصر این کار انجام خواهد شد.
نمره ها روز ۴شنبه صبح به آموزش ارسال میشود.
جمعه، تیر ۱۱، ۱۳۸۹
جمعه، خرداد ۰۷، ۱۳۸۹
سهشنبه، اردیبهشت ۲۸، ۱۳۸۹
دوشنبه، اردیبهشت ۲۰، ۱۳۸۹
تمرین: توضیح دهید که نمودار UML چیست و همچنین نمودار UML فایلهای مربوط به سرور فوتبال (پروژه میان ترم) را رسم کنید و بفرستید.
۴ شنبه هفته بعد آخرین مهلت ارسال تمرینهایی است که تابحال تعیین شده اند و بعد از آن قسمتهای مربوطه در CW بسته خواهد شد.
شنبه، اردیبهشت ۱۸، ۱۳۸۹
سهشنبه، اردیبهشت ۱۴، ۱۳۸۹
جمعه، اردیبهشت ۱۰، ۱۳۸۹
تمرین 1: یک پاراگراف درباره unicode
تمرین 2:برنامه ای بنویسید که یک اسم را بگیرد و در فایلی به همان نام 5 بار بنویسد
پنجشنبه، اردیبهشت ۰۹، ۱۳۸۹
سهشنبه، اردیبهشت ۰۷، ۱۳۸۹
درباره میان ترم
* روابط کاری شما باید جدا از روابط دوستی شما باشد. در یک رابطه کاری فقط موضوعات مربوط به آن کار موثرند. موضوعات خارج از این محدوده را داخل رابطه ی کاری و گروهی نکنید.
* به وظایفتان در گروه عمل کنید. اگر قرار شده که کاری را انجام دهید به هر قیمتی که شده، حتی اگر لازم شد ۴۸ ساعت نخوابید آن کار را انجام دهید. و گرنه خیلی راحت به عنوان یک فرد غیر قابل اعتماد شناخته شده و از گروه حذف میشوید.
* وقت شناس باشید و برای وقت سایر اعضای گروه ارزش قایل شوید.
* هر کار کوچکی که میتوانید را انجام دهید. اگر در گروهتان فرد دیگری هست که قویتر از شماست به او فرصت بدهید که کارهای مهمتر را انجام دهد و وقتش صرف کارهای ساده تری که شما میتوانید انجام بدهید نشود.
* کار گروهی برنامه نویسی به معنی با هم نوشتن نیست. حتی به این معنی هم نیست که همه لزوما برنامه بنویسند. کارها را بین خودتان تقسیم کنید. سعی کنید ببینید چه قدر میتوانید قسمت بندی کنید یک پروژه ی بزرگ را. مثلا خواندن، درک کردن و ارایه ی نحوه ی طرز کار سرور و کلاینتها، فکر کردن بر روی استراتژی بازی، دزدیدن ایده ی دیگر تیمها!!، نوشتن کدها ( نوشتن متودهای خاص مثل نقطه ی برخورد توپ، یا زاویه ی صحیح حرکت برای گرفتن توپ، نوشتن استراتژی بازیکنها: بازیکن های حمله، دفاع، دروازه بان، ...)
* دودر کردن به معنی پایین آوردن تیم خودتان است و مستقیما به خودتان ضرر میرساند.
* خودتان را فدای تیمتان نکنید. اگر اعضای تیم به موضوع کار اهمیتی نمیدهند لازم نیست بار آنها را خودتان به دوش بکشید. میتوانید یک موضوع پروژه ی تک نفره برداشته و روی آن کار کنید. (توضیح در پایین)
* منسجم باشید.
* اگر الان سعی نکنید موارد بالا را یاد بگیرید ممکن است دیگر هیچ وقت این فرصت برایتان پیش نیاید.
-----------
موضوعات پروژه ی تک نفره.
همان طور که شاهد بوده اید تعدادی از بچه ها روی پروژه های تک نفری کار میکنند. این پروژه ها بر حسب میزان کار و نوع آنها درصدی از نمره ی فرد را تشکیل میدهند (که در صورت کسب نمره ای حد اقلی در امتحان پایان میتواند به نمره ی کامل نیز منجر شود.)
موضوع و زبان و نحوه ی اجرای پروژه ها کاملا آزاد است و فقط باید در این مورد با من هماهنگی کنید.
برای مثال در مورد میان ترم انجام این پروژه امکان پذیر است:
نوشتن یک مولد گراف
ابتدا نرم افزار گرافلب را دانلود میکنید: http://graphlab.sharif.edu و با آن کار میکنید تا از قسمت های مختلف آن سر در بیاورید.
سپس در سایت http://mathworld.wolfram.com/topics/SimpleGraphs.html یک نوع گراف را انتخاب میکنید که به نظرتان میتوان آن رده را به کمک یک برنامه تولید کرد. چک میکنید که این رده در حال حاضر در گرافلب موجود نباشد. نام و اسم آن را در همین پست کامنت میکنید و چک میکنید که فرد دیگری قبلا آن را انتخاب نکرده باشد.
سپس این متن آموزشی را خوانده و اجرا میکنید: http://graphlab.sharif.edu/trac/wiki/CreateYourFirstExtension
و در نهایت آن را پیاده سازی میکنید.
در صورتی که این کار را خوب و کامل انجام بدهید این رده به اسم خودتان به گرافلب اضافه خواهد شد. برای این کار به این صفحه اسم و فایلهایتان را اضافه کنید: http://graphlab.sharif.edu/trac/wiki/ThirdPartyAddons
جمعه، اردیبهشت ۰۳، ۱۳۸۹
سهشنبه، فروردین ۳۱، ۱۳۸۹
http://www.cloudgarden.com/jigloo برنامه ساخت جی یو آی در اکلیپس که باید نصبش کنید به عنوان یک پلاگین. اگر از نت بینز یا آیدیا استفاده میکنید خودشون به صورت پیشفرض چنین امکانی رو دارند.
زین پس تمرینات رو به اینجا بفرستید: http://cw.sharif.edu/course/view.php?id=561 تمرینات قبلی رو هم دوباره به همینجا بفرستید.
صورت تمرین جدید هم همونجا گذاشته شهد.
این رو بخونید: http://bioinfo2.weizmann.ac.il/course/prog2/tutorial/uiswing/learn/index.html
فایلهای این جلسه:
http://groups.google.com/group/sharifpython88/web/jal13-gui.zip?hl=fa
جمعه، فروردین ۲۷، ۱۳۸۹
ترکیب داده ساختارها به نحوی که به وسیله ی آنها بتوان حضور و غیاب دانشجویان را در جلسات درس نگه داری کرد. هر دانشجو یک اسم و یک شماره دانشجویی دارد.
DS.java:
import java.util.HashMap;
import java.util.HashSet;
import java.util.Vector;
public class DS {
public static void main(String[] args) {
int[] a;
a = new int[4];
a[0]=2;
a[1]=3;
a[2]=4;
a[3]=8;
//a[4]=9; ArrayIndexOutOBE
for (int i=0; iSystem.out.println(a[i]);
}
for (int i:a){
System.out.println(i);
}
Vectorv = new Vector ();
v.add(1);
v.add(2);
v.add(5);
for (int i=0; iSystem.out.println(v.get(i));
}
for (int x:v){
System.out.println(x);
}
//removing an element from vector
v.remove(2);
v.add(2, 89);
//-------------- HashMap ---------------------------
HashMapgrades;
grades = new HashMap();
grades.put("azin", 10);
grades.put("asghar",5);
System.out.println(grades.get("azin"));
for (String name:grades.keySet()){
System.out.println(grades.get(name));
}
HashMap, HashMap >>> c;
c = new HashMap,HashMap >>>();
//-----------------------
HashSets=new HashSet ();
s.add(3);
s.add(6);
s.add(3);
for (int x:s){
System.out.println(x);
}
}
}
پنجشنبه، فروردین ۱۹، ۱۳۸۹
Student.java:
public class Student{
int stdid;
String name;
private int x=3;
public Student(int stdid, String name){
this.stdid = stdid;
this.name = name;
}
public String toString(){
return name + ": " + stdid;
}
public static void main(String args[]){
Student x = new Student(123, "azin");
System.out.println(x);
University u = new University();
u.addStudent(x);
u.addStudent(x);
u.addStudent(x);
u.print();
}
// public void setX(int x) {
// this.x = x;
// }
public int getX() {
return x;
}
}
University.java:
import java.util.Vector;
public class University{
Vector
public void addStudent(Student s){
students.add(s);
}
public void print(){
//foreach
for (Student s: students){
System.out.println(s);
System.out.println(s.getX());
}
}
}
یکشنبه، فروردین ۱۵، ۱۳۸۹
دوشنبه، اسفند ۲۴، ۱۳۸۸
چهارشنبه، اسفند ۱۹، ۱۳۸۸
سهشنبه، اسفند ۱۸، ۱۳۸۸
شنبه، اسفند ۱۵، ۱۳۸۸
جلسه ۷
سعی کنید یک بار دیگه این فایل رو باز کنید و همه ی مفاهیمی که گفتیم رو توش مرور کنید. صفحات آخرش جالبن. از دستشون ندید.
همین طور loving python رو: http://lovingpython.blogspot.com
دوشنبه، اسفند ۱۰، ۱۳۸۸
جلسه ۶
لینکهای این جلسه:
http://docs.python.org/tutorial/modules.html
http://en.wikipedia.org/wiki/Software_design_pattern
http://en.wikipedia.org/wiki/Template_method_pattern
تمرینها:
۱- یک پاراگراف درباره نحوه ی packaging در پایتون
۲- یک پاراگراف درباره ی کاربردهای template method
۳- گسترش برنامه ی Font که در کلاس گفته شد به یکی از دو صورت زیر:
*یا به صورت یک نفری انجام دهید و این کار را بکنید که تعداد حرفهای آن را به ۱۰ یا بیشتر توسعه داده و موارد زیر را هم به آن اضافه کنید: پشتیبانی از حروف کنترلی. مثلا aaaa /b df /b fff /u sfs /u s /n sss
* و یا به صورت گروههای حداکثر تا ۳ نفره و به این شکل که همین موضوع را برای زبان فارسی پیاده سازی کنید.
در هر دو حالت یک جمله ی معنی دار را بوسیله برنامه تان بنویسید.
برای انجام این تمرین تا دو شنبه وقت دارید.
تمرین را به aazadi+t6 در جیمیل بفرستید.
شنبه، اسفند ۰۸، ۱۳۸۸
جلسه 5
http://groups.google.com/group/sharifpython88/web/jalase%205.zip?hl=fa
تمرینها:
۱- فرق __str__ و __repr__
2- نوشتن سیستم افراد درون یک دانشگاه : استاد، دانشجو و کارمند با استفاده از وراثت
۳- تمرینهایی که تابحال تحویل ندادید رو میتونید بفرستید
تا ۲ شنبه صبح
سهشنبه، اسفند ۰۴، ۱۳۸۸
جلسه ۴
تمرین: در اینترنت درباره ی doctest جستجو کنید و
۱. متنی در دو پاراگراف بنویسید. در پاراگراف اول درباره ی اهمیت تست در حالت کلی و همچنین مزایا و معایب doctest بنویسید.
در پاراگراف دوم نحوه کار با doctest را نوشته و بگویید که doctest از نظر تکنیکی چطور کار میکند.
همچنین یک برنامه ی محاسبه دنباله فیبوناچی بنویسید که به همراه doctest باشد.
شنبه، اسفند ۰۱، ۱۳۸۸
جلسه ۳
http://groups.google.com/group/sharifpython88/web/jalase%203.zip?hl=fa
تمرین: فایل مربوط به خانه را طوری بسط دهید که بتوان یک بنگاه املاک را بوسیله آن اداره کرد. برای برگرداندن لیست خانه های مناسب از yield استفاده کنید.
وبلاگ loving python رو حتما چک کنید.
دوشنبه، بهمن ۱۹، ۱۳۸۸
جلسه ۲
http://groups.google.com/group/sharifpython88/web/jalase 2.zip?hl=fa
۲. در ترمیم قرار است که یک گروه دیگر هم برای این درس ارایه شود. به این شکل که این گروه مخصوص دانشجویان علوم کامپیوتر و گروه دیگر مخصوص ریاضی باشد. کلن این گروه خیلی سخت تر از گروه دیگر خواهد بود. اگر نمیتوانید به اندازه کافی وقت بگذارید حتما در ترمیم گروه خودتان را عوض کنید.