private void theUserStep() throws IOException {
		if(null != trainingFiles) {
			BufferedReader br = null;
			for(File file:trainingFiles) {
				br = new BufferedReader(new FileReader(file));
				String fileName = file.getName();
				String line = null;
				while(null != (line = br.readLine())) {
					String[] strs = line.split(",");
					int score = Integer.valueOf(strs[1]);
					if(userCount.containsKey(strs[0])) {
						userCount.put(strs[0], userCount.get(strs[0]) + 1);
					} else {
						userCount.put(strs[0], 1);
					}
					double residue = score - overallMean - movieParam.get(fileName);
					if(userScoreResidue.containsKey(strs[0])) {
						userScoreResidue.put(strs[0], userScoreResidue.get(strs[0]) + residue);
					} else {
						userScoreResidue.put(strs[0], residue);
					}
				}
				br.close();
			}
			
			Set<String> userKeySet = userCount.keySet();
			Iterator<String> userIter = userKeySet.iterator();
			while(userIter.hasNext()) {
				String key = userIter.next();
				userParam.put(key, userScoreResidue.get(key)/(userCount.get(key) + Constant.UserAlpha));
			}
		}
	}