I. Introduction
The word ”novice”, according to the Cambridge Dictionary, refers to ”a person who is not experienced in a job or situation” Novice programming subject addressed in this paper refers to the first programming subject for a student. The student was not exposed to any programming concepts before taking this class. Novice programming subject carries the name, for example, ”Fundamentals of programming”, ”Introduction to programming”, ”Programming I”, ”Programming principles”, or ”Computer Science 1”. Some institutions use the term ”Computer Science 0” for the first programming subject [1], [2]. However, ACM and IEEE do not consider ”CS0” as part of the introductory course to computer science [3]. The Novice programming subject will be referred to as CS1 in this paper.