10張圖詳解“課程配置”模塊

0 評論 5718 瀏覽 44 收藏 15 分鐘

現在知識授課的形式已經變得更加多樣化,比如線上授課這一方式就已經十分常見,那么線上課程管理系統應該如何搭建?在基本的“課程配置”模塊,設計人員要注意哪些細節事項?本篇文章里,作者就針對在線課程管理系統的課程配置模塊進行了設計拆解,一起來看。

互聯網時代,越來越多的課程和培訓從線下轉移到了線上,線上課程較于線下課程的弊端在于無法根據學員的實際學習情況實時的調整課程的內容和講授方式;而對比線下課程,線上課程確能為學員提供更靈活的學習時間選擇,也能讓內容提供方無限擴大內容的影響范圍從而獲得更多收益。那么如何搭建一套在線課程管理系統呢?

今天我們來詳細拆解一下課程管理模塊如何設計。

一、基本邏輯梳理

1. 從線下課程說起

在學生時代,我們會在學校學習語文、數學、英語等不同的學科;根據年級學習的側重點,學校會安排每個學科每天實際的上課計劃,直觀來講就是“課表”。

老師在實際講課的過程中,又會根據老師自己的經驗有自己的一套教學環節,比如語文課上課前5分鐘先讀一遍新課文、或者數學老師在課堂最后10分鐘安排隨堂測試等;在學期結束時,每個學科還會安排期末測試,以檢驗學習效果;測試的試卷會由不同類型和分值的試題組成,比如選擇題每題5分、填空每題10分、問答每題20分等等……

根據以上的場景,我們可以梳理出線下課程的基本結構如下圖,為了將線下課程線上化,線上課程也同樣需要能夠支持這樣的基本結構:

2. 因地制宜的調研

課程管理模塊用于對課程結構和內容進行配置,即教研人員會在這個模塊配置供用戶學習的課程,根據商業模式不同、學科不同、教學風格不同,每個公司需要的課程模塊也不盡相同。

想要確定課程的結構體系,就需要先和教研團隊確認課程的實際情況,即從校驗團隊的教學大綱中提煉課目、課程、各種類型和結構等需要在系統上實現的關鍵信息,這里筆者提供幾個調研的角度:

3. 梳理中要注意的點

雖然產品的基本要求是會畫原型,但是筆者認為產品最大的工作量在于對需求的充分理解,只有從背景、干系人、業務場景、可能出現的異常等多方面對需求有了理解,才能做到“胸有成竹”的去將想法落實到原型文檔上。因此在對教研系統背景的梳理中,除了按照教研大綱梳理課程結構以外,應該注意以下點:

  • 需求背景:需求處于什么階段?需要多久上線使用?MVP是什么?這關系到產品設計范圍的控制,如果需求非常緊急,可以接受敏捷的方式實現,則可以粗略設計系統的結構,而將部分必須功能精細設計;
  • 干系人:上文中,我們說明了課程相關的邏輯梳理,但是實際的使用場景中可能不是教研團隊配置課程,誰來配置課程?課程是否有人審核?線上課程有問題的反饋給誰?這涉及到配置流程和角色權限的管理;
  • 業務場景:梳理的結果應該能夠滿足實際的業務場景,可以通過流程圖反饋給干系人,在產品文檔撰寫之前確認好設計的基本方向。

二、基本功能設計

通過調研和梳理,我們可以整理出一套基礎的課目結構,并針對整理出的課程結構分析相應的落地實現方案,用英語課程的結構為例:

1. 科目設計

如果我們的業務場景如上圖一樣,是確定數量的課目,那么課目就可以直接作為一個確定(不需要擴展)的類型去設計。

但是如果是一個復雜的知識性平臺(例如得到),平臺內包含了多種多樣的科目,那就需要對先對課目進行管理,將課目首先設計成一個可供擴展的類型。

科目具體是否需要進行管理,還有一個很重要的一個判斷依據是:它是否會作為用戶端的一個篩選類型,直觀來講就是科目是否作為課程類型供用戶在APP或者網頁上進行篩選,如果需要則需要對科目類型進行單獨的配置管理,甚至要做多層關聯性的配置管理,例:

2. 課程設計

1)設計順序

課程作為一個單獨的學習內容組,是每日課程的一個綜合體。對外,它需要承載向用戶解釋說明課程內容的作用;對內,它需要對下屬的日課程進行配置和管理。

這里筆者建議先設計單節課程的配置頁面,再進行課程列表頁進行設計,因為列表頁可以視作對課程統一信息的一個整體展示,即每個列表字段代表了一個課程的核心要素,這個要素應該是每個課程都包含的、典型的、重要的,而提煉這些字段需要對每種課程的要素進行抽象,那么先對單個課程的配置進行梳理,并在梳理中發現每個字段的屬性,就可以順利的對列表的字段進行提煉。

