Practical C++ programming projects

0

AMONG the many assessments that a programming student has to go through, submitting a programming project is considered a substantial assessment. These projects, commonly known as Project Based Learning (PBL), often enhance the learning process as students get to interact in teams, learn independently, take the lead, distribute tasks and manage their time efficiently.

Creating programming projects for students is a challenging task, particularly if the projects are designed for students who are new to programming. In every programming course, the students initially learn the syntax and semantics of the language, and thereafter using that knowledge to create problem-solving programmes.

Programming projects would be difficult to carry out if students have poor code tracing skills. Giving students simple yet practical project topics to which they can relate to may encourage students to learn this skill through collaborative learning or self-study.

It gives them an idea how programming can be used outside the classroom in the real world and also serves as motivation to complete their projects using the knowledge learned from the course.

At Curtin Sarawak, Foundation Engineering students study programming for a year. The programming language chosen for the students is C++. The programming course is divided into Programming in C++ 061 in Semester 1 and Programming in C++ 062 in the second semester.

In the first semester, C++ mainly deals with non-OOP content, which consists of the structural and procedural aspects of the language, whereas in the second semester, the OOP features of the language are introduced and its benefits elucidated.

Throughout the course, which consists of lecture sessions and lab sessions, students are taught with the aid of coding examples for each topic and how best to use the programming features to solve problems. During lab sessions, students solve lab questions by writing programmes that are unsubstantial programmes involving little or no group work.

However, at the end of the semester, they have to code a project and are given at least three weeks to complete the project. The students work in groups and divide the task accordingly, mirroring the real world of code development.

When the students divide their project tasks in the group, they are told to be aware of each other’s coding and explain their contribution code to the rest of the group. This collaborative learning encourages each student to share his or her logic and thinking with another student, thus elevating the overall problem-solving, logic and programming knowledge of the group.

This is an integral part of the project as it involves a group assessment component. In addition to the actual project marking, the group assessment components include Self and Peer Assessment as well as Viva Interview, which assess individual contribution of coding to the group.

Practical projects can also generate the attention and interest of students who are not keen on learning programming but rather the end product that the coding would produce. It also shows the students the relevance and importance of learning a programming language.

Finding practical topics on programming projects requires having an idea for a programming project and then trying to simplify it in the coding process. Keeping this in mind, the points to take into consideration while creating a project are:

1.The topic and its requirements should be easy to understand. 2. The topic should be contemporary and something that the students can relate to. 3.The developed programme should have a practical use, serving as an interesting and useful tool. 4.The programme code should incorporate features that were taught during the semester as outlined in the Unit Outline.

Though attempts have been made to create and design practical projects throughout all the semesters for
the past three years, students found some projects more practical and interesting than others.

The next step would be to carry out a research study that shows the types of variables that can be used to make the project topics more interesting and replicate those variables for future projects.

Foad Motalebi is the head of Department of Foundation Engineering at Curtin Sarawak’s School of Engineering and Science.