To enhance Java programming educations in schools, we have developed a Web-based Java Programming Learning Assistant System (JPLAS) that provides a variety of programming assignments to cover different learning stages. For the first stage, JPLAS offers the element fill-in-blank problem where students study the grammar and code reading through filling the blank elements, composed of reserved words, identifiers, and control symbols, in a high-quality code. Unfortunately, it has been observed that students can fill the blanks without reading the code carefully, because the choice is limited for each blank. In this paper, we propose a code completion problem as a generalization of the element fill-in-blank problem. To solve the drawback, it does not explicitly show blank locations in the code, which expects students to carefully read the code to understand the grammar and code structure. The correctness of the answer is verified through string matching of each statement with the filled elements and the corresponding correct one. Besides, to encourage students to study readable code writing, the correct statement satisfies the coding rules including the spaces. For evaluations, we generated six code completion and element fill-in-blank problems respectively, and asked ten students in two universities to solve them. Their solution results show that the code completion problem is much harder than the element fill-in-blank problem, and requires far deeper code reading and understanding of coding rules.