האם צריך פיסיקה במדעי המחשב...?

האם צריך פיסיקה במדעי המחשב...?

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

vinney

Well-known member
בטכניון חובה ללמוד פיסיקה.

זה לא קשור למדעי המחשב.
 
כמו שידיד שלי שלמד בטכניון אמר פעם ...

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

1ca1

New member
לדעתי אין צורך

לא לדבר על כך שרק בשביל להבין לחלוטין פעולות כמו טרנזיסטור ומעבד (במובנים המודרנים, לא ההפשטות של מערכות ספרתיות/OS) צריך לדעת מצב מוצק היטב, רק בשביל להגיע לזה צריך הרבה (נכון שיש בסיס מתמטי יותר טוב משל פיזיקה, מצד שני, אתה תצטרך כנראה את קורסי המת"פ (מתמטיקה לפיזיקאים) למיניהם בשביל להתמודד עם הדברים, ונניח תלך במסלול סופר מקוצר, משהו בסגנון חשמל- גלים - קוונטים 1+2 , עדיין זה לא מעט עבודה (כל קורס כזה הוא וואחד קורס), ואח"כ רק מתחילים הדברים (מצב מוצק - פיזיקה של מוליכים למחצה, יש לציין ששני האחרונים הם קורסי בחירה לבוגר בפיזיקה). כנראה מה שכדאי הוא ההיבטים ה"חשמליים" כלומר לבנות מעגלים בסיסיים (ואולי קצת על הבנייה של השערים עצמים עם CMOS/PMOS), אבל את זה (לפחות ברמה הבסיסית) משלימים עוד בתיכון. יש אולי טעם לשיפור בידע ה"הנדסי" של הבוגרים (קורסי מבוא בהנדסת חשמל (שגם יענו על הסעיף הקודם), אולי קצת עיבוד אותות וDSP, אלה למשל קורסי בחירה אצלנו וזה מתוך הרציונאל שהרוב יהיו מתכנתים, וגם אם מדי פעם יצטרכו לעשות טרנספורם פורייה, הם ימצאו ספרייה מוכנה עם FFT). נ.ב. חשבת על הקורסים שאתה מפסיד? מין הסתם אתה לא יכול לקצץ במתמטיקות, אז או שאתה מקצץ קורסי בחירה (דבר חשוב מאוד לדעתי במדעי המחשב), או בתיכנות (גם כן, חשוב למי שמעוניין לתכנת אח"כ בשוק) או בתיאוריה (בעייתי למי שרוצה להמשיך במסלול האקדמי). ומאחר שלא יאריכו את התואר ל4 שנתי (לזה קיימים הנדסת מחשבים והנדסת תוכנה, ד"א בהנדסת מחשבים כן לומדים דברים כמו שתיארתי כאן) כנראה שהנושא יתמסמס.
 

tamarhp

New member
אין צורך

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

generala

New member
הסיבה העיקרית היא כזו:

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

vinney

Well-known member
באמת

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

generala

New member
תחשוב

שאתה כותב תוכנה שתרוץ על המעבד בזמן ריצה של 20 מיליש' במקום שאם היית מבין במעבד לעומקו ברמה הפיסיקלית היית יודע שדווקא שיפור ל- 19 מיליש' היה משפר אקספוננציאלית את מהירות העבודה של המשתמש קצה בגלל סיבות פיסיקליות אלו ואחרות.... בשביל 3 קורסים בפיסיקה זה נראה לי עיסקה לא רעה בכלל...
 

vinney

Well-known member
מה, כתבת את מה שכתבת

במלוא הרצינות? מילא היית מדבר על מיקרו שניות או נאנו שניות, מילי שניות זה שנים בקנה מידה של כל מעבד עכשווי
 

generala

New member
התכוונתי

למיקרו נו... מה זה הרי הבדל של
10^-3​
בין מילי למיקרו
 

vinney

Well-known member
וזה עדיין לא משנה../images/Emo13.gif

אם תדע פיסיקה, איך זה יעזור לך? אם תדע אסמבלר זה אולי יעזור לך, אבל פיזיקה? לא רואה איך.
 

BlackBamba

New member
פיזיקה מאוד עוזר../images/Emo70.gif

כשאני רוצה לבצע אופטימיזציה אני פשוט מאיץ את המעבד למשהו בסביבות 0.99c נגד כיוון השעון, וככה הזמן מואץ בערך פי 7 בסביבת המעבד. (שימו לב לא להאיץ בכיוון ההפוך כי אז הזמן מואט, או אף חוזר לאחור). לפותח השרשור: הפיזיקה מיותרת ומעט מעיקה (תלוי בלומד וגישתו בעיקר) אבל עוברים את זה. במיוחד (מבחינה סטטיסטית) מעיק פיזיקה 2מ' (אם עדיין נדרש) תכין הרבה סבלנות בצד ואל תתרגש אם תצטרך לחזור על הקורס. לא מעט חבר'ה גוררים את הקורס עד הסמסטר התשיעי. (ואחרי השער התשיעי אנחנו יודעים מה מחכה...). אין לפיזיקה שימוש במדעי המחשב פרופר שעוסקים בהפשטה (מתמטית) של מושגים חישוביים ולא ממש איכפת אם טיורינג בעצמו מפעיל את המכונה שלו, 2 גמדים צהובים אוהדי בית"ר, או גרגר לכלוך עשוי סיליקון. המודלים החישוביים/חשיבתיים לא תלויים בפיזיקה, הם מתמטיים/רעיוניים לחלוטין. גם שערים לוגיים, הם קודם כל לוגיים ולא איכפת לאיש מדמ"ח ממה עשוי "השער". האם סיבוכיות מודדים בננו-שניות? (או ביח' זמן "אמיתי" אחרות כלשהן). כנחמה, כל קורס המצריך התמודדות ופתרון בעיות אפשר להרוויח ממנו משהו. אבל לא יותר מכך. נ.ב. פעם היה חובה גם קורס כימיה 1 למדמ"ח. אז היה... אבל על פיזיקה הטכניון לא יוותר.
 

generala

New member
אם תלמד

פיסיקה 3 (מודרנית), תדע שיש תופעות שקורות לאלקטרונים המפתיעות מאוד בעבודה האלקטרונית המשולבת תוכנה. למשל שאלקטרון יכול להופיע בשתי מקומות בו זמנית (אלקטרון בודד) ועל הניואנסים הקטנים הללו המהנדסים משפרים מהירויות מעבדים ועוד, ורצוי וראוי שבוגר מדמ"ח יהיה מודע לנושאים הללו שיכולים לגרום לו ליעל את החומרה אליה הוא כותב ולחסוך אפילו שורות קוד ולשפר יעילות, מלבד זאת, שוב... 3 קורסי פיסיקה לא הרגו אף אחד ולמי שיש ראש פתוח הוא יכול להרוויח מהידע הזה במקום העבודה שלו. תהליכי עבודה על שבבים כגון הכנת ה- waffle-ים ושבירתם לשבבים וכו' באמת שלא מעניינים ועוזרים לעבודת בוגר מדמ"ח \ מהנדס התוכנה. ולכן הורידו (כמו שצויין כאן) את כימיה 1. אבל כנראה שיש סיבה טובה שבגללה השאירו את הפיסיקה כחובה ובצדק !
למה למשל לדעתך תלמידי ארכיטקטורה בטכניון לא לומדים פיסיקה ? הם הרי מתכננים מבנים ומחשבים חוזק, כי זה אולי אפילו פחות חשוב מפיסיקה למדמ"ח ובצדק, תחשוב על זה...
 

vinney

Well-known member
תלמידי ארכיטקטורה לומדים חומרים

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

generala

New member
אוף נו...

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

vinney

Well-known member
זה פשוט לא נכון

שום דבר ממה שאמרת. פשוט לא נכון, מצטער
 

neko

New member
../images/Emo45.gif אפילו מתכנת אסמבלר

לא צריך לדעת איך המעבד שלו עובד, ולמעשה עדיף שלא ידע, כי מחר יריצו את התוכנה שלו על מעבד אחר.
 

BlackBamba

New member
ואם תלמד מדמ"ח

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