實用專案:選擇專案
現在是時候開始思考你要做什麼樣的專案了。這是一個重要的決定,因為它將決定這門課程的其餘部分。
我過去評審過的專案包括
- 基於資料庫的板球運動員管理系統,跟蹤比賽和球員得分
- 日託中心兒童資料庫,處理父母的賬單
- 計算機房預訂資料庫,允許教師預訂不同日期的房間,並以圖形方式檢視其他教師的時間表
- 硬體商店的庫存控制資料庫,處理重新訂購和銷售
- 基於網路的數學複習網站,允許建立隨機試卷並自動評分
- A-Level 數學複習迷宮遊戲
- 法語複習橫版冒險遊戲
- 物理學拋射物建模工具
- 貪吃蛇遊戲,要求你吃掉正確答案來回答數學問題
- 直升機飛行遊戲,要求你回答經濟學問題以獲得額外燃料
- 圍繞俄羅斯方塊克隆構建的計算機複習程式
- 一個國際象棋遊戲,它強制執行所有遊戲規則,並在出現將軍時識別出來
- 基於手機的數學複習遊戲
你可能已經注意到,關於資料庫和資料操作的討論很多。解決這個專案的一個簡單方法是構建一個數據處理系統,例如庫存控制系統或複習遊戲,在後端使用資料庫來儲存資料。這是一種強力的專案,也是獲得高分的途徑。但是,你不必做這樣的事情。如果你的程式碼足夠複雜,你就不必儲存任何資料,而關於資料庫部分的寫作,你可以跳過。你可能不會被鼓勵製作遊戲,但如果它是一款帶有資料庫或複習系統的遊戲,或者展示了 A-Level 標準數學的巧妙模擬,那麼你需要與你的計算機老師談談。

