Skip to content

Commit 0b731c4

Browse files
authored
Merge pull request #900 from CSA-Coders-2025/TeamTeachToolkit
Team teach toolkit Graph Heuristics
2 parents f0117b3 + d0c8f51 commit 0b731c4

7 files changed

Lines changed: 644 additions & 223 deletions

File tree

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<table>
2+
<tr>
3+
<td><img src="https://www.computersciencebytes.com/wp-content/uploads/2017/01/1graph.png"></td>
4+
<td><a href="{{site.baseurl}}/heuristics/intro">Intro</a></td>
5+
<td><a href="{{site.baseurl}}/heuristics/searches">Dijkstra's and A* Algorithms</a></td>
6+
<td><a href="{{site.baseurl}}/heuristics/examples">Deep Dive</a></td>
7+
<td><a href="{{site.baseurl}}/heuristics/conclusion">Conclusion</a></td>
8+
</tr>
9+
</table>

_layouts/bathroom/scanner.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,7 @@
338338
// Remove from local storage
339339
removeUser(currentAway);
340340
console.log(currentAway, 'removed from queue');
341+
localStorage.setItem("timeout", getTime());
341342
} catch (error) {
342343
console.error("Error handling returning user:", error);
343344
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"id": "ea796469",
6+
"metadata": {},
7+
"source": [
8+
"---\n",
9+
"title: Graph Heuristics - Data Structures\n",
10+
"comments: true\n",
11+
"layout: post\n",
12+
"description: Examples of searches\n",
13+
"author: Srijan, Matthew, Trevor\n",
14+
"type: ccc\n",
15+
"nav: nav/graph-heuristics.html\n",
16+
"permalink: /heuristics/examples\n",
17+
"courses: { csa: {week: 32} }\n",
18+
"---"
19+
]
20+
}
21+
],
22+
"metadata": {
23+
"language_info": {
24+
"name": "python"
25+
}
26+
},
27+
"nbformat": 4,
28+
"nbformat_minor": 5
29+
}
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"id": "938411d9",
6+
"metadata": {},
7+
"source": [
8+
"---\n",
9+
"title: Graph Heuristics - Data Structures\n",
10+
"comments: true\n",
11+
"layout: post\n",
12+
"description: Basic overview of graph heuristics\n",
13+
"author: Srijan, Matthew, Trevor\n",
14+
"type: ccc\n",
15+
"nav: nav/graph-heuristics.html\n",
16+
"permalink: /heuristics/intro\n",
17+
"courses: { csa: {week: 32} }\n",
18+
"---"
19+
]
20+
},
21+
{
22+
"cell_type": "markdown",
23+
"id": "deb6a745",
24+
"metadata": {},
25+
"source": [
26+
"## **Learning Objectives**\n",
27+
"\n",
28+
"By the end of this lesson, we will be able to:\n",
29+
"\n",
30+
"\n",
31+
"\n",
32+
"* Define graph heuristics and explain their purpose\n",
33+
"* Compare traditional algorithms with heuristic approaches\n",
34+
"* Implement and analyze Greedy Best-First Search\n",
35+
"* Understand the A* algorithm and its mathematical foundation\n",
36+
"* Apply heuristics to solve real-world pathfinding problems"
37+
]
38+
},
39+
{
40+
"cell_type": "markdown",
41+
"id": "f88d3b6b",
42+
"metadata": {},
43+
"source": [
44+
"## **Introduction to Graph Heuristics**\n",
45+
"\n",
46+
"Graph heuristics are **estimation-based strategies** used to solve graph problems efficiently when finding an exact solution would be computationally expensive or time-consuming. Unlike traditional algorithms that guarantee optimal solutions, heuristics prioritize speed and practicality by making educated guesses about the best path forward.\n",
47+
"\n",
48+
"\n",
49+
"### **Key Concept: Heuristic = Estimation**\n",
50+
"\n",
51+
"A heuristic function estimates the cost or distance from a current state to the goal. It doesn't guarantee accuracy but provides a reasonable approximation to guide decision-making.\n",
52+
"\n",
53+
"\n",
54+
"## **Real-World Applications**\n",
55+
"\n",
56+
"\n",
57+
"### **GPS Navigation Systems**\n",
58+
"\n",
59+
"When you request directions from point A to point B, your GPS doesn't examine every possible route (which could take hours for complex road networks). Instead, it uses heuristics to estimate which roads are most likely to lead to faster routes, considering factors like:\n",
60+
"\n",
61+
"\n",
62+
"\n",
63+
"* Straight-line distance to destination\n",
64+
"* Speed limits on different road types\n",
65+
"* Historical traffic patterns\n",
66+
"\n",
67+
"\n",
68+
"### **Social Network Analysis**\n",
69+
"\n",
70+
"Platforms like Facebook and LinkedIn use graph heuristics to:\n",
71+
"\n",
72+
"\n",
73+
"\n",
74+
"* Suggest friends based on mutual connections\n",
75+
"* Group users into communities\n",
76+
"* Recommend content based on network proximity\n",
77+
"\n",
78+
"\n",
79+
"### **Task Scheduling and Project Management**\n",
80+
"\n",
81+
"Project management software uses heuristics to:\n",
82+
"\n",
83+
"\n",
84+
"\n",
85+
"* Organize task dependencies\n",
86+
"* Estimate project completion times\n",
87+
"* Allocate resources efficiently"
88+
]
89+
}
90+
],
91+
"metadata": {
92+
"language_info": {
93+
"name": "python"
94+
}
95+
},
96+
"nbformat": 4,
97+
"nbformat_minor": 5
98+
}

0 commit comments

Comments
 (0)