This coursework for the 210CT Programming, Algorithms and Data Structures course covers a range of topics across eight weeks. Each week presents several programming challenges focusing on fundamental data structures and algorithms. Students are tasked with writing functions to shuffle arrays, count trailing zeros in factorials, find perfect squares, perform matrix operations, reverse words in a sentence, check for prime numbers, remove vowels from strings, adapt binary search, extract ascending subsequences, implement binary search tree deletion, implement TREE_SORT, design and implement unweighted and weighted graphs, and implement graph traversals (BFS, DFS) and Dijkstra's algorithm. The assignments require both pseudocode and code implementation, along with analysis of runtime complexity using Big O notation. This comprehensive coursework provides a solid foundation in algorithm design and analysis.