Data Structures and Algorithms
Course Code: CST-1121 | First Semester
Duration
15 Weeks
Lectures
3 per week × 1 hour
Language
Java
Textbooks
📚
Required Textbooks
Data Structures & Algorithms in Java, 2nd Edition
Robert Lafore
Introduction to Algorithms (CLRS)
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest & Clifford Stein
📄
Reference Books
- Data Structures and Algorithm Analysis in Java, 3rd Ed. β Mark Allen Weiss
- Object-Oriented Data Structures Using Java β Nell Dale, Daniel T. Joyce & Chip Weems
- Data Structures and Algorithms in Java, 4th Ed. β Michael T. Goodrich & Roberto Tamassia
- Data Structures and Algorithms Made Easy β Narasimha Karumanchi
Course Description
This course focuses on fundamental data structures and the algorithms used to manipulate them. Students study structures for storing and organising information β including arrays, linked lists, stacks, queues, trees, and graphs β and learn the core algorithms for creating, traversing, and modifying each structure. Sorting and searching techniques are introduced and compared analytically. The course equips students to select appropriate data structures for real-world problems and to assess algorithm performance through space and time complexity analysis.
Learning Objectives
- Introduce various techniques for representing data in the real world.
- Design and implement fundamental data structures and the algorithms that operate on them.
- Develop applications by applying data structures and algorithms to practical problems.
- Understand how asymptotic analysis β space and time complexity β is used to assess algorithm effectiveness.
Learning Outcomes
- Select appropriate data structures to develop real-world applications.
- Implement operations such as searching, insertion, deletion, and traversal on various data structures.
- Determine the efficiency of an algorithm using space and time complexity analysis.
Major Topics Covered
Arrays & Linked Lists
Stacks & Queues
Trees
Graphs
Sorting Algorithms
Searching Algorithms
Shortest Path
Complexity Analysis
Assessment Components
15%
Presentation
15%
Tutorial
15%
Assignment
15%
LMS Activities
40%
Exam
Lecture Structure: Up to 3 lectures per week, each up to 60 minutes.
Quizzes follow every lesson via LMS (Moodle). Java code examples and exercises accompany each topic.
Late submissions are not accepted.
Course Outline
| Week | Topic |
|---|---|
| Part I Data Structures | |
| Week 01 |
☕ Setup: Java SDK & IDE |
| Week 02 |
☕ Java code examples & quiz |
| Week 03 |
☕ Java code examples & quiz |
| Week 04 |
☕ Java code examples & quiz |
| Week 05 |
☕ Java code examples & quiz |
| Part II Algorithms | |
| Week 06 |
|
| Part III Sorting Algorithms | |
| Week 07 |
☕ Java code examples & quiz |
| Week 08 |
☕ Java code examples & quiz |
| Week 09 |
☕ Java code examples & quiz |
| Part IV Searching & Graph Algorithms | |
| Week 10 |
☕ Java code examples & quiz |
| Week 11 |
☕ Java code examples & quiz |
| Week 12 |
☕ Java code examples & quiz |
| Week 13 |
☕ Java code examples & quiz |
| Part V Practical & Projects | |
| Week 14 | Practical Exercises & Quiz |
| Week 15 | Group Project & Presentation |
| 🎓 Final Exam | |
