כיתת לינוקס בירושלים

2006-07-10 חוט Adam Rimon
שלום לכולם,ככל הנראה, אני אלמד במהלך חצי משנת הלימודים הבאה מחשבים בבית ספר יסודי, שבו למדתי, בירושלים.חשבתי ללמד אותם תכנות בשפתCובמקביל להכיר להם את לינוקס.אני מקווה שיאושרו לי שלוש שעות שבועיות:
שעה תיאורטית, ושעתיים מעבדה.אשמח אם תציעו לי רעיונות לתכנית לימודים בלינוקס.תודה,-אדם


Re: כיתת לינוקס בירושלים

2006-07-10 חוט Oren Weil




לפי דעתי C תיהיה שפה
"קשה" בשביל ילדים ביסודי, אולי תחשוב משהו יותר ליכוון של KPL או סוג של
Basic ללינוקס.




Adam Rimon wrote:


  שלום לכולם,
  
ככל הנראה, אני אלמד במהלך חצי משנת הלימודים הבאה מחשבים בבית ספר יסודי,
שבו למדתי, בירושלים.
חשבתי ללמד אותם תכנות בשפת
C
ובמקביל להכיר להם את לינוקס.
אני מקווה שיאושרו לי שלוש שעות שבועיות:
  
שעה תיאורטית, ושעתיים מעבדה.
  
אשמח אם תציעו לי רעיונות לתכנית לימודים בלינוקס.
  
תודה,
-אדם
  


-- 
Oren Weil ([EMAIL PROTECTED])
ICQ: 1551283





Re: כיתת לינוקס בירושלים

2006-07-10 חוט Ori Idan
מלחמת שפת התכנות...
אני אישית חושב שאין בעולם שפה יותר קלה מאשר C.
אני מעדיף אותה על כל שפה אחרת בעולם.
אבל גם פרל זו שפה טובה.
רק אל תיגע בכל השפות מוכוונות אוביקטים לדעתי הן פשוט לא טבעיות.

-- 
אורי עידן

