scholarly journals Learners Programming Language a Helping System for Introductory Programming Courses

Author(s):  
Muhammad Shumail Naveed ◽  
Muhammad Sarim ◽  
Kamran Ahsan

Programming is the core of computer science and due to this momentousness a special care is taken in designing the curriculum of programming courses. A substantial work has been conducted on the definition of programming courses, yet the introductory programming courses are still facing high attrition, low retention and lack of motivation. This paper introduced a tiny pre-programming language called LPL (Learners Programming Language) as a ZPL (Zeroth Programming Language) to illuminate novice students about elementary concepts of introductory programming before introducing the first imperative programming course. The overall objective and design philosophy of LPL is based on a hypothesis that the soft introduction of a simple and paradigm specific textual programming can increase the motivation level of novice students and reduce the congenital complexities and hardness of the first programming course and eventually improve the retention rate and may be fruitful in reducing the dropout/failure level. LPL also generates the equivalent high level programs from user source program and eventually very fruitful in understanding the syntax of introductory programming languages. To overcome the inherent complexities of unusual and rigid syntax of introductory programming languages, the LPL provide elementary programming concepts in the form of algorithmic and plain natural language based computational statements. The initial results obtained after the introduction of LPL are very encouraging in motivating novice students and improving the retention rate.

10.28945/2464 ◽  
2002 ◽  
Author(s):  
Michael De Raadt ◽  
Richard Watson ◽  
Mark Toleman

Deciding what to teach novice programmers about programming and, in particular, which programming language to teach to novice programmers, and how to teach it, is a common topic for debate within universities. Should an industry relevant programming language be taught, or should a language designed for teaching novices be used? In order to design tools and methodologies for the teaching of novice programmers it is important to uncover what is being taught, and in turn, what will be taught in the future. A census of introductory programming courses administered within all Australian universities has been undertaken. The census aimed to reveal not only what computer programming languages are being taught, but also how they are being taught. From the results of this census two key factors emerged: perceived industry pressure for graduates with certain language skills versus academic training for generic programming skills.


Author(s):  
Liguo Yu

This paper describes the teaching methods and teaching experiences of an instructor who has been teaching computer science freshmen for more than ten years. Problem-based learning has been used in introductory programming courses to enhance the quality of learning. The common problem in introductory programming courses is that instructors quite often focus mainly on programming language syntax and usage but ignore the real world applications of these language features. Accordingly, students are likely to find out that it is difficult to apply their programming skills on solving complex problems in their high level courses. Through introducing problem-based learning in introductory programming courses, students not only could obtain experience of dealing with complex problems, but also could practice other soft skills, such as team working skills, which could better prepare them for junior and senior level coursework and capstone projects. In addition, other philosophy issues related to teaching introductory courses are discussed and tentative solutions are presented.


10.28945/3097 ◽  
2007 ◽  
Author(s):  
Uolevi Nikula ◽  
Jorma Sajaniemi ◽  
Matti Tedre ◽  
Stuart Wray

Students often find that learning to program is hard. Introductory programming courses have high drop-out rates and students do not learn to program well. This paper presents experiences from three educational institutions where introductory programming courses were improved by adopting Python as the first programming language and roles of variables as an aid in understanding program behavior. As a result of these changes, students were able to write working code from the very beginning, they found programming easy and interesting, they passed exams with good grades, and drop-out rates were low. Students became interested in programming and some of them even changed their personal study plan to include more of programming and computer science.


Author(s):  
Muhammad Shumail Naveed

Computer programming is the heart of computer science and C++ and Java are the most popular and widely used languages. The performance of C++ and Java programming languages has been benchmarked using robotics, numerical, genetic and evolutionary algorithms, but not using introductory programming algorithms. This article examined C++ and Java by analysing the implementation of novice algorithms of introductory programming courses by evaluating the difficulty, effort, time and delivered bugs of programs with Halstead software metrics. The study identified that Java is more difficult than C++ in the implementation of selected algorithms. Similarly, the efforts required to translate the novice algorithms in Java are higher than C++. The time involved in translating selected algorithms in C++ is lower than Java. Similarly, the number of delivered bugs in C++ is lower than Java. The study suggests that C++ is more suitable than Java for the implementation of introductory programming algorithms and reasonably more suitable for introductory programming courses. The study emboldens the programming linguists to do further analyses in contemplating other programming languages with Halstead software metrics and other kinds of algorithms.


2021 ◽  
Author(s):  
Lucas Mendonça de Souza ◽  
Igor Moreira Felix ◽  
Bernardo Martins Ferreira ◽  
Anarosa Alves Franco Brandão ◽  
Leônidas de Oliveira Brandão

The outbreak of the COVID-19 pandemic caused a surge in enrollments in online courses. Consequently, this boost in numbers of students affected teachers ability to evaluate exercises and resolve doubts. In this context, tools designed to evaluate and provide feedback on code solutions can be used in programming courses to reduce teachers workload. Nonetheless, even with using such tools, the literature shows that learning how to program is a challenging task. Programming is complex and the programming language employed can also affect students outcomes. Thus, designing good exercises can reduce students difficulties in identifying the problem and help reduce syntax challenges. This research employs learning analytics processes on automatic evaluation tools interaction logs and code solutions to find metrics capable of identifying problematic exercises and their difficulty. In this context, an exercise is considered problematic if students have problems interpreting its description or its solution requires complex programming structures like loops, conditionals and recursion. The data comes from online introductory programming courses. Results show that the computed metrics can identify problematic exercises, as well as those that are being challenging.


Sign in / Sign up

Export Citation Format

Share Document