Lecture | Title | Date | Time | Room |
---|---|---|---|---|
1 | Introduction, Growth of Functions | 12h30-16h | B2-109 | |
2 | Representing and Manipulating Numbers | 8h15-12h | B2-109 | |
3 | Recurrences | 12h30-16h | B2-109 | |
4 | Probabilistic Analysis and Randomized Algorithms |
8h15-12h | B2-109 | |
5 | Extra Material, Sorting | 12h30-16h | B2-109 | |
6 | Extra Material, Sorting | 8h15-12h | B2-109 | |
7 | Sorting in Linear Time Data Structures |
12h30-16h | B2-109 | |
8 | Extra Material, Hashing and Hash Tables | 8h15-12h | B2-109 | |
9 | Binary Search Trees, Red-Black Trees | 12h30-16h | B2-109 | |
10 | Red-Black Trees, String
Matching, Solutions to implementation Exercises |
8h15-12h | B2-109 |
Since this course is supposed to help you for your projects, you are highly encouraged to ask for specific subjects you want to learn about, as long as they are in the scope of this course :). Concerning the solutions to the exercises: You are supposed to find them and I will help you during the exercise sessions. Only some solutions will be provided on this web page.
Abstract: Basic introduction to algorithm design, correctness of algorithms, analysis of algorithms, and asymptotic behaviours. Note: I will come back to chapter 2 when I treat sorting to avoid being redundant.
Reading: Chapters 1 and 3.
Material: lecture slides.
Exercises: pdf.
Suggested solutions: pdf.
Abstract: Binary representation of integers and floats, implementation of basic operations (in processors), basic arithmetics on integers and some applications, limits of the representation (integers and floats), and optimization issues.
Reading: A chapter related to binary representation in any reasonable architecture book. The choosen course book for architecture, or one of the additional listed books is fine. Ask at the library or borrow one from me.
Material: Slides pdf.
Exercises: Exercises of lecture 1: We make the deal that you try exercises of section 4 and then you check if you understand the solution of section 5. Don't cheat. Then you do these exercises on numbers: pdf.
Abstract: Introduction to recurrences and some techniques to solve them such as the substitution method, the recursion tree method, and the master method.
Reading: Chapter 4 and read again section 3.2.
Material: slides.
Exercises: Finish the exercises on numbers from last time.
Solution: Suggested solution to the RGB exercise rgb.c.
Abstract: Introduction to counting, probabilities, and randomized algorithms.
Reading: Chapter 5 and appendices A and C.
Material: slides.
Exercises: (on recurrences, previous lecture)
Solution: suggested solution.
Abstract: Some extra material on computing polynomials and sorting algorithms (bubble sort, selection sort, insertion sort, merge sort, quicksort).
Reading: Chapters 2 and 7.
Material: polynomials and sorting slides.
Exercises:
Abstract: Heapsort, powering numbers, and Fibonacci revisited.
Reading: Chapter 6.
Material: powering numbers and sorting (cont.) slides.
Exercises (many but short and simple):
Solution: suggested solution for 7.2-b.
Abstract: Previous sorting algorithms were comparison sorts, here we study other kinds of sorts (counting, radix, and bucket sorts), and basic dynamic data structures such as stacks, queues, and linked lists.
Reading: Chapters 8 and 10.
Material: sorting in linear time and data structures slides.
Exercises:
Abstract: Introduction to hash functions and hash tables. The problem is to store or retrieve data in a dictionary data structure implemented efficiently as a hash table. Presentation of suggested solutions to the implementation of the different sorting algorithms. Extra material: the linux scheduling algorithm in O(1).
Reading: Chapter 11.
Material: hashing and hash tables and linux O(1) scheduler slides.
Exercises:
Solution:
suggestion for
8.1-2.
Suggested implementations for the
Abstract: Introduction to binary search trees that can be used as dictionary or priority queues, and a particular search tree structure (red-black tree) that has the property to keep the tree balanced. Also extra material on searching/exploring state-spaces.
Reading: Chapters 12 and 13. Sections 22.1, 22.2, 22.3 for those interesting in searching. Wikipedia on red-black trees.
Material: (general) searching/exploring, binary search, binary search trees, and red-black trees slides.
Exercises:
Abstract: Extra material on findind shortest paths, string matching, finish red-black trees, presentation of solutions for the previous implementation exercises (if time left).
Reading: Wikipedia page on string searching and Chapter 32.
Material: Previous slides on red-black trees, shortest-paths slides, and string matching slides.
Exercises: