This work describes the algorithms used in a prototypical software system for automatic pronunciation assessment of Mandarin Chinese. The system uses Viterbi decoding to isolate each syllable and find the log probability of a given utterance based on HMM (hidden Markov models). The isolated syllables are then sent to a GMM (Gaussian mixture model) for tone recognition. Based on the log probability and the result from tone recognition, a parametric scoring function, using a neural network, is constructed to approximate the scoring results from human experts. The experimental results demonstrate the system can consistently gives scores that are close to those from human's subjective evaluation.