برنامه نویسی شی گرا

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

برنامه نویسی ساخت یافته روش منظمی برای تولید برنامه ها است. برنامه هایی که به این شیوه نوشته می شوند خوانایی زیادی دارند ( یعنی راحت درک می شوند )، آزمایش و اشکال زدایی و اصلاح آنها نیز آسان تر است. در این روش، برنامه به صورت مجموعه ای از فعالیت ها تصور می شود که باید بر روی داده ها انجام شوند. هر کار پیچیده ای به چند کار کوچک تر تجزیه میشود تا این کارها به راحتی قابل پیاده سازی باشند. سپس برای انجام هر یک از این کارها، زیر برنامه خاصی که «تابع» نام گرفته نوشته میشود. به همین دلیل به این شیوه «برنامه نویسی بالا به پایین» نیز میگویند.
برنامه نویسی ساخت یافته روش موفقی در حل مسائل پیچیده است. توابع قابلیت استفاده مجدد دارند. یعنی میتوان توابع یک برنامه را در برنامه های دیگر نیز به کار گرفت. به این ترتیب کد نویسی کمتر میشود و تولید نرم افزار با سرعت بیشتری صورت می پذیرد.
توابع امکان می دهند تا تولید نرم افزار با استفاده از گروه ممکن شود. به این شکل که پس از مشخص شدن تابع های مورد نیاز، هر یک از اعضای گروه وظیفه نوشتن و آزمایش توابع مشخصی را بر عهده می گیرند و به این شکل اعضای گروه به صورت همزمان روی بخش های مختلف برنامه کار می کنند بدون اینکه یکی منتظر دیگری بماند. در نهایت این تابع ها به هم پیوند میخورند تا جریان منطقی برنامه برقرار شود. بدیهی است که عیب یابی و اصلاح برنامه نیز آسان می شود زیرا با بررسی جریان برنامه، تابع معیوب به سرعت شناسایی و اصلاح می شود بدون اینکه بقیه بخش های برنامه تغییر یابند. زبان های C و Pascal دو نمونه از زبان های برنامه نویسی ساخت یافته هستند.
برگرفته از کتاب برنامه سازی پیشرفته دکتر احمد فراهی
مروری بر تاریخ برنامه نویسی

