0% found this document useful (0 votes)
4 views7 pages

Dynamic Task Reminder System Algorithm

The document outlines a Task Reminder System that dynamically reminds users of tasks, checks completion status, and adjusts future task times based on user input. It details the algorithmic steps for implementation, including notification methods, terminal prompts, and script updates. Additionally, it emphasizes the importance of problem definition, algorithm design, and system dynamics in creating an effective reminder system.

Uploaded by

longe0.0.0.i.d
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views7 pages

Dynamic Task Reminder System Algorithm

The document outlines a Task Reminder System that dynamically reminds users of tasks, checks completion status, and adjusts future task times based on user input. It details the algorithmic steps for implementation, including notification methods, terminal prompts, and script updates. Additionally, it emphasizes the importance of problem definition, algorithm design, and system dynamics in creating an effective reminder system.

Uploaded by

longe0.0.0.i.d
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Problem 2

Problem issues

📋
Algorithm: Task Reminder System (In-Script Update Version)

Step Action
1 Get task description, start time, and end time. (All tasks are stored inside the script.)
2 Check current time every minute.
3 If current time is 1 minute before task start time:
4 → Remind me via message notification and speech.
5 → After 1 minute (task starts), send to terminal: “Did you complete it? (yes/no):” and
wait for my input.
6 If I say yes (task finished early):
7 → Calculate saved time.
8 → Update all future task times inside the script, update the dictionary, and save the
script.
9 If I input nothing, wait until current time is 1 minute before task end time, then send
again to terminal: “Did you complete it? (yes/no):” and wait for my input.
10 If I say yes (task finished at scheduled time):
11 → Wait for the next task’s start time.
12 If I say no (task not finished):
13 → Ask in terminal: “How many minutes delay?” and wait for input.
14 → Add the delay time to all future task times.
15 → Update the script and save.
16 If I close my laptop:
17 → The reminder system should continue to work normally when reopened (ensure
background process or recovery handling).
18 If I reopen my laptop:
Step Action
19 → The computer should immediately remind me of the current active task
(notification + speech).
20 If current time reaches the end time of the final task:
21 → End the terminal process.

📋
Your Task Reminder System – Full Table

Category Details
Objective To remind and adjust tasks dynamically, notifying me and asking for completion
or delay status, and adjusting the schedule accordingly.

✅ Input
Input Item Description
Start Time Time when the task begins
Task Description Name/purpose of the task
End Time Time when the task ends

✅ Output
Output Item Description
Notification (message + Remind of upcoming tasks and tasks about to end
speech)
Terminal prompt Ask whether the task was completed and ask delay time if
Output Item Description
not
Schedule adjustment Update future task times (earlier or later) based on
completion status
Script update Rewrite script with updated task times for future runs

✅ Must Happen
Must Happen Item Description
1. Notifications (message + speech) must remind me. Text and speech reminders for
each task.
2. Notify me of upcoming tasks. Alert before task start.
3. Notify me whether the current task is complete and ask Prompt for status and possible
delay time via terminal. delay input.
4. Update future task times if early/late completion, and Dynamic schedule adjustment
update the script. and script rewriting.
5. When I open my laptop again, the notification (text + Resume reminder after laptop
speech) must remind me of the current task. sleep or lid close.

❌ Must Not Happen


Must Not Happen Item Description
1. Notifications fail if terminal prompt is missed. Notification system must work
independently of terminal input.
2. Notifications do not reflect updated task System must always reflect the latest
times after script update. schedule.
3. When I close my Mac, the terminal reminder System must persist or recover through
should continue to work. sleep/close.
1. How to Think Pure Logical Algorithm Sequence (No Coding)
2. “. *
1. Computational Thinking 计算思维
1. Computational thinking is an approach to solving problems using concepts and
ideas from computer science, and expressing solutions so they can be run on a
computer.
2. Core Elements 核心要素
2. Breaking down a problem into smaller parts
3. Looking for patterns in those subproblems
4. Figuring out what information is needed
5. Developing a step-by-step solution
3. 4 pillars of CT
4. Decomposition 分解
5. Pattern Recognition 模式识别
6. Dsts Representation and abstraction 数据表示和抽象
7. Algorithm
3. Algorithmic thinking
4. How to solve it

problem 2 _pre-reading
✅ Lori’s Personal Knowledge System — Problem
Definition + Algorithm Design
🎯 Goal: Think like an architect — focus on problem definition and algorithm design
framework, not coding.
Use AI (Copilot, ChatGPT) to execute your design.

📊 1. Priority Ranked Knowledge Framework (For your


task)

Priority Knowledge Area Why You Need It


⭐️ ⭐️ ⭐️ Problem Definition & Clearly describe the goal, inputs, outputs, and
#1 Modeling constraints. Without this, you can’t design a clear
Priority Knowledge Area Why You Need It
algorithm.
⭐️ ⭐️ ⭐️ Algorithm Design Break the problem into steps: what happens first, next,
#2 Thinking finally. Write algorithmic steps clearly.
⭐️ ⭐️ #3 Flowcharts & Express algorithms in natural language or diagrams, so
Pseudocode AI can understand and execute accurately.
⭐️ ⭐️ #4 System Dynamics Understand how the system should dynamically adjust
Thinking based on user feedback (like your task).
⭐️ #5 Test Case & Edge Design for exceptions, boundaries, and ensure the
Case Thinking algorithm is robust.

📚 2. High-Quality Recommended Resources (Ordered by


priority)
⭐️⭐️⭐️ #1. Problem Definition & Modeling
Books:
The Art of Problem Solving (AoPS, recommended by Harvard/MIT for math and logical
thinking)
How to Solve It by George Pólya (Princeton classic)
Courses:
MIT OpenCourseWare — How to Speak
Link
Learn clear problem articulation.
Harvard CS50 — Week 0: Scratch (Problem modeling)
Link
Focus Chapters:
How to Solve It: Understand problem → Devise plan → Carry out plan → Review

⭐️⭐️⭐️ #2. Algorithm Design Thinking


Books:
The Algorithm Design Manual by Steven Skiena (State University of New York, global
standard)
Programming Pearls by Jon Bentley (AT&T Bell Labs, legendary problem-solving
book)
Courses:
MIT — Introduction to Algorithms (Lecture 1–2)
Link
Coursera — Algorithmic Thinking (Part 1) by Rice University
Link
Focus Sections:
Algorithm Design Manual: Chapter 1 (Algorithmic thinking), Chapter 3 (Divide and
conquer)

⭐️⭐️ #3. Flowcharts & Pseudocode Expression


Tools:
Lucidchart: Professional-level flowchart tool
Whimsical: Fast, easy tool for sketching algorithm frameworks
Books:
Algorithmics: The Spirit of Computing by David Harel
Focus: Understanding algorithms without coding.
Learning Path:
Use MIT "How to Speak" + draw your own algorithms using Lucidchart or Whimsical.

⭐️⭐️ #4. System Dynamics Thinking


Courses:
MIT Sloan — System Dynamics
Link
Books:
Thinking in Systems by Donella Meadows (MIT classic)
Focus Chapters:
Chapter 2: System structure and feedback loops (perfect for "task adjustment based
on user input")
⭐️ #5. Test Case & Edge Case Thinking
Books:
Test-Driven Development by Example by Kent Beck (Agile Development expert)
Courses:
Harvard CS50 — Week 1: Algorithms and Problem Solving
Link
Focus: Thinking about boundary cases.

🧭 3. Summary — Lori's Personal Study Table


Priority Knowledge Area Resource Focus Chapters/Sections
⭐️ ⭐️ ⭐️ Problem Definition & How to Solve It by Full book, focus on four-step
#1 Modeling Pólya method
⭐️ ⭐️ ⭐️ Problem Definition & Harvard CS50 Scratch (problem modeling
#1 Modeling Week 0 mindset)
⭐️ ⭐️ ⭐️ Algorithm Design Algorithm Design Chapter 1 & 3
#2 Thinking Manual
⭐️ ⭐️ ⭐️ Algorithm Design MIT Algorithms Lecture 1–2
#2 Thinking
⭐️ ⭐️ #3 Flowcharts & Lucidchart / Practice drawing your algorithm
Pseudocode Whimsical
⭐️ ⭐️ #4 System Dynamics Thinking in Chapter 2: System structure
Thinking Systems and feedback
⭐️ #5 Test Case Thinking CS50 Week 1 Boundary condition testing

Common questions

Powered by AI

Challenges in maintaining accurate schedule adjustments could include synchronizing task times accurately after early completions or delays and ensuring these changes are not lost if the system restarts. These can be mitigated by implementing robust update mechanisms that save changes in real-time and redundantly using both local storage and cloud backups, if necessary .

The Task Reminder System implements a strategy where, upon reopening a laptop, the system immediately reminds the user of the current active task via both notification and speech. This ensures continuity and reliability of the system even after the laptop has been closed . Additionally, the system should use background processes or recovery handling to work normally through sleep/close states .

The Task Reminder System exemplifies system dynamics thinking by allowing the schedule to adapt based on user interactions, such as task completion status and delays. It updates the schedule dynamically to reflect these interactions, resembling feedback loop principles where the system continuously adjusts in response to user input .

Incorporating test case and edge case thinking ensures that the Task Reminder System is capable of handling unexpected conditions and operates reliably under various boundary conditions. By planning for exceptions, such as system restarts or input anomalies, the system becomes more robust and resilient, reducing the risk of failure in real-world scenarios .

Algorithm design thinking is significant for the Task Reminder System as it involves systematically breaking the problem into clear steps, allowing for precise task sequence execution and dynamic scheduling. This approach helps in efficiently implementing the reminder and notification features, ensuring they operate seamlessly and adapt to any changes in task status or timing .

To ensure task notifications are independent of terminal prompts, the system must be designed to continue issuing notifications through messages and speech alerts even if terminal input is not provided. This redundancy ensures notifications are not missed due to terminal interaction failures, maintaining a robust reminder system .

Developing flowcharts and pseudocode aids in executing the Task Reminder System by providing a clear, visual representation of the algorithm's logic that AI tools can understand and translate into executable code. This method allows for precise communication of the algorithm's functions and facilitates accurate implementation during AI-assisted development .

When a task is completed earlier than planned, the Task Reminder System calculates the saved time and adjusts all future task times accordingly. This involves updating the dictionary and saving the script with the new task times to ensure the remainder of the schedule reflects these changes .

The problem definition and modeling framework ensures clarity in defining the goal, inputs, outputs, and constraints of the Task Reminder System. By breaking down the problem into well-defined components, the design becomes more intuitive and facilitates the creation of a structured algorithm that addresses task notifications, schedule adjustments, and dynamic updates based on user feedback .

Computational thinking is crucial as it involves decomposing the problem into smaller, more manageable parts, recognizing patterns, and developing step-by-step solutions that can be executed algorithmically. This approach allows the Task Reminder System to handle task scheduling, notifications, and adjustments systematically and efficiently .

You might also like