Software Development - Clean Code, Data Structures, and Algorithms

Readings and Resources:

Required Reading:

Lecture:

Exercise:

Tutorial:

Additional Resources

Competitive Programming Deliverables

In each exercise we will attempt a challenging algorithmic problem from the CSES Problemset: https://cses.fi/problemset/

Use this template for Rust Code: https://github.com/dominikb1888/cses_template

Class Design - Flipped Classroom

The course is taught in a Flipped Classroom style. You are required to prepare coding exercises and will be asked to present them in front of class on a random selection basis.

Exam (graded)

The Exam will be written and online. It will be a code exercise just like the ones you practice with tests provided.

Agenda

  1. Algorithms Analysis, Design and Evaluation (Chapter 2)
  2. Recursion
  3. Sequences
  4. Sets and Maps
  5. Trees
  6. Graphs
  7. Membership Structures
  8. Heaps
  9. Balanced Binary Search Trees
  10. B-Trees
  11. Heuristic Search

Deliverables

Prepare before Exercise Topic
2 Tower of Hanoi Recursion
3 Increasing Array Dynamic Arrays
4 Two Sets Sets
5    
6 Subordinates Trees
7 Counting Rooms Graphs
8 Finding Borders Membership Structures
9 Another Game Heaps
10 Balanced Binary Search Trees
11 B-Trees
12 Heuristic Search

Sessions

1. Algorithms: Analysis, Design, and Evaluation

Lecture:

In-class Exercise:

Required Reading:

Optional Reading

2. Recursion

Exercise:

3. Sequences

Interactive:

Data Structures:

Algorithms for Sorting and Ordering:

4. Maps and Sets

Algorithms:

Data Structures:

Reading:

5. Trees

Data Structure:

Algorithms

6. Graphs

7. Membership Structures

8. Heaps

9. Balanced Binary Search Trees

10. B-Trees

12. Practice and Mock Exam

13. Practice and Mock Exam

Further Reading