برنامه نویسی رایانه، به گونه ای که ما امروز می شناسیم، در اواخر دهه 50 میلادی شروع شد و در دهه 60 میلادی به سرعت رشد نمود. در آن دوران، برنامه نویسی یک کار تخصصی و مهندسی تلقی نمی شد زیرا رایانه ها بسیار محدود بودند و کارهای ساده ای انجام می دادند. اغلب اینگونه بود که افراد بسیار سریعتر از رایانه ها پاسخ محاسبات ریاضی را می یافتند. لذا برنامه نویسی برای چنین دستگاه هایی چندان ارزش و اهمیت نداشت و اولین اولین برنامه ها فقط چند دستور ساده متوالی بودند. پس از اجرای این دستورها، رایانه باید از نو راه اندازی می شد تا برای اجرای دوباره برنامه آماده شود.
کم کم سخت افزار متحول شد و رایانه ها قدرتمندتر و کارآمدتر شدند اما به همان نسبت، تولید برنامه برای آنها دشوار گشت طوری که برنامه های ساده اولیه، مشکل جدی بر سر راه کاربری رایانه محسوب شدند. پس تلاش هایی صورت گرفت تا برنامه های کارآمد تری نوشته شود. اما طبق یک قانون کلی، پیچیدگی نرم افزار بیشتر و بیشتر می گردد تا جایی که دیگر انسان نمیتواند آن را مدیریت کند و از همان جا هرج و مرج شروع می شود.
به زودی نهضت همگانی صورت گرفت تا همکاری برای مدیریت پیچیدگی و کارایی برنامه ها یافت شود. سرانجام در اواخر دهه 60 «برنامه نویسی ساخت یافته» به عنوان راه حل پذیرفته شد. برنامه نویسی ساخت یافته امکان می داد که برنامه به چند تابع تقسیم شود و چند نفر به طور همزمان کار تولید نرم افزار را پیش ببرند و همین امر سبب افزایش سرعت تولید نرم افزار و کاهش خطاهای برنامه نویسی گردید و برنامه های بزرگ و مفید ساخته شدند. برنامه هایی که در ابتدا با این روش ایجاد شدند چیزی بین 10 تا20 هزار خط کد داشتند، از ساختمان داده کوچکی بهره می جستند و الگوریتم های ساده ای در آنها به کار می رفت. با استفاده از برنامه نویسی ساخت یافته به راحتی می شد چنین برنامه ای را مدیریت کرد.
برنامه ها آرام آرام به قصد بهبود کارایی حجیم تر شدند. الگوریتم های پیشرفته ای به کار گرفته شد و ساختمان داده پیچیده تری در ترکیب برنامه استفاده شد. برنامه نویسی ساخت یافته دیگر نمی توانست از پس کدهای طولانی چنین برنامه هایی بر بیاید (سیستم عامل ویندوزNT بیش از 10 میلیون خط کد دارد.
به نظر میرسد که روش دیگری لازم است تا تولیدکنندگان نرم افزار از دست متغیرهای فراوان و توابع طولانی و سرگیجه آور خلاص کند. بر اساس این تفکر بود که « برنامه نویسی شی گرا » پیش کشیده شد. تفکر شی گرا تقریبا همزمان با تفکر ساخت یافته مطرح شد اما فقط برای طراحی برنامه استفاده می شد. پس از عاجز ماندن برنامه نویسی ساخت یافته، شی گرایی در برنامه نویسی هم استفاده شد. حالا برنامه نویسان می توانند در برنامه به پانزده شی فکر کنند که این اشیا با چهل پیام مشخص با هم ارتباط دارند، حال آن که همین برنامه اگر به سبک ساخت یافته ایجاد شود باید صد متغیر ، بیست ثابت، ششصد تابع و غیره فکر کرد.
برگرفته از کتاب برنامه سازی پیشرفته دکتر احمد فراهی
نرم افزار

نرم افزار یکی از بخش های اساسی کامپیوتر به شمار می آید. که در واقع سخت افزار را به کار می گیرد. به عبارت دیگر رابط بین کاربر و سخت افزار را نرم افزار می نامند. نرم افزار در واقع روح و جان یک کامپیوتر است، که به سخت افزار هویت می بخشد. نرم افزارها انواع مختلفی دارند که مشهورترین آنها نرم افزارهای سیستمی و کاربردی را میتوان نام برد.
سیستم عامل (OS: Operating System) مشهورترین نوع نرم افزارهای سیستمی می باشد. که مدیریت منابع سیستمی را بر عهده دارد. سیستم عامل، همچنین ارتباط ین کاربر و اجزاء سخت افزاری و نرم افزاری دیگر را برقرار میکند. بعد از روشن شدن کامپیوتر سیستم عامل اولین نرم افزاری است که در حافظهRAM لود می شود و بدون آن نمی توان از سایر نرم افزارهای کامپیوتر استفاده نمود.
سیستم عامل روی حافظه های جانبی ذخیره می شود و به محض روشن شدن کامپیوتر کار خود را آغاز می کند. سیستم عامل وظایف متعددی دارد که به چند نمونه از آن اشاره می کنیم.
زمان بندی وقتCPU ، تقسیم بندی حافظه و تخصیص آن به نرم افزارهای مختلف، به اشتراک گذاشتن حافظه و مدیریت سخت افزار و غیره از وظایف بسیار مهم سیستم عامل است.
سیستم عامل های مختلفی وجود دارند، که هركدام از آنها محصول شرکت های کامپیوتری معتبر می باشد. از متداولترین آنها می توان به: Ms-Dos, Windows, Linux, Unix, CP/M و غیره اشاره کرد.
امروزه معمولا در کامپیوترهای شخصی از محصولات شرکت مایکروسافت استفاده می کنند. محصولات جدید مایکروسافت در زمینه سیستم عامل، سیستم عامل جدید ویندوز با ویرایش های جدید Vista, XP, 2000 می باشد.
نرم افزار توسط زبان های برنامه نویسی (Programming Language) نوشته می شوند. زبان های برنامه نویسی، یک سیستم ارتباطی هستند که توسط آن می توان دستورات لازم را به ماشین انتقال داد.
هر زبان برنامه نویسی مجموعه ای از علایم، قواعد و دستورالعمل ها گفته میشود که امکان ارتباط با کامپیوتر را جهت بیان کاری یا حل مسئله ای فراهم میکند.
انواع زبان های مختلفی موجود است که هركدام خواص مختلفی دارند. در حالت کلی زبانهای برنامه نویسی را به سه دسته زیر تقسیم میکنند:
-
زبان های سطح بالا
-
زبان های سطح پایین
-
زبان های سطح میانی
زبان های سطح بالا به زبان هایی گفته میشود که به زبان گفتاری نزدیک باشند. درک چنین زبانهایی بسیار راحت میباشد. تولید زبان های سطح بالا از اواسط دهه 1950 آغاز گردید. متداولترین زبانهای سطح بالا عبارتند از:COBOL, PL/1, Basic, Pascal, Fortran و غیره.
زبانهای سطح بالا برای اجرا شدن در کامپیوتر نیاز به یک مترجم برای تبدیل زبان سطح بالا به زبان ماشین می باشند. این نرم افزار را کامپایلر (Compiler) می نامند. هر زبان برای خود کامپایلر خاص خود را دارد.
کار اصلی زبانهای برنامه نویسی، نوشتن برنامه (Program) می باشد. هر برنامه مجموعه ای از دستورالعمل های زبان را در خود دارد. برنامه نوشته شده توسط یک زبان را برنامه منبع (Source Program) می نامند. کامپایلر برنامه نوشته شده در یک زبان سطح بالا را به برنامه مقصد (Object Program) تبدیل می کند.
Source Program========>Compiler========>Object Program
زبان های سطح پایین زبان هایی هستند که به زبان ماشین نزدیک تر هستند. کارکردن با این زبان ها به راحتی و سادگی زبانهای سطح بالا نیست ولی به علت نزدیکی به سخت افزار ماشین، برنامه های نوشته شده به این زبان ها سرعت بالایی در زمان اجرا دارند. اسمبلی یکی از انواع زبان های سطح پایین است. هر ماشین با توجه به نوع سخت افزار زبان اسمبلی مخصوص به خود دارد.
زبان های سطح میانی، زبان های مابین زبان های سطح بالا و سطح پایین هستند این زبان ها نیز مانند زبان های سطح بالا نیاز به کامپایلر برای ترجمه دارند.
برگرفته از کتاب مبانی کامپیوتر:جعفر تنها و مهدی یوسف خانی
سخت افزار کامپیوتر 2

حافظه های اصلی
در حالت كلی دو نوع حافظه وجود دارد، حافظه های اصلی و حافظه های جانبی. داده ها، برنامه ها و نتایج در حافظه اصلی ( به طور موقت ) ذخیره میشوند. اغلب کامپیوترها دو نوع حافظه اصلی دارند: حافظه هایی با دسترسی تصادفی (RAM) که داده ها و برنامه ها را به صورت موقت ذخیره میکنند و حافظه فقط خواندنی (ROM) که داده ها را بهصورت دائم ذخیره میکند. وقتی کامپیوتر روشن میشود، برنامه های لازم روی RAM قرار میگیرد یا اصطلاحا لود (LOAD) میشود. این حافظه فرار است و به محض خاموش شدن، اطلاعات آن پاک میشود. از طرف دیگر حافظه ROM اطلاعات را به صورت پایدار در خود ذخیره میکند. اطلاعات این حافظه فقط خواندنی است. چون حافظه فرار نیست با خاموش شدن کامپیوتر، اطلاعات آن پاک نمیشود. در ROM دستورالعمل هایی ذخیره میشوند که به محض روشن شدن کامپیوتر، برای راه اندازی سیستم به آنها نیاز است. معمولا ظرفیت RAM خیلی بیشتر از ROM است.
حافظه های جانبی
نوع دوم حافظه ها، حافظه های جانبی میباشند. حافظه های جانبی برای ذخیره اطلاعات به صورت پایدار به کار میروند. انواع حافظه های جانبی وجود دارد که از مشهورترین آنها میتوان به دیسک سخت (Hard Disk) ، فلاپی دیسک (Floppy Disk) ، نوار (Tape) و سی دی (CD ROM) اشاره کرد. از بین حافظه های جانبی دیسک سخت کاربرد بیشتری نسبت به بقیه دارد. از خواص دیسک های سخت میتوان به داشتن ظرفیت بالا اشاره کرد.
واحد پردازش مرکزی (CPU)
این واحد برای پردازش داده ها و برنامه ها بکار میرود. داده یا برنامه از حافظه اصلی به این واحد ارسال میشوند و بعد از پردازش در این واحد دوباره به حافظه اصلی برگردانده میشود. CPUها غالبا از سه واحد: محاسبه و منطق، کنترل و حافظه تشکیل میشوند.داده ها با هدایت واحد کنترل به واحد محاسبه و منطق ارسال میشوند و پس از انجام محاسبات لازم در واحد محاسبه و منطق، دوباره با هدایت واحد کنترل به حافظه برگردانده میشوند. حافظه واقع درCPU به بافر معروف است و ظرفیت چندانی ندارد.
دستگاه های خروجی
غالبا برای مشاهده نتایج پردازش روی داده ها نیاز به سخت افزارهایی را احساس میکنیم. این سخت افزارها را دستگاه های خروجی مینامیم. از مشهورترین نوع دستگاه های خروجی میتوان به صفحه نمایش (Monitor) ، چاپگر (Printer) و غیره اشاره کرد.
برگرفته از کتاب مبانی کامپیوتر: جعفر تنها و مهدی یوسف خانی
سخت افزار کامپیوتر 1

سخت افزار کامپیوتر:
در حالت کلی روال موجود در کامپیوتر را به صورت زیر میتوان ترسیم نمود:
Input ========> Process ========> Output
همانطور كه ملاحظه ميكنيد کامپیوتر داده را دریافت كرده سپس آنها را پردازش نموده و در نهایت خروجی لازم را تولید مینماید.
برای انجام هر سه عمل فوق یعنی ورودی، پردازش و خروجی قطعات سخت افزاری مورد نیاز است. در این بخش توضیح مختصری در مورد قطعات ارائه میدهیم.
کامپیوترهای امروزی معمولا از قطعات زیر تشكيل میشوند:
· دستگاه های ورودی
· حافظه های جانبی
· حافظه های اصلی
· واحد پردازش مرکزی
· دستگاه های خروجی
دستگاه های ورودی
به وسیله ي دستگاه های ورودی داده ها وارد کامپیوتر می شوند از دستگاه های ورودی می توان به صفحه كليد(Keyboard) ، موس (Mouse) ، قم نوری (Light pen) و غیره اشاره كرد. صفحه كليد و موس از مشهورترین نوع دستگاه های ورودی هستند.
حافظه
حافظه يكی از اجزاء اصلی هر کامپیوتر می باشد كه برای ذخیره داده ها بکار میرود. حافظه يك کامپیوتر از محل های پشت سرهم بنام سلول های حافظه (Memory cells) تشكيل شده است. برای ذخیره و بازیابی اطلاعات، کامپیوتر باید آدرس هريك از سلولهای حافظه را بشناسد. بنابراین هركدام از سلولهای حافظه دارای آدرس منحصر به فردی میباشد كه محل آن را در حافظه مشخص ميكند. اغلب کامپیوترها دارای میلیونها سلول حافظه هستند، كه هر يك آدرس خاص به خود را دارند و داده ها در سلول ها ذخیره میشوند.
هر سلول حافظه شامل گروهی از واحدهای کوچکتر بنام (Byte) می باشد و هر بایت از 8 واحد کوچکتر بنام (Bit) تشكيل می شود. يك بایت میزان حافظه ای است كه برای ذخیره کردن يك کاراکتر موردنیاز است. واحدهای دیگر حافظه به صورت زیر میباشد:
کليه داده ها با هر حجم در حافظه با الگوهای خاصی از صفر و يك ذخیره میشوند. برای ذخیره کردن يك مقدار، کامپیوتر به هر بیت از سلول های انتخابی حافظه، مقدار 0 یا 1 میدهد و محتویات قبلی سلول را در حین پردازش از بین میبرد و مقدار جدید را جایگزین آن مینماید.
مقدمه ای بر پیدایش کامپیوتر 2
كامپيوتر هاي قديمي و امروزه:
اولين كامپيوتر الكترونيكي دراواخر سال 1930 ميلادي توسط دكتر جان آتاناسوف (Atanasoff) در دانشگاه ايالت آيوا (Iowa) طراحي شد. آتاتناسوف كامپيوتر خود را براي كمك به محاسبات رياضي طراحي كرد
اولين كامپيوتر بزرگ (Super Computer) همه منظوره ديجيتال الكترونيك، تحت عنوان ENIAC در سال 1946 ميلادي در دانشگاه پنسيلوانيا ساخته شد. اين كامپيوتر با سرمايه ارتش آمريكا طراحي شد. وزن اين كامپيوتر 30 تن و ابعاد آن 30*50 فوت بود. اين كامپيتر براي محاسبه جدول پرتابه ها، پيشگويي وضع آب و هوا و محاسبات انرژي اتمي به كار ميرفت.
در كامپيوتر هاي اوليه از لامپهاي خلاء بعنوان عنصر الكترونيك پايه استفاده ميكردند. در اين ماشين 19000 لامپ خلاء استفاده شده بود و براي انرژي مصرفي لامپ ها و همچنين دستگاههاي تهويه و خنك كننده ماشين حدود Kw 130 انرژي الكتريكي مصرف ميشد. اين ماشين ها داراي حجم زيادي بودند و سطحي را معادل 9015 متر مربع اشغال ميكردند. اين كامپيوترها به كامپيوترهاي نسل اول معروف شدند. پيشرفت تكنولوژي در طراحي و ساخت اجزاؤ الكترونيكي باعث ايجاد نسل جديدي از كامپيوتربه نام كامپيوترهاي نسل دوم شد. كه به ميزان قابل توجهي كوچكتر و ارزانتر از نسل قبلي بودند.دراين نسل از كامپيترها ترانزيستور به بازار ارائه شده و آنها را در كامپيترهاي اين دوره به كار بردند. همچنين از حلقه هاي كوچك مغناطيسي(Magnetic Core) به عنوان حافظهدر اين ماشين ها استفاده شد.
بعد از كامپيترهاي نسل دوم با پيشرفت الكترونيك و ديجيتال، كامپيوترهاي جديد و عمدتا با مزايايي از قبيل حجم كوچكتر، سرعت پردازش بالا، حجم ذخيره اطلاعات بيشتر و ارزان قيمت به بازار ارائه شود.
كامپيوترهاي امروزي با بكارگيري ريزپردازنده (Microprocessor) به كامپيوترهاي نسل چهارم معروفند. البته نسل هاي جديد ديگر كامپيوترها نيز به بازار ارائه ميشود. (ماشينهاي هوشمند و رباتها)
در كامپيوترهاي امروزي سرعت پردازش بسيار بالا، حجم اجزاء سخت افزاري بسيار كوچك، حجم حافظه بالا و غيره آنها را از نسلهاي ديگر متمايز ميسازد.
در حالت كلي كامپيوتر از دو جزء اصلي سخت افزار (Hardware)و نرم افزار(Software) تشكيل ميشود. منظور از سخت افزار، بخش فيزيكي و اجزاء الكترونيكي كامپيوتر ميباشد. كاربر(User) براي استفاده از كامپيوتر نياز به يك رابط به نام نرم افزار دارد، لذا نرم افزار رابط بين كاربر و سخت افزار ميباشد و بدون آن نميتوان از كامپيوتر استفاده كرد.
برگرفته از كتاب مباني كامپيتر:جعفر تنها و مهدي يوسف خاني
مقدمه ای بر پیدایش کامپیوتر 1
بشر از ديرباز دنبال ابزاري مي گشت كه بتواند محاسبات روزمره خود را با آن انجام دهد، بخصوص از وقتي كه تجارت گسترده بين كشورها مطرح شد نياز به ابزاري براي انجام محاسبات و ذخيره اطلاعات بيشتر احساس شد. اين مسئله در مسائل ديگر نيز مطرح بود. (در جنبه هاي فني، علمي و غيره ) لذا بشر اولين بار از چرتكه براي انجام محاسبات خود استفاده كرد و بعدها ماشيني به نام كامپيوتر (Computer) پا به عرصه نهاد و توانست رضايت بشر را در انجام محاسبات و ذخيره اطلاعات جلب نمايد. از سال 1940 تاكنون كامپيوترها به شكل عجيبي شيوه زندگي و كار مارا تغيير داده اند. امروزه تقريباً ميتوان گفت زندگي بدون استفاده از كامپيوتر امكانپذير نيست. امروزه فيش هاي حقوقي، صورتحساب ها، انواع گزارشات، انواع نمودارها، تهيه بليط هاي هواپيماها و قطارها و غيره نياز به كامپيوتر را بيش از پيش روشن تر ميسازد. كاميوترها همچنين در انجام اعمال بانكي، خريدهاي روزمره، نوشتن كتابها و بسياري از اعمال روزمره بشركمك ميكنند. گرچه در اذهان عمومي خلاف اين موضوع جاري است، اما كامپيتر نميتواند مانند بشر استدلال كند، در واقع كامپيوترماشيني است كه محاسبات را با سرعت بالا و دقتي زياد انجام مي دهد.
براي انجام كارهاي مفيد با كامپيوتر بايد برنامه اي براي آن نوشته شود. برنامه به مجموعه اي از دستورالعملها گفته مي شود كه هدف خاصي را دنبال ميكنند. برنامه ها معمولا تحت يك زبان برنامه نويسي خاص نظير پاسكال نوشته ميشوند.
برگرفته از كتاب مباني كامپيتر:جعفر تنها و مهدي يوسف خاني
در آخرين روز ترم پاياني دانشگاه، استاد به زحمت جعبه سنگيني را داخل کلاس درس آورد. وقتي که کلاس رسميت پيدا کرد، استاد يک ليوان بزرگ شيشه اي از جعبه بيرون آورد و روي ميز گذاشت. سپس چند قلوه سنگ از درون جعبه برداشت و آنها را داخل ليوان انداخت. آنگاه از دانشجويان که با تعجب به او نگاه مي کردند،
پرسيد: آيا ليوان پر شده است؟ همه گفتند: بله، پر شده.
استاد مقداري سنگ ريزه را از جعبه برداشت و آن ها را روي قلوه سنگ هاي داخل ليوان ريخت. بعد ليوان را کمي تکان داد تا ريگ ها به درون فضاهاي خالي بين قلوه سنگ ها بلغزند. سپس از دانشجويان پرسيد:
آيا ليوان پر شده است؟ همگي پاسخ دادند: بله، پر شده!
استاد دوباره دست به جعبه برد و چند مشت شن را برداشت و داخل ليوان ريخت. ذرات شن به راحتي فضاهاي کوچک بين قلوه سنگها و ريگ ها را پر کردند. استاد يک بار ديگر از دانشجويان پرسيد: آيا ليوان پر شده است ؟دانشجويان همصدا جواب دادند: بله، پر شده!
استاد از داخل جعبه يک بطري آب را برداشت و آن را درون ليوان خالي کرد. آب تمام فضاهاي کوچک بين ذرات شن را هم پر کرد. اين بار قبل از اينکه استاد سوالي بکند دانشجويان با خنده فرياد زدند: بله، پر شده!
بعد از آن که خنده ها تمام شد، استاد گفت: اين ليوان مانند شيشه عمر شماست و آن قلوه سنگها هم چيزهاي مهم زندگي شما مثل سلامتي، خانواده، فرزندان و دوستانتان هستند. چيزهايي که اگر هر چيز ديگري را از دست داديد و فقط اين ها برايتان باقي ماندند، هنوز هم زندگي شما پر است.
استاد نگاهي به دانشجويان انداخت و ادامه داد:ريگ ها هم چيزهاي ديگري هستند که در زندگي مهمند، مثل شغل، ثروت، خانه. و ذرات شن هم چيزهاي کوچک و بي اهميت زندگي هستند. اگر شما ابتدا ذرات شن را داخل ليوان بريزيد، ديگر جايي براي سنگ ها و ريگ ها باقي نمي ماند. اين وضعيت در مورد زندگي شما هم صدق مي کند.
در زندگي حواستان را به چيزهايي معطوف کنيد که واقعاً اهميت دارند، همسرتان را براي شام به رستوران ببـريد، با فرزندانتـان بازي کنيد و به دوستان خود سر بزنيد. براي نظافت خانه يا تعميـر خرابي هاي کوچک هميشه وقت هست. ابتدا به قلوه سنگهاي زندگيتان برسيد، بقيه چيزها حکم ذرات شن را دارند.
دنیا هیچ ارزشی برای عزت نفس شما قایل نیست. در این دنیا از شما انتظار میرود قبل از اینکه نسبت به خودتان احساس خوبی داشته باشید کار مثبتی انجام دهید.