INF1004Winter 2024Algorithms
← Back to university path
Data Structures and Algorithms
Detailed view of the course, studied concepts, technologies used, and major academic work associated with it.
Code
INF1004
Session
Winter 2024
Domain
Algorithms
Overview
Core course on organizing, manipulating, and searching data using classical data structures and their associated algorithms. The course helped me learn how to choose the right structure for a given problem, compare algorithmic approaches, and analyze their efficiency in terms of time and memory.
Technologies used
JavaEclipseStructures de donnéesAlgorithmiqueAnalyse de complexité
Key concepts covered
- Review of Java and object-oriented programming fundamentals
- Encapsulation, inheritance, polymorphism, and composition
- Time and space complexity analysis
- Big-O notation: best case, average case, worst case
- Arrays and related operations
- Stacks and queues
- Recursion and comparison with iteration
- Simple sorting algorithms: bubble, selection, insertion
- Advanced sorting algorithms: quicksort, merge sort, Shell sort
- Linked lists: singly, doubly, circular, and sorted
- Abstract data types and iterators
- Binary trees and binary search trees
- Heaps
- Hash tables
- Hash functions and collision handling strategies
- Choosing the right data structure and algorithm for a given problem
Coursework and evaluated components
- Assignment 1 on core concepts and algorithm analysis
- Assignment 2 on data structures and associated algorithms
- Java implementations in Eclipse
- Midterm exam
- Final exam