2)單個課程

單個課程應該包含兩個大的結構:基本信息、課程內的單個課程(每節課)。

基本信息會用于前端用戶的展示策略:用戶需要從圖標、課程名、課程簡介對課程有一個初步的了解;所屬科目和課程標簽還可用于前端的欄目管理或用戶內容篩選的依據;預計課數用于讓用戶提前了解課程的數量情況,為用戶提供學習選擇的依據。

課程內的單個課程,即課程下屬的實際課程,需要為系統提供實際上課時的元素,比如上課中用于講解課程內容的視頻、用戶可以下載來自己預習復習的課件,以及學習完成后的課后測試等。因為課程是很多單個的課組成的,所以還需要支持對于下屬課程的增刪和順序調整的功能。

3)課程列表

完成了單個課程配置的設計后,我們回過頭來看課程列表的設計,課程列表中應該展示課程的基本信息:

作為唯一值的課程編號,課程編號在課程創建后就生成,有了它課程名稱就不需要具有唯一性,即多個課程的課程名稱可以重復,而用課程編號識別不同的課程;

課程名稱和所屬科目作為課程的基本屬性,配合檢索區域進行課程的快速查找;

應用策略支持對課程進行上下架管理,即是否讓用戶在前端看到課程,上下架的設計需要考慮到課程的實際關聯場景,從用戶接觸到APP開始:下架后售賣此課程的商品有什么影響?下架后用戶進入APP是否能看到這個課程?下架當時正在上課的用戶如何處理?如果課程有學習記錄,下架后相應的學習記錄如何處理?等等一系列的問題,需要在【下架】這個按鈕的設計說明里列清楚,請不要只寫一個“這里加個【下架】按鈕”,如果這里的策略產品無法定奪,要及時和業務方溝通方案。

列表中的操作是指的對單個課程可以做的操作,這里一般來講會有查看和編輯的選擇,編輯是為了修改已經創建完成的課程里的內容;查看則是為了通過權限管理實現部分不可以編輯但是又有“知情權”的系統使用人員去了解課程配置情況,復制課程是快捷的生成新的課程,同時代入已有課程的信息以便修改,用于創建相似度較高的課程。

列表之外,還應該支持創建新的課程,點擊按鈕進入到上文中講到的單個課程的頁面,進行一個新課程的創建。

三、抽象與解耦

至此,常規的系統功能已經具備,但是對于課程類型復雜的平臺,上述的配置還是過于細碎。我們在進行基礎的頁面設計的時候,除了思考與課程結構的符合以外,還應該考慮每個操作背后所關聯的邏輯,比如上圖中“課后測試”模塊要怎么實現呢?

1. 兩種處理思路

我們觀察到,第二種方式其實是一種概念的抽象,也就是將測試抽象成了一個單獨的模塊與課程結構進行了解耦,這種解耦有利于在復雜場景中提升內容可復用度、提高復雜內容的配置效率。

沿著這個思路,我們再來觀察課程配置的圖例,在實際的課程配置中,其實有些章節是不需要課后測試的,那么除了將課后測試變成“非必填”以外,還有什么方式來處理這種“同一個模塊下不同組成部分的差異性”呢?答案就是:抽象與解耦。

2. 功能抽象

我們試著將課程環節的組成抽象成一個模型,將環節類型作為一個單獨的管理模塊,與每節課的實際配置進行解耦,那么課程管理就會變成這樣:

注意!頁面中,我們增加了類型的選擇,類型決定了對應章節中需要配置的內容類型,方便我們對課程的結構進行統一的管理,在章節類型的背后,需要有章節模型的管理,在對章節模型進行管理時,需要結合課程的特點去設計需要統一管理的模塊,即細化到對模塊規格的管理,示例:

抽象與解耦還有一個容易被忽略的優勢,就是提升客戶端的效率,將規范好的課程結構直接復用會比每個課程都判斷一次結構效率要高,舉個例子:買煎餅的時候,如果跟老板說“老樣子”或者“套餐一”,會比說:不要蔥花、少放香菜、加一袋辣條、兩個雞蛋、多放薄脆要來的方便快捷。

四、結語

在配置型的模塊設計的時候,除了上述的基本功能,還要充分考慮角色權限的控制,以及操作日志的記錄,以便能夠追溯操作歷史,遇到問題也可以追溯責任人。

課程設計完成后,如何讓用戶看到課程,是所有用戶都能看到且免費學習,還是需要付費購買單個課程,亦或是要充會員解鎖會員課程,這里就涉及到商品模塊的知識了,我們后面再對商品模塊進行拆解分析。

本文由 @夢溪 原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自Unsplash,基于CC0協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!