The Challenges of Teaching and Learning Software Programming to Novice Students

The Challenges of Teaching and Learning Software Programming to Novice Students

DOI: 10.4018/978-1-5225-2255-3.ch643
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

As software applications play a vital role in our daily life, 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 to learn 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 programmes can be up to 60 percent. 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
Top

Introduction

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
NoNameDescription
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.

Key Terms in this Chapter

Software Engineering: An engineering discipline that involves with all aspect of software development that applies engineering approaches in order to deliver high quality software products.

Software: A part of a computer-based system that provides instructions for hardware.

Blended Delivery: Deals with the use of digital and online media in teaching and learning that helps learners to involve more senses during the learning process and also give them tools to help them with their studies.

Introductory to Programming: The initial phase of teaching and learning software programming in which the concentration is on coding basics, problem solving basics, programing language syntax, and primary computer language tools and concept such as variables, loops, decision making, logical and arithmetic operators, etc.

Software Development Life Cycle: Generic steps of constructing software products and the life cycle of a typical software.

Integrated Development Environment: A software solution that provides a platform for software development by providing tools to help the programmers plan, organize, implement, verify, and refactor coding projects.

Programming Language: A language that is understandable for computers.

Complete Chapter List

Search this Book:
Reset