Most academic courses in information and communication technology (ICT) or engineering disciplines are designed to improve practical skills; however, practical skills and theoretical knowledge are equally important to achieve high academic performance. This research aims to explore how practical skills are influential in improving students' academic performance by collecting real-world data from a computer programming course in the ICT discipline. Today, computer programming has become an indispensable skill for its wide range of applications and significance across the world. In this paper, a novel framework to extract hidden features and related association rules using a real-world dataset is proposed. An unsupervised k-means clustering algorithm is applied for data clustering, and then the frequent pattern-growth algorithm is used for association rule mining. We leverage students' programming logs and academic scores as an experimental dataset. The programming logs are collected from an online judge (OJ) system, as OJs play a key role in conducting programming practices, competitions, assignments, and tests. To explore the correlation between practical (e.g., programming, logical implementations, etc.) skills and overall academic performance, the statistical features of students are analyzed and the related results are presented. A number of useful recommendations are provided for students in each cluster based on the identified hidden features. In addition, the analytical results of this paper can help teachers prepare effective lesson plans, evaluate programs with special arrangements, and identify the academic weaknesses of students. Moreover, a prototype of the proposed approach and data-driven analytical results can be applied to other practical courses in ICT or engineering disciplines.