实用项目:选择项目
现在是时候开始考虑你要做哪种项目了。这是一个重要的决定,因为它将决定整个课程工作的方向。
我过去标记过的项目包括
- 基于数据库的板球运动员管理系统,用于跟踪比赛和球员得分
- 日托中心儿童数据库,处理父母的账单
- 计算机教室预约数据库,允许教师为不同的日期预约教室,并以图形方式查看其他教师的时间表
- 硬件商店的库存控制数据库,处理重新订购和销售
- 一个基于网络的数学复习网站,允许创建随机试卷,然后自动批改
- 一个 A-Level 数学复习迷宫游戏
- 一个法语复习横向卷轴冒险游戏
- 物理学抛射物建模工具
- 一个贪吃蛇游戏,要求你吃掉数学问题的正确答案
- 一个直升机飞行游戏,要求你回答经济学问题以获得额外燃料
- 一个围绕俄罗斯方块克隆的计算机复习程序
- 一个象棋游戏,强制执行游戏的所有规则并识别将军状态
- 基于手机的数学复习游戏
你可能已经注意到,很多讨论都围绕着数据库和数据操作展开。解决这个问题的一个简单方法是构建一个数据处理系统,例如库存控制系统或复习游戏,在后端使用数据库来存储数据。这是一种强有力的项目类型,可以帮助你获得高分。但是,你不必非得做这种项目。如果你的代码足够复杂,你就不需要存储任何数据,你可以跳过关于数据库的写作部分。你可能不会被鼓励制作游戏,但如果它是一个游戏,背后有数据库或复习系统,或者展示了 A-Level 水平数学的巧妙模拟,那么你需要与你的计算机老师沟通。
你制作的每个系统都必须涉及数据处理。这意味着获取数据,对其进行添加、更新、删除、解释和显示。使用数据库可以很容易做到这一点,但你必须超越 Access 之类的工具提供的添加、编辑、删除等默认操作。考虑使用复杂的查询和花哨的方式来展示你的结果。它还可以是一个存储座位安排或学生记录的 XML 文件,编辑/删除/添加复习游戏的题目,并记录不同用户的得分。无论你做什么,数据处理都必须是核心。
与 Access 相比,使用某种形式的 SQL(例如 MySQL)或类似的语言(例如 MariaDB)是一个更好的选择,因为它可以轻松地与许多编程语言集成。此外,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 公司,你可能也只有不到一年的编程经验。你必须现实地看待如何解决这个问题。以下是一些你需要开始思考的问题,写下你的答案
- 你已经掌握了哪些编程语言?你需要学习哪些语言和技能?
- 它将是基于网页、手机还是桌面应用程序的?
- 你会使用关系型数据库或平面文件数据结构,还是完全不使用?
- 你知道如何规范化数据表或从文本/XML 文件中读取数据吗?
- 你有足够的时间做你想做的事情吗?
- 它是否足够复杂,可以让你获得最高分?
把所有这些都写下来,这对你的分析非常有用!
问题 | 答案 |
---|---|
你的想法是什么? | |
你的想法是否足够复杂? | |
你将如何实现复杂性? | |
你的最终用户是谁? | |
你掌握了哪些编程语言? | |
你有多少时间? | |
你需要使用数据库或其他数据存储吗? | |
基于网页/手机应用/桌面? | |
你需要学习什么? | |
哪些网站和书籍可以帮助你? |