Shlomi Fish wrote:
 On Monday 10 July 2006 12:03, Oren Weil wrote:
   
 לפי דעתי C תיהיה שפה קשה בשביל ילדים ביסודי, אולי תחשוב משהו יותר
 ליכוון של KPL או סוג של Basic ללינוקס.

 

 בתקווה שאני לא פותח מלחמת מה השפה הטובה ביותר להתחיל בה, הנה 20 האגורות שלי:

 1. שפת C היא שפה קשה נקודה. הבעייה בלהתחיל עם C היא שבמקום להתעסק בתכנות אתה 
 מתעסק עם יותר מדי דברים שוליים כמו הקצאות זכרון, שחרור זכרון, מצביעים, 
 ומריחות זכרון. שפה למתחילים צריכה לאפשר לך לעשות בקלות דברים כמו להדפיס 
 מחרוזות, לשרשר שתי מחרוזות מבלי לדאוג אם יש מקום ואם הקודמות או החדשה שוחררה, 
 רצוי שלא תצטרך לדאוג לטיפוסים יותר מדי, וכו. אין את כל הדברים האלה ב-C.

 שמתי לב איך בטכניון אנשים שמתחילים ללמוד עם C, נאבקים יותר מדי עם דברים כאלה 
 במקום ללמוד את התכלס של התכנות והאלגוריתמיקה.

 2. בייסיק... אני וחלק גדול מהדור שלי (ומהדורות הקודמים) למדתי תכנות בבייסיק. 
 אחת הבעיות של בייסיק היא שיש לה מספר רב מאוד של דיאלקטים:

 http://en.wikipedia.org/wiki/List_of_BASIC_dialects

 בעיה אחרת היא שעולם התוכנה התקדם מאוד מאז. פעם כל ילד שידע בייסיק ואסמבלר היה 
 נחשב האקר. היום מהאקרים מתחילים מצפים שידעו הרבה יותר(1). בייסיק פרופר (לא 
 Visual Basic, VB.NET, Visual Basic for Applications, ושאר הואריאנטים 
 המודרניים של מיקרוסופט), גם לא הצליחה לתפוס את השפות המודרניות האחרות שהתקדמו 
 יותר, אך עדיין נשארו קלות יחסית ללימוד. 

 דיאלקט הבייסיק שאני מכיר שהכי התרשמתי ממנו הוא Visual Basic for Applications 
 שקיים באקסל, וייתכן גם שקיים במקומות אחרים. הוא די מודרני וכן קונסיסטנטי 
 יחסית (אך עדיין מחוויר לעומת פרל ואחיותיה) ייתכן שיש מימוש מספיק דומה מספיק 
 טוב שלו ללינוקס, אבל לא חקרתי את הנושא, וזה גם לא חסר לי כל כך.

 3. אני מציע להתחיל עם אחת מהשפות הדינמיות/גמישות/שפות תיסרוט/שפות P וכו. 
 אילו אני הייתי צריך ללמד הייתי מלמד פרל, גם משום שזאת השפה שאני מכיר הכי טוב, 
 וגם מפני שאני חושב שהיא מתאימה לכך. קרוב לודאי שפייתון או רובי מתאימות גם הן, 
 אם כי יש להן יתרונות וחסרות.

 אחת הבעיות שנראית לי שקיימת עם פייתון היא שחלק גדול מהמתכנתים הלומדים פייתון 
 כשפה ראשונה, אחר-כך לא מסוגלים להתרגל לשום שפה אחרת. (שלא לדבר על הרבה מאוד 
 היבריס ואליטיסם בקרב הפייתונאים). אבל יכול להיות שזה סתם נדמה לי.

 -

 בכל מקרה, לאוניברסיטאות יש דעות משלהן על כיצד ללמד תכנות. בדכ גם 
 אוניברסיטאות 
 די מניחות שהסטודנטים ישתמשו לרוב בשפה אחת (C, Java או כל שפה אחרת) כמעט לכל 
 לימודיהם. אם אתה מלמד ילדים, אז הכי טוב זה להכין אותם ללימודים אפשריים של 
 תכנות, בכך שתלמד אותם מספר שפות, המתחילות משפה דינאמית, ממשיכות ב-C ובשפות 
 אחרות.

 יש בכוונתי לכתוב על כך מסה מקיפה (באנגלית), אבל זה הסיכום שלי.

 דרך אגב, לילדים ביסודי לעיתים קרובות קל יותר ללמוד תכנות (בכל שפה) מאשר 
 לסטונדטים מבוגרים יותר.

 בכבוד רב,

   שלומי פיש

 [1] - http://www.joelonsoftware.com/articles/LordPalmerston.html

   
 Adam Rimon wrote:
 
 שלום לכולם,

 ככל הנראה, אני אלמד במהלך חצי משנת הלימודים הבאה מחשבים בבית ספר
 יסודי, שבו למדתי, בירושלים.
 חשבתי ללמד אותם תכנות בשפת
 C
 ובמקביל להכיר להם את לינוקס.
 אני מקווה שיאושרו לי שלוש שעות שבועיות:
 שעה תיאורטית, ושעתיים מעבדה.

 אשמח אם תציעו לי רעיונות לתכנית לימודים בלינוקס.

 תודה,
 -אדם
   

   



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: �›�™�×�× �œ�™�  �•�§�� �‘�™�¨�•�©�œ�™�

2006-07-10 חוט Nadav Har'El
On Mon, Jul 10, 2006, Oren Weil wrote about Re: ??תת ??נ?קס ??ר?ש???:
 לפי דעתי C תיהיה שפה קשה בשביל ילדים ביסודי, אולי תחשוב משהו יותר
 ליכוון של KPL או סוג של Basic ללינוקס.

האם אתה אומר זאת מניסיון?

הניסיון שלי הוא קצת אחר. בכיתה גימל ניסיתי ללמוד בייסיק, ולא הבנתי כלום.
בכיתה דלת התחלתי ללמוד C ו- Shell, ואז דווקא נתפסתי. רק שנה אחר כך, חזרתי
ללמוד בייסיק, ואז עניין אותי פחות להשתמש בו, ויותר לשפר את קוד המקור שלו :-)
(למזלי למדתי לתכנת על מחשב יוניקס שהיה עליו קוד המקור של כל המערכת).

