Skip to content

ETing030/Computational_Thinking_FP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computational_Thinking_FP

運算思維之期末小組報告 :D

關於此 repo

以「如何幫助對轉系、雙主修和輔系感興趣的同學,可以釐清自己想要走的方向,並統整相關資訊(申請條件、所修課程和學生心得)以方便大家查詢」,這個問題作為初衷 而最終成果只著重於資料上的整理,以及 GUI 的設計,學生心得這一部分也尚未納入統整中
附上最終 GUI 的成果,但仍有需改進的地方:

  1. 申請條件中的部分欄位無法顯示所有內容(如先修課程),必須勾選「顯示較原始條件」才可以顯示出來
  2. 課程中的欄位需再精簡,若改成以課表形式表示會更好

整體來說,這次的成果並非有效地解決我們所提出的問題,算得上是一次失敗的經驗,但有磨練到程式能力 :)


關於報告題目(有點過度修飾)

有著轉系經驗的資管系學生、已自由選修外系多堂課的化工系學生,以及曾試圖雙主修的材料系的學生,在一堂跨領域的課程上相遇。系上的課程不足以滿足我們的「胃口」,而這種現象在學生中也不少見,但是,怎麼樣的課程,怎麼樣的方式,才能找到符合我們「口味的食物」呢?因此,我們題目訂為「如何幫助對轉系、雙主修和輔系感興趣的同學,可以釐清自己想要走的方向,並統整相關資訊以方便大家查詢」,試圖讓更多同學找到適合自己的課程。

流程與文件說明

1.~ 4. 為相關資料的收集與整理
5. 為主要程式,說明針對這次報告題目,我們所採取的方式
6. 為以 5. 形式為基礎所建立之使用者介面

  1. 以人工的方式(複製和打字),搜集申請條件,包含以下項目。除了最後一項,其餘皆先由 Google sheet 存取,再下載至電腦中
    • 109 學年輔系條件、109 學年雙主條件、 110 學年轉系條件
    • 109 學年上學期和 108 學年下學期課程(依星期幾分成多個工作表),即 20201203課程.xlsx20201206 108學年下學期課程.xlsx
    • 各系輔系和雙主修之修課要求,即 輔系課程.xlsx雙主修課程.xlsx

▲ 雙主修課程.xlsx 整理形式,工作表為各個系所的英文縮寫

  1. 人工初步分類相關條件與修課要求
    • 將輔系和雙主修之原文分段,如「申請條件」、「申請時間」、「需繳交文件」等,即 條件一覽 - 109學年輔系條件.csv條件一覽 - 109學年雙主條件.csv
    • 轉系則是分成「平轉」和「降轉」,即 條件一覽 - 110學年轉系條件.csv

▲ 輔系

▲ 轉系

  1. 將初步整理所得到的那三個 csv 檔案,先合併成一個 xlsx 檔案,其中各類別各佔一個工作表,並對內容微幅調整。此合併微調之檔案即 條件一覽(整理).xlsx。微調內容如下,但檔案中仍保留部分微調前的版本

    • 輔系和雙主修:「申請條件」更改為「成績要求」、「先修課程」等更細微類別
    • 轉系:由於降轉要求都同於平轉,因此捨去「平轉」和「降轉」,並和輔系/雙主修一樣,細分段落
  2. 運算思維2.rmd ,用 R 統整資料,包含

    • 條件一覽(整理).xlsx 中分於不同段落的類別,各自獨立成 column,並以 Dataframe 的形式表示
    • 針對 輔系課程.xlsx雙主修課程.xlsx,分別將課程資訊串接為 Vector,並以 Dataframe 的形式表示
    • 合併條件和課程之 Dataframe (輔系和雙主修)
    • 分別匯出檔案,即 輔系.xlsx雙主.xlsx轉系.xlsx
      註:此 repo 中所附的 條件一覽 - 輔系統整.csv條件一覽 - 雙主統整.csv條件一覽 - 轉系統整.csv 為上述三個 xlsx 檔之 csv 檔 註:由於 rmd 檔案中路徑設定沒更動,因此要執行時須設定讀取路徑

▲ 雙主修課程.xlsx 之課程名稱與備註

  1. 對於「釐清想要走的方向」,我們在這邊並沒有太大著墨,反而著重於「統整相關資訊」這塊,而主要程式為 project.py,涵蓋以下內容
    • 確認學生心中是否有明確目標(想雙主修/輔系/轉系的系所),若沒有,則另外透過外部職涯測驗來辨別自身較適合那一種類型的工作類別,再以測驗結果作為選擇科系的依據
    • 確認學生想去之科系和辦法(雙主修/輔系/轉系/自由選修)
    • 顯示對應該科系該辦法之原始資料(資料為 條件一覽 - 109學年輔系條件.csv條件一覽 - 109學年雙主條件.csv條件一覽 - 110學年轉系條件.csv 中之內容)
    • 顯示對應該科系該辦法之分類後的條件(資料為 條件一覽 - 輔系統整.csv條件一覽 - 雙主統整.csv條件一覽 - 轉系統整.csv 中之內容)
    • 若為雙主修/輔系,則會顯示課程名稱和備註(資料為 條件一覽 - 輔系統整.csv條件一覽 - 雙主統整.csv 中之內容)

▲ 以建築系轉系為例

▲ 以雙主修數學系為例,多了課程名稱和備註

  1. 設計 GUI 版面,projectuitry.uiprojectuitry.py 分別為 PyQt5 的 GUI 版面設計與該版面對應之 py 檔,並以 project.py 為參考,製作具有該程式中所提及之功能,即 projectpyqt.py,功能與圖例如下
    • 將原本需要手動輸入的內容(如系所),以下拉式選單代替
    • 較原始資料可依需求選擇顯示與否
    • 針對雙主修/輔系,將課程名稱與備註分別為不同欄位,以方便閱讀,並整理課程相關資訊,如學分、上課時間等
    • 新增上下學期課程,此欄位為該系所課表中的課程(不論年級)

▲ 以材料系轉系為例

▲ 以雙主修資工系為例

final_6260ff81563f3c00753955f5_216426.mp4

▲ 以雙主修資工系為例,參考影片

應改善點

  • 應更加把重心放在「如何幫助學生找到方向」,而非整理資料上
  • 在初步收集資料時,應採取自動化的方式(像是爬蟲),而非人工處理
  • 在 GUI 查詢資料時,不應花費很長的時間
  • GUI 設計上仍需改善,包含部分內容無法完全顯示,如申請條件中的先修課程,上下學期中的課程仍需精簡,以及課程以課表的方式來排列(雖然會造成撞課)等
  • 對於欲雙主修/輔系學生,可以嘗試做出配合原系課表和另一系欲修課程的安排,像是除了課程清單外,可以拖曳課程於課表中的功能

心得

當初在期末報告後,對於老師的回應:「沒有解決到問題」,多少有點失望,但這也點醒了我,執著於整理資料和設計 GUI,試圖把成果以比較美觀的形式呈現出來,並不是最有效解決問題的辦法,更何況這堂課都明講是要透過運算思考來解決問題。雖然在成果上失敗了,但學到了不少技能~除了在課堂作業中熟悉 Python 語法外,藉網路影片和文章自學 PyQt5 讓我獲得成就感,投入兩個禮拜的時間終於有了收穫~~

題外話:
當初在收集資料時有打算用爬蟲,以 R 而並非 Python(剛好那個學期有學到 R 爬蟲的部分)嘗試,但礙於自己能力不足,加上不想增加此步驟的時間成本,就先以複製和打字來應付

:)

About

運算思維之期末小組報告 :D

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages