ELE 3795 Data Structures and Algorithms
ELE 3795 Data Structures and Algorithms
Algorithms are everywhere in modern business applications, powering, among others, machine learning, online search engines, social media recommendations, supply chain optimization, and algorithmic trading. Behind these complex systems are foundational ways of storing and representing data, along with algorithms that efficiently search, process, and extract insights from that data.
In this course, students will learn to analyze, implement, and apply these foundational algorithms and data structures. By mastering these building blocks—such as sorting algorithms, graph algorithms, and data structures like trees and hash tables—students will be equipped with the essential knowledge to design complex algorithms that solve the real-world challenges. Beyond learning to use these building blocks, students will develop algorithmic thinking and principles that can be applied broadly to solve complex, practical problems across a variety of business contexts
Upon successful completion of this course, students will be able to:
- Explain some of fundamental algorithmic problems when dealing with sorting, searching, working with graphs and strings.
- Explain the structure and purpose of the common data structures such as arrays, lists, queues, stacks, trees and graphs.
- Explain the classical algorithms for sorting and searching, and those addressing the underlying computational challenges surrounding applications using graphs and strings.
Upon successful completion of this course, students will be able to:
- Describe an algorithm in an accurate, concise and unambiguous way.
- Analyze the efficiency of the algorithms in terms of running time and memory usage
- Use both self-developed and standardized algorithms and data structures to solve complex and practical problems
Upon successful completion of this course, students will be able to:
- Recognize general algorithm paradigm such as recursion, divide-and-conquer and greedy strategies
- Strengthen analytical and logical thinking
- Algorithmic toolbox: Algorithmic thinking, pseudo-code, time and space complexity
- Basic data structures: Arrays, lists, stacks, queues
- Sorting algorithms
- Some data structures for efficient searching (binary search trees and hash tables)
- Graph types and graph representations
- Graph algorithms: BFS, DFS, Dijkstra
- Search, manipulation and compression of strings
The course consists of 30 hours of synchronous classroom instruction and 15 hours of asynchronous learning. Asynchronous learning activities include exercises, quizzes, and readings.
Higher Education Entrance Qualification
Disclaimer
Deviations in teaching and exams may occur if external conditions or unforeseen events call for this.
- Students should have a working proficiency in Python (acquired through a course or self-study.)
- Students should have foundational knowledge in mathematics.
Assessments |
---|
Exam category: Submission Form of assessment: Submission other than PDF Exam/hand-in semester: First Semester Weight: 30 Grouping: Group (1 - 3) Duration: 3 Week(s) Comment: Mid-term Exam code: ELE 37951 Grading scale: ECTS Resit: Examination when next scheduled course |
Exam category: Submission Form of assessment: Submission other than PDF Exam/hand-in semester: First Semester Weight: 70 Grouping: Individual Duration: 5 Hour(s) Exam code: ELE 37952 Grading scale: ECTS Resit: Examination when next scheduled course |
All exams must be passed to get a grade in this course.
Activity | Duration | Comment |
---|---|---|
Teaching | 30 Hour(s) | |
Individual problem solving | 15 Hour(s) | |
Feedback activities and counselling | 15 Hour(s) | |
Student's own work with learning resources | 80 Hour(s) | |
Examination | 60 Hour(s) |
A course of 1 ECTS credit corresponds to a workload of 26-30 hours. Therefore a course of 7,5 ECTS credit corresponds to a workload of at least 200 hours.