Algorithm Software Practice