你製作的每個系統都必須涉及資料處理。這意味著獲取資料並新增、更新、刪除、解釋和顯示它。使用資料庫非常容易,但你必須超越 Access 提供的新增、編輯、刪除等預設操作。考慮使用複雜的查詢和展示結果的奇特方式。它也可以是一個 XML 檔案,儲存座位安排或學生記錄,編輯/刪除/新增複習遊戲中的問題,並記錄不同使用者的分數。無論你做什麼,資料處理都必須是核心。
使用某種形式的 SQL(例如 MySQL)或類似的語言(例如 MariaDB)比 Access 更好,因為它可以輕鬆地與許多程式語言整合。此外,SQL 屬於 COMP3 課程,因此你無論如何都需要基本的 SQL 知識。
為了獲得最高分,系統必須複雜,但這意味著什麼?你需要做一些事情,還需要做更多的事情才能有機會獲得最高分。AQA 的評分標準說,要獲得複雜度的最高級別,你需要至少滿足以下條件之一:
- 非平凡演算法,例如圖遍歷或遞迴。
- 使用所選程式語言的複雜功能,例如執行時建立的物件、複雜的資料結構、使用者定義的類
- 基於時間的模擬
- 使用網路協議(例如 TCP/IP)
- 為移動裝置開發
- 問題非計算方面的複雜性(例如使用複雜的數學,如果它是你 A-Level 數學中的內容,它就足夠複雜了)
- 影像處理或模式識別(例如使用正則表示式注意:正則表示式屬於 COMP3 課程,因此你無論如何都會學習它)。
如果你可以使用以上條件中的多個,你將確保自己獲得這些分數。此外,更多條件將給你更多內容在後面的章節中進行闡述。但是,不要過於雄心勃勃,因為你不想把所有時間都花在編碼上,或者無法完成程式。
如果你使用的是資料庫,可能很難判斷你的專案是否會很複雜。AQA 有一個關於這方面的文件,但簡而言之,你的資料庫需要完全規範化,大量資料將為你獲得更多分數。如果你可以,嘗試實現上述條件之一,你將獲得分數。
|
警告! 永遠不要只在 Access 中建立東西,你需要展示真正的編碼。即使 Access 是一個更簡單的解決方案,這也不會讓你獲得複雜專案的分數。始終與你的老師確認複雜度 |
你可能已經有一些想法在腦海中浮現,但現在你需要找到一個使用者。使用者不一定能找到你,所以如果你是一個當地運動俱樂部、教堂、戲劇社團等的成員,嘗試思考資料處理系統如何幫助他們。例如,你可以跟蹤合唱團的成員,他們參加了哪些課程,以及他們是否支付了會費。如果你認識一些經營小企業的,你可以編寫一個系統來跟蹤員工值班的時間、庫存數量以及銷售數量。學校/學院中是否有可以改進的地方?問問你的老師,也許他們仍然需要手動寫報告,也許他們想要一個學科的複習工具,也許他們想要一個基於網路的系統來預訂房間,也許他們想要一個可以模擬拋射運動以演示課堂上某些內容的程式。一旦你找到了你的使用者,就牢牢抓住他們,他們將是你完成這個專案各個部分的關鍵。
- 你將做什麼?
如果你在尋找使用者方面遇到困難,嘗試問問學校的一些老師。如果你想做模擬,你的數學或物理老師可能會有幫助。
以下專案聽起來足夠複雜嗎?如果不是,你將如何使它們變得複雜?請記住與你的老師確認複雜度。
| 一個商店銷售資料庫,允許人們更新庫存和新增新的庫存專案。<點選> | ||
| 可能不夠複雜!如果它建立在一個使用嚮導建立的 Access 資料庫上,並使用嚮導來建立所有表單和執行更新查詢,那麼它肯定不夠複雜。你可能可以透過使用 mySQL 和 Web 前端來構建它,但你仍然應該考慮包含一些更復雜的功能,例如顯示銷售圖表和統計資料。 | ||
| 一個線上複習網站,允許學生登入並參加隨機生成的數學測試<點選> | ||
| 這聽起來相當複雜,如果你計劃使用 ASPX 或 PHP 來編寫整個指令碼,而不是使用 Wordpress 之類的軟體包。你可能想要新增一些不錯的功能,例如訊息系統和郵件系統。你可能還想讓程式建立隨機問題正在被提出的動態視覺顯示,例如建立正在測試的尺寸的三角形。 | ||
| 一個 2D F1 賽車遊戲<點選> | ||
| 這聽起來非常複雜,特別是如果你考慮碰撞檢測、AI 等。但是,你的使用者是誰?你需要一個現實生活中的使用者,你可以請你的物理老師提出一個模擬場景嗎? | ||
| 一個四連棋遊戲<點選> | ||
| 考慮到圖形表示和 AI 元素,這聽起來非常複雜,但同樣,你的使用者是誰?你可以為小學制作這個遊戲嗎? | ||
| 3D 射擊遊戲<點選> | ||
| 太複雜了,除非你想在 Blender 或 Unreal Engine 之類的東西上編寫一些程式碼。 | ||
| 一個照片庫資料庫<點選> | ||
| 以目前的形式不夠複雜。你當然可以新增一些功能,例如將其放在網上,並允許對照片進行標籤。確保你與你的老師確認。 | ||
一旦你有了使用者和問題,你將如何解決它?你不是一家價值數十億美元的 IT 公司,而且你可能只有一年的程式設計經驗。你必須對如何解決這個問題保持現實態度。以下是一些你需要開始思考的問題,寫下你的答案
- 你已經知道哪些語言?你需要學習哪些語言和技能?
- 它將是基於 Web、手機還是桌面應用程式的?
- 你將使用關係資料庫還是平面檔案資料結構,或者根本不使用?
- 你知道如何規範化資料表或從文字/XML 檔案中讀取資料嗎?
- 你是否有足夠的時間來完成你想要做的事情?
- 它是否足夠複雜,讓你獲得最高分?
把所有這些內容都寫下來,這對你將來的分析很有用!
| 問題 | 答案 |
|---|---|
| 你的想法是什麼? | |
| 你的想法足夠複雜嗎? | |
| 你將如何實現複雜性? | |
| 你的終端使用者是誰? | |
| 你會哪些程式語言? | |
| 你還有多少時間? | |
| 你需要使用資料庫或其他資料儲存嗎? | |
| 基於 web 的 / 手機應用程式 / 桌面應用程式? | |
| 你需要學習什麼? | |
| 哪些網站和書籍可以幫助你? |