CSB3202 Data Structures and Algorithms

Course Unit Title

CSB3202 Data Structures and Algorithms

Side Navigation

Course Unit Description

When developing software, it is important to know how to solve problems in a computationally efficient way. Algorithms describe methods for solving problems under the constraints of the computer’s resources. Often the goal is to compute a solution as fast as possible, using as few resources as possible. To solve a problem efficiently it may be necessary to use data structures tailored for the particular problem(s) at hand. A data structure is a specific way of organizing data that supports efficient performance of the relevant operations on that data. For instance, there are data structures for organizing large numbers of records where records already present, can be quickly found and/or deleted, and new records can be inserted and found fast. 

Course Objectives
This course unit will enable students to:

  • Describe the basic data structures, algorithms and programming techniques
  • Apply the acquired techniques when solving programming / algorithm problems. 
  • Select the best algorithm and / or data structure when solving a given programming problem. 
  • Analyze the time and space required for the execution of a program, as well as the correctness of a program. 
  • Formulate a given programming task as an algorithmic problem, in order to select the best method for solving it. 
  • Combine and modify algorithms and data structures, in order to design an efficient program.

Expected Learning Outcome
On successful completion of this course unit, the students will have the ability to:

  • Describe the basic data structures, algorithms and programming techniques
  • Enable student apply the techniques from the course when solving programming/algorithm problems. 
  • Select the best algorithm and / or data structure when solving a given programming problem. 
  • Analyze time and space required for the execution of a program, as well as the correctness of a program. 
  • Formulate a given programming task as an algorithmic problem, in order to select the best method for solving it. 
  • Combine and modify algorithms and data structures, in order to design an efficient program.