P. Blanchfield, C. Isaacs
A large proportion of university computer science related undergraduate programmes use Python as their introductory language of choice. A major reason for this is that Python is an interpreted language. This means that environments to use to develop programs are available for a wide variety of operating systems. Another reason is that many new developments in AI have initially been made using Python. As a result, it becomes valuable for all students to have some experience with the language. However, in the UK most university entrance requirements in computer science departments do not specify computer science qualifications. A large proportion will require mathematics and two other subjects at A-Level and computer science is only one of the acceptable options for another subject. As a result, in the UK in particular but also in other countries, first-year undergraduate students will have a wide background knowledge of Python, ranging from a significant proficiency to none. There is also a recognised problem of students using available AI tools to generate their solution to projects they are asked to produce, thus undermining their learning process. Another issue that comes into play is that few of those with a lot of experience of Python have had sufficient experience in program planning. This situation has led to significant issues in student attitudes to the first-year programming module at Nottingham Trent University. Those without programming experience can struggle if it is introduced at a level that would motivate those with programming experience. The first step in meeting this was to require the use of a repository system for the development process. This allowed students to demonstrate their planning and testing skills. Despite a requirement to engage with this process many students still developed code that contained varying levels of code inefficiency and lack of clarity. As a new initiative an AI-Driven Code Review System has been developed that will be used as a supporting task in the new year. This paper describes the processes in place already and the way in which the new tool will improve understanding of such things as code complexity. Users with varying levels of experience in programming in Python were chosen for the testing of the tool. The test subjects were required to submit to the system a working version of their own solution to a problem. The tool then assessed their initial code for errors and offered an improved version. They were asked to assess the value of the feedback given by the tool and the reshaping of their code. These tests indicate that beginner programmers would learn from the process and users with more experience would also be able to gain improvements in their understanding. These results encourage the use of the tool in not only helping users refine their code but also learning the planning process.
Keywords: Programming, Python, Code Complexity tool, AI-Driven.