Practical C++ programming projects

by Foad Motalebi

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 students’ learning process as they 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.


Table 1: Projects given to Programming in C++ 061 Students

Semester C++ 061 Programming Project Topic
Sem 1 2011 Created 13 Lab Exercises, for every topic of Programming in C++ 061 taught during the semester.
Sem 2 2011 Created a Windows Shortcut Programme. 
Sem 1 2012 Created a Computer Scrabble Game Programme.
Sem 2 2012 Miri City Council implemented the Low Carbon Cities Framework (LCCF). As such, students developed a Carbon Calculator Programme that helps Miri City Council to test and simulate where they can reduce green house gases (GHG) in the city by 15%.
Sem 1 2013 Created a programme that emulates a game entitled Guess The Right Word For The Picture.
Sem 2 2013 Created a Jukebox programme that plays a selection of songs based on user’s choice.

Table 2: Projects given to Programming in C++ 062 Students

Semester C++ 062 Programming Project Topic
Sem 1 2011 Created 16 Lab Exercises, for every topic of Programming in C++ 061 taught during the semester.
Sem 2 2011 Created a Periodic Table Programme.
Sem 1 2012 Created a Computer Scrabble Game Programme (coding done using OOP features).
Sem 2 2012 Created a Traffic Light Simulation programme for a busy intersection in a city.
Sem 1 2013 Created a programme for a Cineplex where the user can do the following tasks: User is shown the choice of movies being screened, user can get tickets to the show by seeing the seating arrangement and seats available on screen, user can choose his or her refreshments and user can give movie reviews.

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. He has 18 years of teaching experience and his research interests are simulation and the effect of ICT on teaching and learning of programming and mathematics. Foad can be contacted at 085-443939 ext. 4211 or by e-mail to