Skip navigation.


University of Guyana
Faculty of Natural Sciences, Department of Computer Science
CSI221 -Introduction to Data Structures
Written by: Max Baird, course lecturer

Course Description

The course will introduce students to the design of algorithms and the analysis of their efficiency in terms of time consumption, storage requirements and code complexity. Algorithms for a variety of purposes will be considered, concentrating on those for performing operations on data sets such as searching and sorting. Data structures that support these operations will be discussed, along with common applications of their practical use in primary and secondary storage.
The C programming language will be used for the course. The course will help students to improve their C programming skills. Some new programming techniques will be introduced and good programming practice applicable to any language will be emphasized throughout the course.


Examination: 60%,
Course Work: Two Tests: 20%, Two Assignments 10%, Project 10%
Official Course Outline

Lecture One

1. Records
2. File of records
3. Recursion

Lecture Two
4. Dynamic variables, pointers
5. Creation and disposal of pointers
6. Singly linked linear lists

Lecture Three
7. Insertion and deletion with respect to singly linked linear lists
8. Doubly linked linear lists
9. Insertion and deletion with respect to doubly li11ked linear lists

Lecture Four
10. Circular lists
11. Types aI1d characteristics of data structures
12. Binary trees

Test One

Lecture Five
13. Methods of traversal
14. Reverse Polish notation
15. Stacks

Lecture Six
16. Push and pop operations.
17. Using a stack to convert from infix to postfix
18. Using a stack to evaluate a postfix expression

Lecture Seven
19. Queues. Linear queues
20. Insertion and removal from linear queues
21. Circular queues

Lecture Eight
22. Insertion and removal from circular queues
23. Queues. Overview
24. Priority queues. Overview

Test Two

Lecture Nine
25. Sorting techniques
26. Bubble sort
27. Quick sort

Lecture Ten
28. Tree sort
29. Other sorting algorithms
30. Big '0' notation

Lecture Eleven
31. Efficiency of sorting algorithms
32. Searching techniques
33. Comparison of sorting and searching algorithms

34. Tree search
35. Sequential search
36. Other searching algorithms
37. Hashing
38. Analysis of sorting and searching algorithn1s with respect to time consumption
39. Insertion and deletion with respect to binary trees

Final Exam

Syndicate content