Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Collect or create content and exercises about complexity #1213

Open
illicitonion opened this issue Dec 2, 2024 · 0 comments
Open

Collect or create content and exercises about complexity #1213

illicitonion opened this issue Dec 2, 2024 · 0 comments
Labels
SDC Work that belongs to the cohort / jobs programme

Comments

@illicitonion
Copy link
Member

We need to create the SDC Complexity module. This will involve finding good content we can link to, writing any content we need to fill in any gaps, and writing exercises to practice and test understanding of that content.

We have the following draft learning objectives (which we can change if we need):

Memory consumption

  • Quantify the memory used by different arrays

Big-O (but we want to be quite hand-wavy about this, and not require rigorous mathematical proofs)

  • Categorise algorithms into O(1), O(n), faster than O(n), slower than O(n) but tractable (e.g. O(n^2)), intractable (e.g. O(2^n))
  • Give practical limits to the size of inputs to O(n^2) and O(2^n) algorithms

"Expensive" operations

  • Explain what the significant/expensive operations for a particular algorithm are likely to be
  • Quantify the number of significant operations taken by a particular algorithm

Pre-computing

  • Identify a pre-computation which will improve the complexity of an algorithm

Trade-offs

  • Give examples of trading off memory for CPU

Network as a bottleneck

  • Explain limitations of needing to make network calls (e.g. from a backend to a database)

Caching

  • Identify and explain how web browsers benefit from caching
  • Demonstrate how caching can trade memory for CPU
  • Identify and explain staleness risks with caching, and the difficulty of invalidation
@illicitonion illicitonion added the SDC Work that belongs to the cohort / jobs programme label Dec 2, 2024
@github-project-automation github-project-automation bot moved this to 📋 Backlog in Curriculum Planning Dec 2, 2024
@illicitonion illicitonion added this to the SDC-1-2025 Launch milestone Dec 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
SDC Work that belongs to the cohort / jobs programme
Projects
Status: 📋 Backlog
Development

No branches or pull requests

1 participant