Delivery of core programming principles to novices is a challenging task and many introductory programming languages and platforms have been designed to support this process. Educational programming languages generally focus on alleviating the syntax overhead enforced on novice learners by designing languages with simple and concise keywords. Furthermore, only the most basic programming concepts and principles are incorporated and many languages follow unique methods to provide more simplified learning environments. However, considering the way programs are authored using these platforms, two common contrasting approaches to program representation are identified as text-based and block-based representations. Additionally, a hybrid approach of dual-modality interfaces, which combines the best of both techniques has gained traction as a current trend in the development of educational programming platforms. However, despite these extensive features, not all introductory programming languages can cater to the exact requirements of novice learners and a dearth of comprehensive studies and literature reviews have been conducted to investigate this context. This paper explores and presents a comprehensive review of how different elements of educational programming languages and platforms contribute towards learning by novices under the Technology Acceptance Model (TAM). The review is conducted under two main constructs of TAM as (1) Perceived Usefulness (PU) and (2) Perceived Ease of Use (PEOU) and external factors regarding the programming environment, language design, included programming concepts and supporting features such as the target audience group, language extensibility, and availability of learning materials are thoroughly investigated considering the typical behavioral patterns of novices concerning computer programming education.