ברור לי שהניסיון שלי הוא לא מאוד אופייני, אבל אני לא חושב שצריך למהר להכריז
על בייסיק כשפה עדיפה ללימוד. יש המון אפשרויות אחרות, כולל C, shell, logo,
java, ועוד ועוד.

-- 
Nadav Har'El|  Monday, Jul 10 2006, 14 Tammuz 5766
[EMAIL PROTECTED] |-
Phone +972-523-790466, ICQ 13349191 |I don't eat snails. I prefer fast food.
http://nadav.harel.org.il   |

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: �”�•�§�ž�” �•�™ �§�™ �ž�¤�œ�’�”

2006-07-10 חוט Nadav Har'El
On Sun, Jul 09, 2006, Ram-on Agmon wrote about ??ק?? ??ק? ?פ???:
 הקמנו ויקי מפלגה. המטרה היא לעצב מצב 
 ולבחור אנשים באמצעות מנגנון הויקי.

רעיון מסקרן, וקצת מפתיע.

מפתיע, מכיוון שנדמה לי שהחסרונות של הוויקי שלפעמים מעלים, נכונים שבעתיים
במקרה של מפלגה. מעניין אותי איך אתה חושב לפתור את הבעיות הבאות:

1. ויקי לא מתמודד היטב עם מחלוקות. מתמודד, כן, אבל לא היטב. אם כותב אחד טוען
   ש- יש לשבור את הביצה בצד הרחב ואחר מתעקש שיש לשבור את הביצה בצד הצר,
   הפשרה אליה בדרך-כלל בויקיפדיה תראה כמו ישנה מחלוקת בציבור לגבי איזה צד
   יש לשבור את הביצה - יש הטוענים בצד הרחב ויש הטוענים בצד הצר..
   משפטים מסוג זה יהיו בעייתיים מאוד במצע של מפלגה. האם היית בוחר במפלגה
   שהמצע שלה לא החלטי בצורה כזו?
   ואיך ייבחרו המועמדים לכנסת? האם יש בכלל איזשהו סיכוי להימנע מ edit war
   כאשר הרווח הצפוי משינוי (משכורת ורכב של חכ) כה אדיר?

2. בויקי אין ממש מושג של תוכן רשמי - יש את התוכן עכשיו, ועוד חמש דקות התוכן
   עשוי להיות אחר. לעתים קרובות הואשמו מפלגות בכך שנבחרו תחת מצע מסוים, אך
   התנהגותם מתאימה למצע אחר; המפלגה שלך מראש מודיעה שהיא הולכת לפעול כך,
   מכיוון שהמצע ניתן לשינוי בכל זמן, ועל-ידי כל אחד. האם זה לא יפחיד את
   הבוחרים?

-- 
Nadav Har'El|  Monday, Jul 10 2006, 14 Tammuz 5766
[EMAIL PROTECTED] |-
Phone +972-523-790466, ICQ 13349191 |All those who believe in psychokinesis,
http://nadav.harel.org.il   |raise my hand.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: כיתת לינוקס ביר ושלים

2006-07-10 חוט Oren Weil




אפשר להגיד שזה מנסיון, 
למי שיש קצת רקע במחשבים
C יוכלה להיות שפה מאד קלה להבנה. אבל אני רואה אנשים באוניברסיטה מנסים
להבין מה זה פויינטר ולא מצליחים (אל תגיד לי שאפשר ללמד בלי פויינטרים) 
אני חסיד של שפת C אני
מעדיף אותה על פני שפות אחרות, אבל לילדים צריכים לתת משהו איטואיטיבי.




Nadav Har'El wrote:


  On Mon, Jul 10, 2006, Oren Weil wrote about "Re: ??תת ??נ?קס ??ר?ש???":
  
  
לפי דעתי C תיהיה שפה "קשה" בשביל ילדים ביסודי, אולי תחשוב משהו יותר
ליכוון של KPL או סוג של Basic ללינוקס.

  
  
האם אתה אומר זאת מניסיון?

