getSyllabus method

  1. @override
Future<SyllabusDto> getSyllabus({
  1. required String courseNumber,
  2. required String syllabusId,
})
override

Fetches the detailed syllabus for a course offering.

Returns syllabus information including course objectives, textbooks, grading policy, and weekly plan.

The courseNumber should be a course offering number (e.g., "346774"), and syllabusId should be obtained from the syllabusId field of a ScheduleDto.

Throws an Exception if the syllabus tables are not found.

Implementation

@override
Future<SyllabusDto> getSyllabus({
  required String courseNumber,
  required String syllabusId,
}) async {
  return syllabusResult ??
      (
        type: CourseType.universityCommonRequired,
        enrolled: 55,
        withdrawn: 2,
        email: 'richwang@ntut.edu.tw',
        lastUpdated: DateTime(2025, 10, 20, 10, 15, 5),
        objective:
            '在本課程中,同學將學習到計算機程式語言Python基礎與應用,'
            '建立Python程式設計的基本概念。透過做中學、學中做,'
            '建構程式設計的基礎,以及基本程式運算邏輯,'
            '以培養運算思維、動手做的能力。'
            '期末以分組方式完成一個與學生專業領域相關應用的專題,'
            '學習如何運用程式解決與自身相關領域運用上的問題。',
        weeklyPlan:
            '第01週\t教育大數據概述及Python開發環境建置\n'
            '第02週\t數學函式、字元與字串\n'
            '第03週\t流程控制\n'
            '第04週\t迴圈及其應用\n'
            '第05週\t中秋節(放假)\n'
            '第06週\t串列list, 數組tuple介紹與字串操作\n'
            '第07週\t函式與模組的應用介紹-1\n'
            '第08週\t函式與模組的應用介紹-2\n'
            '第09週\t期中考試\n'
            '第10週\t字典dict, 集合set介紹\n'
            '第11週\t共授專家演講\n'
            '第12週\t正規表示式(Regular Expression)介紹\n'
            '第13週\t類別與物件\n'
            '第14週\t檔案與異常處理\n'
            '第15週\t政府公開相關資料(教育)的擷取介紹\n'
            '第16週\t政府公開資料(教育)的處理與分析\n'
            '第17週\tAI簡介與應用介紹\n'
            '第18週\t期末考試',
        evaluation:
            '(*) 資工系同學因系上已有相關課程,所以學分將不認列,請勿選修。\n'
            '課程參與(20%)\n作業與隨堂考試(30%)\n期中考試(25%)\n期末考試(25%)',
        materials: '稍後公佈',
        remarks:
            '因應疫情發展,本學期教學及授課方式請依照學校網頁所公布之訊息為準:\n'
            '(https://oaa.ntut.edu.tw/p/404-1008-98622.php?Lang=zh-tw)\n'
            '1. 同學如有加退選簽核或課程問題,請寫信至 richwang@ntut.edu.tw,'
            '信件標題 [課程名稱]_班級(或隨班附讀)_名字。\n'
            '2. 本課程其他資料,將透過北科i學園plus公布。\n'
            '3. 本課程採實體授課方式,但為因應疫情或其它狀況,'
            '可能會調整授課內容、授課方式、評分項目與配分比例。\n'
            '如果無法實體上課,預定使用Teams於原定上課時段進行遠距上課,'
            '相關細節將再另行公告。\n'
            '相關防疫或課程上課形式公告,請參考學校網頁: '
            'https://oaa.ntut.edu.tw/p/404-1008-98622.php?Lang=zh-tw',
      );
}