서울대학교 컴퓨터공학과에서 학사·석사·박사 학위를 취득하고 영국 킹스 칼리지 런던에서 방문연구원을 거쳤다. 현재 한국항공대학교 AI융합대학 인공지능전공 교수로 재직 중이다. 2013년부터 국제정보올림피아드(IOI) 한국대표단 단장·부단장을 역임하고 있다. 주요 연구 분야는 문자열 알고리즘, 알고리즘 공학이다. 이산수학, 알고리즘, 문제 해결 기법 등을 강의하고 있으며 한국항공대학교 우수강의상을 수상한 바 있다. 『컴퓨터과학을 위한 이산수학』, 『Rosen의 이산수학 (8판)』을 공동번역하고, 『운영체제』를 공동집필했으며, 『Introduction To Algorithms(4판)』을 감수했다.