카네기멜런 조교수가 권장하는 "모든 개발자들이 해보면 좋은 프로젝트"
텍스트 에디터
- 구현에 사용되는 자료구조 (gap buffer, piece table 등)
- undo, redo 를 사용하는 메멘토 패턴
2d game
- 상태머신 관리
- 컴퓨터 주변기기를 제어하는 방법
컴파일러
- lexical parsing
- syntatic parsing
- code generation
작은 운영체제
- 스케쥴링
- 부트로딩
- 메모리관리 및 페이징
- 파일시스템
스프레드시트
- directed graph (주로 topological sort)
- reactive programming paradigm
비디오게임 콘솔 에뮬레이터
- 컴파일러, 운영체제, 게임엔진 등등의 챌린지를 한번에 짬뽕
그 외에도 데이터베이스 직접 만들기, 그림판 직접 만들기, 터미널 유틸리티 직접 만들기