Objective: The Computer-Supported Collaborative Learning (CSCL) approach integrates artificial intelligence (AI) to enhance the learning process through collaboration and information and communication technologies (ICTs). In this sense, innovative and effective strategies could be designed for learning computer programming. This paper presents a systematic mapping study from 2009 to 2021, which shows how the integration of CSCL and AI supports the learning process in programming courses. Methodology: This study was conducted by reviewing data from different bibliographic sources such as Scopus, Web of Science (WoS), ScienceDirect, and repositories of the GitHub platform. It employs a quantitative methodological approach, where the results are represented through technological maps that show the following aspects: i) the programming languages used for CSCL and AI software development; ii) CSCL software technology and the evolution of AI; and iii) the ACM classifications, research topics, artificial intelligence techniques, and CSCL strategies. Results: The results of this research help to understand the benefits and challenges of using the CSCL and AI approach for learning computer programming, identifying some strategies and tools to improve the process in programming courses (e.g., the implementation of the CSCL approach strategies used to form groups, others to evaluate, and others to provide feedback); as well as to control the process and measure student results, using virtual judges for automatic code evaluation, profile identification, code analysis, teacher simulation, active learning activities, and interactive environments, among others. However, for each process, there are still open research questions. Conclusions: This work discusses the integration of CSCL and AI to enhance learning in programming courses and how it supports students' education process. No model integrates the CSCL approach with AI techniques, which allows implementing learning activities and, at the same time, observing and analyzing the evolution of the system and how its users (students) improve their learning skills with regard to programming. In addition, the different tools found in this paper could be explored by professors and institutions, or new technologies could be developed from them.