๐ชปCalculus III
๐ชปCalculus III
A journal of vectors, surfaces, and mathematical discoveries.
๐ฟ This Week's Intention
One step at a time. Progress matters more than perfection.
๐ Course Overview
Course: Calculus III
Weekly routine:
- Homework due Sunday, Tuesday, and Thursday. Allow 30โ60 minutes per assignment.
Current focus:
- Advanced Integrals
๐ฑ Assignment Progress
const assignments = dv.pages('"study nook/School/Assignments"')
.where(p => p.type === "assignment"
&& p.class?.path === dv.current().file.path);
const total = assignments.length;
const done = assignments.where(p => p.status === "Done").length;
const percent = total ? Math.round(done / total * 100) : 0;
dv.el("p", `${done} of ${total} assignments completed โ ${percent}%`);
const bar = dv.el("div", "", { cls: "sn-progress-track" });
const fill = bar.createEl("div", { cls: "sn-progress-fill" });
fill.style.width = `${percent}%`;
๐ Assignments
// ๐ธ STUDY NOOK โ CLICKABLE ASSIGNMENTS
const currentClass = dv.current().file.path;
const assignments = dv.pages('"study nook/School/Assignments"')
.where(p =>
p.type === "assignment" &&
p.class?.path === currentClass
)
.sort(p => p.due ?? "9999-12-31", "asc");
// ๐ฟ Create table
const table = dv.container.createEl("table", {
cls: "table-view-table sn-assignment-table"
});
const head = table.createEl("thead");
const headerRow = head.createEl("tr");
["Done", "Assignment", "Due Date", "Priority", "Status", "Hours"]
.forEach(label => headerRow.createEl("th", { text: label }));
const body = table.createEl("tbody");
// ๐ชท Create assignment rows
for (const p of assignments) {
const row = body.createEl("tr");
// โ
Completion checkbox
const checkCell = row.createEl("td");
const checkbox = checkCell.createEl("input", {
type: "checkbox"
});
checkbox.checked =
String(p.status ?? "").toLowerCase() === "done";
// ๐ Clickable assignment link
const nameCell = row.createEl("td");
const link = nameCell.createEl("a", {
text: p.file.name,
cls: "internal-link"
});
link.setAttribute("data-href", p.file.path);
link.setAttribute("href", p.file.path);
link.addEventListener("click", event => {
event.preventDefault();
app.workspace.openLinkText(
p.file.path,
currentClass,
event.ctrlKey || event.metaKey
);
});
// ๐
Due date
const dueText = p.due
? dv.date(p.due)?.toFormat("MMMM d, yyyy") ?? "โ"
: "โ";
row.createEl("td", { text: dueText });
// ๐ท Priority
row.createEl("td", {
text: String(p.priority ?? "โ")
});
// ๐ฑ Status
const statusCell = row.createEl("td", {
text: String(p.status ?? "Not started")
});
// โ Estimated hours
const hours = Number(p.estimate);
row.createEl("td", {
text: Number.isFinite(hours)
? String(Math.round(hours / 6) / 10)
: "โ"
});
// ๐ฏ๏ธ Save checkbox changes to frontmatter
checkbox.addEventListener("change", async () => {
const previous = !checkbox.checked;
const newStatus = checkbox.checked
? "Done"
: "Not started";
checkbox.disabled = true;
try {
const file = app.vault.getAbstractFileByPath(p.file.path);
if (!file) {
throw new Error("Assignment file not found.");
}
await app.fileManager.processFrontMatter(file, fm => {
fm.status = newStatus;
});
statusCell.setText(newStatus);
} catch (error) {
checkbox.checked = previous;
new Notice("Could not update assignment status.");
console.error(error);
} finally {
checkbox.disabled = false;
}
});
}
๐๏ธ Upcoming Deadlines
TABLE WITHOUT ID
file.link AS "Assignment",
due AS "Due Date",
priority AS "Priority",
status AS "Status"
FROM "study nook/School/Assignments"
WHERE type = "assignment"
AND class = this.file.link
AND due >= date(today)
AND status != "Done"
SORT due ASC
Weekly routine
- [ ]
Topics to learn / revisit
- Topic: 3.1
Practice log
| Date | Topic / problem set | Confidence (1โ5) | Next step |
|---|---|---|---|
Notes & common mistakes
- Concept I need to revisit:
- Mistake to watch for:
- Problem worth redoing:
๐ฏ Study Checklist
- Review current material
- Work through practice problems
- Complete this week's assignments
- Review difficult topics
๐ Class Notes & Exam Prep
- Current topics:
- Topics to revisit:
- Upcoming exams or quizzes:
- Questions for the instructor: