如何打造含間隔重複功能的記憶卡應用程式
記憶卡應用程式由卡片組、翻面顯示每張卡片的複習畫面,以及決定今天要顯示哪些卡片的排程器所組成。排程器正是區分有用學習工具與電子版索引卡堆的關鍵:透過間隔重複,你熟悉的卡片很少再出現,而你感到吃力的卡片則會很快再次出現。建議先打造複習畫面與簡單的排程器,匯入、圖片與音訊功能則留待之後。
記憶卡應用程式需要什麼
資料
| 資料表 | 欄位 |
|---|---|
| 卡片組 | 擁有者、名稱、說明、公開或私人 |
| 卡片 | 所屬卡片組、正面、背面、選用的圖片或音訊、標籤、建立日期 |
| 卡片狀態 | 使用者、卡片、到期日、間隔、易記度或難度、重複次數、遺忘次數 |
| 複習紀錄 | 使用者、卡片、時間、評分(重來/困難/良好/簡單)、花費時間 |
請將卡片狀態與卡片本身分開儲存。若卡片組是共用的,兩位同時學習同一張卡片的人,各自需要有自己的到期日。也請保留每一筆複習紀錄:日後要改善排程器、顯示進度圖表或切換演算法時,都需要這些歷史資料。
頁面
- 卡片組清單,顯示每個卡片組今天有多少張卡片到期。
- 卡片編輯器——快速輸入非常重要。正面、背面、儲存、下一張。桌面版提供鍵盤快捷鍵。
- 複習畫面——顯示正面,點選即可翻開背面,並用四個大按鈕評分。這個畫面佔了應用程式使用量的九成。
- 統計——每日複習的卡片數、記憶保留率、未來的工作量。
- 匯入——支援 CSV 或以定位字元分隔的文字,多數其他記憶卡工具都能匯出這些格式。
選擇排程方法
這裡不需要你自己發明任何東西。以下是三種廣為人知的做法:
| 方法 | 運作方式 | 適合 |
|---|---|---|
| Leitner 盒子 | 答對時卡片移到較高的盒子,答錯時回到第一盒;越高的盒子複習頻率越低 | 最容易建置與說明 |
| SM-2 | 每張卡片都有間隔與「易記度」,會依你的評分增加或減少 | 經過驗證、被廣泛仿效、容易測試 |
| FSRS | 模擬你記住每張卡片的機率,並依目標保留率排程 | 較精準;Anki 提供此選項 |
第一版請選擇 Leitner 或 SM-2。在提示詞中以實際範例寫下規則,例如:「一張新卡片若評為良好,則一天後到期,接著三天後,之後每次評為良好,間隔約為前一次的 2.5 倍。若評為重來,則十分鐘後再次到期,且間隔重新計算。」
無論你選擇哪一種,都要求 AI 將排程器放在一個獨立的函式中,並附上測試。如此一來,日後更換排程器時就不必動到應用程式的其他部分。
需要決定的事項
「今天」是哪一天? 「今日到期」應依使用者的時區計算。許多念書應用程式會將換日時間設在凌晨 4 點,讓深夜的學習時段仍算在同一天。
每日上限。 如果沒有限制每天新增的卡片數量,熱心的使用者可能一次加入 500 張卡片,一週後就會面對無法完成的複習量。預設值應保守,並讓使用者可以自行調整。
卡片類型。 先從基本的正面/背面開始。「反向」卡片(也測試由背面到正面)與填空題(在句子中填入空白)很受歡迎,但每一種都會增加規則。等基本功能穩定後再加入。
共用卡片組。 老師與班級分享卡片組是很好的功能,但也涉及權限問題:學生可以學習但不能編輯,而老師的編輯應該傳達給所有人,且不會重設他們的進度。
離線使用。 人們會在火車與飛機上讀書。漸進式網頁應用程式可以快取當天的卡片,但要同步兩台離線裝置上的複習紀錄確實很困難。第一版只支援線上使用是合理的選擇。我們的原生應用程式與漸進式網頁應用程式比較說明了各種選項。
行之有效的首次提示詞
打造一個以手機為優先的記憶卡網頁應用程式。使用者登入後可建立卡片組,並新增含正面與背面的卡片(文字,可選擇加入圖片)。每位使用者對每張卡片都有各自的複習狀態:到期日、間隔、易記度、重複次數與遺忘次數。使用 SM-2 演算法:評分為重來、困難、良好、簡單;選擇重來會重設間隔,並在十分鐘後再次顯示該卡片。將排程器放在自己獨立且經過測試的函式中。複習畫面先顯示正面,接著是一個大的「顯示答案」按鈕,然後出現四個大的評分按鈕。「今日到期」依使用者的時區計算,且一天從凌晨 4 點開始。預設每個卡片組每天最多新增 20 張新卡片。記錄每一次複習。顯示附到期數量的卡片組清單,以及每日複習次數的簡單統計頁面。新增 CSV 匯入功能,欄位為正面與背面。所有資料都儲存在資料庫中。
建置步驟
- 卡片組與卡片。 建立兩個卡片組與二十張卡片,檢查新增一張卡片的速度有多快。
- 複習畫面。 用手機來學習。它應該感覺即時;卡片之間每一次的延遲,一天都會被感受到數百次。
- 排程器測試。 給 AI 一張評分序列與預期間隔的表格,並檢查結果。接著調整裝置時鐘,或要求提供測試模式,以模擬接下來幾天的情況。
- 每日上限與時區。 在深夜進行複習,並確認隔天的佇列正確。
- 匯入。 匯入一份包含幾百張卡片的真實 CSV,檢查特殊字元、卡片內的逗號與換行。
- 統計。 每日複習次數與未來的到期數量。圖表保持簡單。
- 額外功能。 圖片、語言卡片的音訊、反向卡片、共用卡片組,一次只加一項。
常見錯誤
- 把到期日存放在卡片上。 它必須是每位使用者各自的。
- 丟棄複習紀錄。 統計與未來任何排程器都需要它。
- 沒有新卡片上限。 使用者一週內就會燃盡。
- 按鈕太小。 評分常常是單手操作;按鈕要夠大,並且彼此間隔夠遠,避免誤觸。
- 無法復原上一次的評分。 誤觸每天都會發生。
- 「今天」使用伺服器時間。 應使用使用者的時區。
- 編輯卡片時重設進度。 修正一個錯字不應讓一張熟練的卡片回到起點。
何時現成的產品是更好的選擇
如果你只是想念書,成熟的記憶卡應用程式已經存在,其中許多是免費的,並在排程、同步、離線使用與共用卡片組方面投入了多年心力。尤其是 Anki,擁有龐大的社群卡片組資料庫。請善加利用。
當卡片是更大事物的一部分時,就應自行打造:例如你販售的課程,需要以記憶卡強化每一堂課;語言學校需要為學生提供與課綱相符的卡片組;公司需要向員工傳授產品知識;或某個學科的卡片類型,一般工具處理得不好。這樣你就能掌控內容、設計與學員資料。若需要測驗,可搭配測驗應用程式,或將它整合進線上課程平台。
使用 Mythex 打造
Mythex 會將這個應用程式打造為網頁應用程式,你可以在任何手機上開啟,並加入主畫面。在聊天中描述應用程式,在預覽的手機尺寸框架中檢查複習畫面,並要求加入帳號與進度儲存功能。當應用程式需要時,Mythex 會加入專用的資料庫;若卡片包含圖片或音訊,則加入檔案儲存。在 Pro 方案中,Mythex 也能將它包裝成 Android 與 iPhone 應用程式,並送到 Google Play 內部測試與 TestFlight。在信任排程功能之前,可以使用「詢問模式」請代理人解釋其排程函式;功能運作正常後,再發布到 mythex.ai 連結。
常見問題
什麼是間隔重複?
間隔重複會在你可能快要忘記某張卡片之前,再次顯示它。你熟悉的卡片會在越來越長的間隔後才再次出現;你答錯的卡片則很快會再出現。相較於平均複習所有內容,它能讓讀書時間發揮更大的效果。
我應該使用哪一種間隔重複演算法?
第一版使用簡單的 Leitner 盒子系統或 SM-2 就已足夠,而且容易測試。FSRS 是較新、較精準的排程演算法,Anki 也提供了這個選項;等你累積足夠的複習紀錄來調整參數時,就值得考慮。
記憶卡網頁應用程式可以離線使用嗎?
部分可以。漸進式網頁應用程式可以快取應用程式與當天的卡片,讓使用者在沒有網路時也能複習,並在重新連線後同步。若在離線時於兩台裝置上進行複習,同步時需要謹慎的合併規則,因此許多第一版都只支援線上使用。
我可以不寫程式就打造記憶卡應用程式嗎?
可以。AI 應用程式建置工具能根據描述建立卡片組、卡片、複習畫面與排程功能。請提供排程規則的實際範例讓它參考,並仔細檢查結果,因為這套邏輯決定了這個應用程式是否真的能幫助人們學習。