COURSE SYLLABUS
CS 250 – Data Structures, Algorithms and Programming (C++)
Lecturer: Dr. Lengwe
Venue: TBA
Lecture Times: Mon (14:00 – 16:00), Wed (11:00 – 13:00)
Course Topics
1) Review and extension of topics from C in C++
Program structure
Arrays
Structures and classes
Simple file I/O and loops
Selection revisited (complex decision structures, case
statements)
Loops revisited (other forms of loops, nested loops)
Program design techniques, debugging
One dimensional arrays and multi-dimensional arrays, Strings
Advanced file I/O
2) Simple sorting algorithms
Introduction to sorting and background
Bubble sort.
3) Complexity
Time and space complexity,
Algorithm efficiency.
4) Stacks and Queues
Implementation using arrays.
5) Linked Lists
Static and dynamic structures,
Implementation of stacks and queues using linked lists
Dynamic memory allocation and pointers
6) Recursion
Recursion definition and processes
efficiency of recursive routines, examples of recursion
7) Advanced sorting and searching algorithms
Ripple sort, quick sort, selection sort, insertion sort, shell
sort, address calculation sort, merge sort, radix sort,
comparison of methods, internal and external sorting.
Introduction, background and definitions of searching
methods: sequential search, index-sequential search,
binary search.
8) Binary trees
Definition, binary tree representations, traversal of binary
trees, tree sort, height balance, AVL trees and their use,
tree search, searching in balanced sorting.
9) Other Data Structures (Red-black trees, 2-3-4 trees, Heaps,
Hashing, Graphs)
Note: The order of the topics may be switched without prior notice.
Continuous Assessment
3 Midterm Exams (30 Marks)
Group Assignments (5 Marks)
Quizzes (5 Marks)
Total: 40 Marks
Final exam: 60 Marks
The weighting and number of midterm exams, quizzes, and Labs may change. This
allocation is only tentative.
Textbooks
Useful Tutorials
1. https://www.w3schools.com/cpp/
2. https://www.tutorialspoint.com/data_structures_algorithms/index.htm
Prescribed Text
3. Stephen Prata, C++ Primer Plus, 6th Edition, 2011,Addison-Wesley
Professional, ISBN-10: 0321776402 | ISBN-13: 978-0321776402
Recommended Text
4. Deitel & Deitel, C++ How to Program 4th Edition, 2004, Prentice
Hall, ISBN 0130384747
5. Stephens D. Ryan et.al. C++ Cookbook, O'Reilly Media,
Inc.,2005, ISBN-10: 0596007612 ISBN-13: 978-0596007614
6. Michael T. Goodrich et.al , Data Structures and Algorithms in C++,
John Wiley & Sons, ISBN: 978-0-470-38327-8
Recommended IDE
1. CodeBlocks
https://www.codeblocks.org/Geany
2. CLion
3. Eclipse C++ IDE
4. NetBeans