The Challenges of Teaching and Learning Software Programming to Novice Students

The Challenges of Teaching and Learning Software Programming to Novice Students

Seyed Reza Shahamiri (Manukau Institute of Technology, New Zealand)
DOI: 10.4018/978-1-5225-7598-6.ch099
OnDemand PDF Download:
No Current Special Offers


As software applications play a vital role in our daily lives, there is a need to have more skilled programmers to create such software products. There are various emerging disciplines like internet of things, driver-less cars, data science, software-defined networks, etc. that demand more programmers in the near future; hence, a more promising carrier for software developers is expected. Nevertheless, we have seen a low success rate in programming classes where some students lose interest in learning the required skills as they find programming a software a very challenging task; it has been reported that the fail rate of first programming papers in university computer science programs can be up to 60%. This chapter looks at some of the issues in regards to teaching and learning software programming and the nature of programming that may negatively influence the students' attention. Remedies to tackle the issues are also provided emphasizing on blended delivery using the technologies to facilitate the learning.
Chapter Preview


Software Engineering is an engineering discipline that involves with all aspect of software development that applies engineering approaches in order to deliver high quality software products (Pressman, 2005). One of the important stages of software production is coding in which software blueprints are realized via a programming language; a programming language is a language that is understandable for computers (Sommervile, 2007). Table 1 shows the general phases of software development. Coding and programming language skills are required from phase four but knowledge and understanding of programming language is very helpful in previous phases in order to successfully complete a software project.

Table 1.
Generic software development life cycle phases
1PlanningThe planning phase is the fundamental process of understanding why an information system should be built and determining how the project team will go about building it.
2AnalysisThe analysis phase answers the questions of who will use the system, what the system will do, and where and when it will be used.
3DesignBased on the user requirements, planning and the detailed analysis, the new system must be designed i.e. a blueprint of the system is created by designing the technical architecture.
4ImplementationActually implementing the designed system; writing software programs using software languages.
5TestingChecking whether the implemented software works according to specified requirements; fixing bugs/errors.
6MaintenanceTo ensure that the implemented system is properly functioning as per the requirements.

Complete Chapter List

Search this Book: