وی در [[ملایر]] متولد شد و دوره ابتدایی و راهنمایی را در آنجا گذراند سپس به تهران رفت و دوره دبیرستان را در مدرسه علوی تهران گذراند. کارشناسی خود را در سال [[۱۳۵۴]] از [[دانشکده مهندسی برق دانشگاه صنعتی شریف|دانشکدهٔ مهندسی برق دانشگاه صنعتی شریف]] و کارشناسی ارشد خود را در سال [[۱۳۵۶]] از دانشکدهٔ برق و [[علوم کامپیوتر]] [[دانشگاه برکلی]] در [[کالیفرنیا]] اخذ کرد. در سال ۱۳۵۸ به عنوان [[مربی]] در [[دانشکده علوم ریاضی دانشگاه صنعتی شریف|دانشکدهٔ ریاضی و علوم کامپیوتر دانشگاه صنعتی شریف]] استخدام شد. در سال ۱۳۶۳ جهت ادامهٔ تحصیل به [[آمریکا]] رفت و در سال ۱۳۶۸ دکتری خود را از دانشکدهٔ علوم کامپیوتر [[دانشگاه ایالتی پنسیلوانیا]] گرفت. همان سال به ایران برگشت و به عنوان [[استادیار]] [[دانشکده مهندسی کامپیوتر دانشگاه صنعتی شریف|دانشکدهٔ تازه تأسیس مهندسی کامپیوتر دانشگاه صنعتی شریف]] کار خود را دنبال کرد و سمتهایی چون ریاست دانشکده، معاونت تحصیلات تکمیلی و مدیر گروه نرمافزار دانشکده را عهدهدار بود. او در سال ۱۳۷۹ به سمت [[دانشیار|دانشیاری]] و در سال ۱۳۸۴ به مرتبه [[استاد|استادی]] در این دانشکده ارتقاء یافت و اکنون نیز در این دانشکده تدریس میکند.