הניסיון שלי הוא קצת אחר. בכיתה גימ"ל ניסיתי ללמוד בייסיק, ולא הבנתי כלום.
בכיתה דל"ת התחלתי ללמוד C ו- Shell, ואז דווקא נתפסתי. רק שנה אחר כך, חזרתי
ללמוד בייסיק, ואז עניין אותי פחות להשתמש בו, ויותר לשפר את קוד המקור שלו :-)
(למזלי למדתי לתכנת על מחשב יוניקס שהיה עליו קוד המקור של כל המערכת).

ברור לי שהניסיון שלי הוא לא מאוד אופייני, אבל אני לא חושב שצריך למהר להכריז
על בייסיק כשפה עדיפה ללימוד. יש המון אפשרויות אחרות, כולל C, shell, logo,
java, ועוד ועוד.

  


-- 
Oren Weil ([EMAIL PROTECTED])
ICQ: 1551283





Re: כיתת לינוקס בירושלים

2006-07-10 חוט Dotan Mazor




שלום לכולם,


אם כבר מעלים את זה, אז
בתור מישהו שלמד תכנות, אבל אינו מתכנת (השבח לאל בורא עולם), אני זוכר
שהשיטה השימושית היא זאת שהצליחה "לחדור" גם אל אלו שלא עניינו אותם
מחשבים.


בסופו של דבר, מי שיש לו
כישרון לתכנות, וזה מעניין אותו (סטטיסטית עדיין מדובר ברוב של מתכנתים
זכרים), תמיד יגיע אל שפות מתקדמות יותר. לא צריך להתעלל בעוללים, שכל
חטאם מתמצא בכך שהם נכללים במסגרתו של חוק לימוד חובה.


כל שפה שמשלבת בתוכה
תפריטים גרפיים מגניבים, ואפשרות ליצור קופסאות מדליקות ותפריטים נגללים
בלחיצת כפתור, יקבל היענות חיובית מיותר תלמידים.


או כך, לפחות, לעניות
דעתי.


בברכה,
דותן מזור



Oren Weil wrote:


  
  לפי דעתי C תיהיה שפה
"קשה" בשביל ילדים ביסודי, אולי תחשוב משהו יותר ליכוון של KPL או סוג של
Basic ללינוקס.
  
  
  
  
  Adam Rimon wrote:
  
  
שלום לכולם,

ככל הנראה, אני אלמד במהלך חצי משנת הלימודים הבאה מחשבים בבית ספר יסודי,
שבו למדתי, בירושלים.
חשבתי ללמד אותם תכנות בשפת
C
ובמקביל להכיר להם את לינוקס.
אני מקווה שיאושרו לי שלוש שעות שבועיות: 
שעה תיאורטית, ושעתיים מעבדה.

אשמח אם תציעו לי רעיונות לתכנית לימודים בלינוקס.

תודה,
-אדם

  
  
  -- 
Oren Weil ([EMAIL PROTECTED])
ICQ: 1551283
  


-- 
Dotan Mazor
http://www.dotanmazor.com





Re: To OO or not to OO? This is the Religious War

2006-07-10 חוט Shachar Shemesh




Shai Berger wrote:

  
אני מסכים עם שחר לגבי Logo, אבל לא לגבי ההכללה. אני חושב שהיא תופסת
לגבי שפות מוכוונות-אובייקטים "טהורות" יחסית (כמו Java, למשל)
אח אח אח. איפה מגיני Smalltalk כשצריך אותם.

הפיוריסטים יגידו שזו השפה מוכוונת אובייקטים הטהורה היחידה. כל השאר הן
רק נסיונות כושלים. מצד שני, כל מי שאי פעם עבד או כתב תוכנת "עולם אמיתי"
שכתובה ב-Smalltalk, שיקום.
 אבל לא
בהכרח לגבי שפות שכוללות תמיכה באובייקטים, אבל לא עושות מזה דת (כמו
פייתון, או, להבדיל, _javascript_). 

אם לא מלמדים איזור בשפה שגורם לסיבוכיות, והשפה היא שלמה בלי אותו איזור,
אפשר פשוט להתעלם ממנו.

שחר






Re: �›�™�×�× �œ�™� �•�§�� �‘�™�¨�•�©�œ�™�

2006-07-10 חוט Shlomi Fish
On Monday 10 July 2006 14:32, Nadav Har'El wrote:
 On Mon, Jul 10, 2006, Shlomi Fish wrote about Re: ??תת ??נ?קס ??ר?ש???:
  1. שפת C היא שפה קשה נקודה. הבעייה בלהתחיל עם C היא שבמקום להתעסק בתכנות
  אתה מתעסק עם יותר מדי דברים שוליים כמו הקצאות זכרון, שחרור זכרון,
  מצביעים, ומריחות זכרון. שפה למתחילים צריכה לאפשר לך לעשות בקלות דברים כמו
  להדפיס מחרוזות, לשרשר שתי מחרוזות מבלי לדאוג אם יש מקום ואם הקודמות או
  החדשה שוחררה, רצוי שלא תצטרך לדאוג לטיפוסים יותר מדי, וכו. אין את כל
  הדברים האלה ב-C.

 לדעתי, השאלה איך רואים את המטרה של שיעורי התכנות - האם היא יוטיליטרית,
 או פדגוגית?  כלומר,

  1. מטרה יוטיליטרית (שימושית): אתה מנסה להראות לילדים איך המחשב עשוי
 להיות שימושי עבורם. אתה רוצה לללמד את הילדים שפה בה יוכלו לכתוב תכניות
 שעושות משהו במהירות האפשרית. כאן בהחלט עדיפות שפות high level, אפילו
 interpreted, שפות עם ספריות עשירות שכוללות את כל האלגוריתמים שניתן לרצות
 להשתמש בהם, ואפילו שפות שלא צריך לתכנת בהם הרבה (עזרים גרפיים לבניית
 האפליקציה). C בהחלט לא השפה האופטימלית אם זו המטרה שלך.

  2. מטרה מדעית (חינוכית): אתה מנסה ללמד את הילדים איך פועל מחשב, ולתת
 להם טעימה קטנה (מאוד) ממדעי המחשב. ללמד אותם משהו על הצורה בה חושב מחשב
 (עושה בדיוק מה שאתה אומר לו, לא יותר ולא פחות), על מבני נתונים, אלגוריתמים,
 צריכת זיכרון וכד' (כמובן שמדובר בדברים הכי הכי בסיסיים). אז ייתכן שדווקא
 המאבק עם C ילמד את הילדים איך באמת פועל מחשב - במקום להסתיר את מה שקורה
 עם קסמים שהשפה או הספרייה מבצעת עבורם.

אין לי בעייה שאת התלמידים ילמדו C כשפה שנייה או שלישית. לדעתי זה אפילו הכרחי, 
כי כל מתכנת ששווה משהו יודע C. (או במקרה הגרוע מודע לכך שהוא צריך ללמוד C 
מתישהו). לדעתי גם כדאי ללמד אסמבלר של ארכיטקטורה אחת או יותר ולדעתי גם תכן 
לוגי [1] יכול מאוד לעזור. 

העניין הוא שלהתחיל מ-C זאת בעייה, משום שבמקום ללמוד דברים בסיסיים בתכנות 
(הוראות, תנאים, לולאות, פונקציות, אובייקטים, חריגות (exceptions) קלט ופלט וכן 
הלאה) התלמידים מתעסקים בלהקצות מקום במערכים, לבדוק חריגות זכרון, ועוד כל מיני 
דברים שגורמים אפילו למתכנתי C מנוסים להעדיף שפות גבוהות יותר למרבית המטלות של 
חיי היום-יום ולאחרונה אף מטלות רציניות בהרבה[2]. 


  3. אני מציע להתחיל עם אחת מהשפות הדינמיות/גמישות/שפות תיסרוט/שפות P
  וכו. אילו אני הייתי צריך ללמד הייתי מלמד פרל, גם משום שזאת השפה שאני מכיר
  הכי טוב, וגם מפני שאני חושב שהיא מתאימה לכך. קרוב לודאי שפייתון או רובי
  מתאימות גם הן, אם כי יש להן יתרונות וחסרות.

 פרל אחת השפות האהובות עליי, אבל בכל-זאת אני לא מסכים אתך שכדאי ללמד אותה
 כשפה ראשונה. פרל פשוט שפה מסובכת מדי. אחד הדברים היפים ב C הוא שאתה יכול
 לקרוא ספר של 100 עמודים, ולהגיד: הנה, אני יודע C, עכשיו נראה מה אני יכול
 לעשות עם זה. בפרל, גם אחרי 500 עמודים אתה מרגיש שאתה עוד לא מכיר חצי
 מהאפשרויות, ושיש 17 דרכים לעשות כל דבר. אני לא חושב שזו גישה מתאימה
 למתחילים: מי שלא מכיר שום דרך לעשות כלום, לא צריך פתאום 10 דרכים.

