This course is designed to equip Computer Engineering students with fundamental knowledge and skills in data structures and algorithms that are essential in problem-solving. The course explores concepts including arrays, linked lists, stacks, queues, trees, hash tables, and graphs. Various types of algorithms, such as sorting, searching, and graph algorithms, are also covered.
The course emphasizes understanding the principles of selecting appropriate data structures and designing efficient algorithms to solve real-world problems. Students will gain hands-on experience in designing, writing, and debugging programs, and will learn to analyze the time and space efficiency of algorithms.
Course Outline:
Week 1: Review on Lists
- List: Introduction, properties, and methods
- List Functions: Usage and implementation
- List Comprehension: Understanding and creating list comprehensions
- Tuple: Introduction, properties, and methods
- Set: Introduction, properties, and methods
Week 2: Review of Dictionaries
- Dictionary: Introduction, properties, and methods
Week 3: Functions
- Function Creation and Usage
- Understanding Actual vs. Formal Parameters
- The
return
Keyword in Functions - Functions With No Parameters and Return Values
- Functions With No Parameters but With Return Values
- Functions With Parameters and No Return Values
- Functions With Parameters and Return Values
- Understanding Local vs. Global Variables
- Recursive Functions
Week 4: Linked Lists and Stacks
- Understanding Nodes
- Introduction to Linked Lists
- Introduction to Stacks and their operations
Week 5: Queues and Trees
- Queue: Introduction and operations
- Understanding Heap and its operations
- Priority Queue: Introduction and operations
- Tree: Introduction and operations
- Binary Search Tree Operations
- Binary Tree Traversal
Week 6: Advanced Array Sorting Algorithms
- LSD Radix Sort: Introduction and implementation
- MSD Radix Sort: Introduction and implementation
- Counting Sort: Introduction and implementation
- Merge Sort: Introduction and implementation
Examinations:
- Midterm Examination: End of Week 3
- Final Examination: End of Week 6
Assessment:
- Assignments: 20%
- Midterm Examination: 30%
- Final Examination: 40%
- Class Participation: 10%
Academic Integrity: All students are expected to maintain high standards of honesty and integrity in their academic work. Plagiarism and other forms of academic dishonesty will not be tolerated and may lead to severe penalties.
Assessment:
- Assignments: 20%
- Midterm Exam: 30%
- Final Exam: 40%
- Class Participation: 10%
Academic Integrity: All students are expected to maintain high standards of honesty and integrity in their academic work. Plagiarism and other forms of academic dishonesty will not be tolerated and may lead to severe penalties.