Data Structures and Algorithms course, University Tenaga Nasional

Description of the course

The course exposes students to the fundamental concepts of abstract data structures such as arrays, stacks, queues, linked lists, trees, graphs, sorting, and searching. It aims to enable students to choose and apply appropriate data structures and algorithms given a particular computing problem. The actual implementation of  abstract data structures uses the C++ programming language. Upon completion of the course students are able to:

  • Describe the concepts and operations of data structures and common algorithms
  • Apply the appropriate data structures and algorithms to solve computing problem
  • Develop computer programs using data structures and related algorithms

As a result of the ICT-INOV project, the course has been updated to include design thinking principles. Students are exposed to design thinking and deploy design thinking to work collaboratively and complete their group assignment that integrates emerging pedagogies and latest technology.

Description of the participants

This is a core compulsory course for Diploma in Computer Science (DCS) students from College of Computing and Informatics (CCI), Universiti Tenaga Nasional. Students are expected to complete this course in their 3rd year of studies. In the 2022 – 2023 academic year design thinking activities were implemented in both lecture and lab sessions. The course was attended by a total of 100 students.

Description of the design thinking activities

This course implemented design thinking activities aligned with learning outcomes. By using the design thinking methodology, the course project was divided into 5 main project objectives, namely empathize, define, ideate, prototype, and test as follows.

Stage 1: Empathize.

Students formed groups to work collaboratively. They were required to select which role they would like to actively assume in their respective groups based on their preferences, either a leader, programmers, or documentation writers.

Stage 2: Define.

Students were briefed on their group project. Briefing included the explanation of assessment rubrics and marks allocation to enable students to strategize their plan for computer program development. Students were encouraged to imagine what the user would do if they put themselves in user’s perspectives before developing the system based on the questions listed on the case study.

Stage 3: Ideate.

Students brainstormed in groups both on-line and in face-to-face class sessions to generate creative ideas before these ideas into algorithms in system development.

Stage 4: Prototype.

Students worked collaboratively to produce their project prototype. They transformed their algorithms into an equivalent computer program and produced a prototype documentation.

Stage 5: Test.

Students tested their computer programs and demonstrated their functionality to the class.