אני לא בטוח שזה חסרון. דיברתי פעם עם מישהו והוא אמר שהוא יעדיף ללמד מתכנתים 
חדשים פרל במקום סי מאותה סיבה שהוא יעדיף ללמד אנגלית על פני אספרנטו: כי יש 
יותר דרכים להתבטא. כפי שאמרתי פעם בקונטקסט אחר C: There's usually only one 
way to do it, but there's more than one way to optimise it.. תלמידים שילמדו 
פרל קרוב לוודאי שיאהבו את האפשרויות לבטא את עצמם בפרל, ויאהבו את העובדה שיהיה 
זמן רב עד שלא יהיה להם יותר מה ללמוד.

אחד מהיתרונות שאני מצאתי עם פרל הוא שתמיד אפשר להסתדר טוב עם חלק קטן יחסית של 
השפה. כשאני למדתי פרל אני לא למדתי מודולים ואובייקטים. מודולים למדתי מספר 
שנים אחר-כך, ואובייקטים זמן רב אחר-כך. הבנתי את המשמעות מאחורי סגורים 
(closures) רק אחרי שקראתי את Structure and Interpretation of Computer 
Programs וספר אחר על למבדה קלקולוס. (ונוכחתי שהדברים הללו פשוט עבדו בפרל כפי 
שעבדו ב-Scheme).

אני לא טוען שאין לגישה הזאת חסרונות אפשריים, כמו האפשרות לפחוד מפני השפה 
והעובדה שהלומדים את השפה יתקשו לעכל את כולה. במובן מסוים זה trade-off. 


 אגב, דבר נוסף שאפשר ללמד הוא... shell. כן, אני מניח שברקע נשמעים צחוקים על
 פרימיטיביות שפת התכנות הזו, אבל מה שיפה הוא שלימוד shell בהכרח משולב בלימוד
 לינוקס או יוניקס בכללותו, ולומדים להכיר מגוון פקודות. הספר המקורי של
 קרניגהן ופייק, The Unix Programming Environment, הוא דוגמה מעולה לכך,
 וממנו למדתי לתכנת (כאמור, בכיתה דלת). היום זה ספר ענתיקה (יצא ב 1984),
 אבל בוודאי קיימים ספרים אחרים.

לי יש בעייה עם לימוד המעטפת של יוניקס כשפה ראשונה. אין לי בעייה שאת התלמידים 
ילמדו מספר פקודות בסיסיות בשל לניהול קבצים, וכו. אולם, הבעייה בלימוד תכנות 
בעזרת המעטפת הוא שהמעטפת שונה מהותית משפות mainstream (קרי כל שפה החל מ-C, 
Java, C++ דרך awk, פייתון, פרל, רובי, Tcl, וכלה ברוב השפות האקזוטיות יחסית 
כמו Smalltalk). אומנם במטעפות מודרניות כמו באש ו-zsh ניסו להתגבר על כך על-ידי 
יצירת טיפוסים חדשים של מערכים וכו, הרי שבשל קלאסי קשה לכתוב אלגוריתמים 
יעילים. לדוגמא ב-Bourne Shell וב-csh אין מערכים אלה רק רשימות הממוששות 
כמחרוזות. 

מהר מאוד אנשים הבינו שאם רוצים לכתוב משהו יותר רציני יש להשתמש בשפות דינמיות. 
Awk היה חצי הדרך, אבל בסוף פרל וחברותיה לקחו את כל הקופה, משום שהיו הרבה יותר 
רציניות מ-Awk.

אם אתה מכיר פייתון טוב, או מוכן ללמוד אותו על מנת ללמד אותו, אז קרוב לודאי שזה 
רעיון טוב ללמד אותו לאחרים. הבעתי מספר סייגים לא כל כך רציניים מהלימוד שלו 
אבל הם לא כל-כך